Africa Store
One Flutter codebase. Three live platforms. Zero platform bugs.
Launched on Web, iOS & Android simultaneously — zero platform-specific bugs at release.

The Challenge
The client needed a complete e-commerce marketplace across three distribution surfaces — a web storefront, an iOS app, and an Android app — without the budget for three separate codebases or three separate engineering sprints. The catalog required real-time stock availability, the cart had to stay in sync across sessions, and every component needed to work in both English and Arabic (RTL).
The Solution
I built a single Flutter codebase with platform-adaptive breakpoints: the same components respond naturally to a 375 px phone screen and a 1440 px desktop viewport. All three platforms share one Firestore data layer, one Firebase Auth session, and one Cloud Functions backend. Platform-specific UX differences — iOS navigation patterns, Android back-gesture handling, web scroll physics — are handled with Flutter's built-in platform detection rather than conditional code duplication. The RTL layout is activated at the app level so every widget flips correctly without per-widget overrides.
Key Engineering Decisions
Provider for state management
Chose Provider over BLoC for this project because the state topology is flat — cart, auth, and product streams are independent. Provider keeps the dependency graph simple and the test surface small.
Firestore listeners over HTTP polling
Cart and order status use real-time Firestore listeners. When a seller confirms an order, the customer's app updates in under a second at no extra engineering cost — no polling, no webhooks.
Cloud Functions for side-effects
Payment confirmation, inventory reservation, and push notification dispatch all run in Cloud Functions. This keeps client-side logic thin and makes order flow auditable and retryable.
Shared auth token refresh
Firebase Auth handles token refresh transparently across web and mobile. One sign-in persists across all three surfaces — the user never has to log in twice.
Tech Stack
Outcomes & Results
What the Client Said
Flutter e-commerce app — Web, iOS & Android“Ahmed delivered our web storefront, iOS, and Android apps from a single Flutter codebase in one sprint cycle. The apps feel native on every platform, the Firestore sync is instant, and we haven't had a single production crash since launch. Exactly what a founder needs — fast delivery, no drama.”
Karim AshrafFounder & CEOCairo, EG
Live Links
Ready to build?
Need something similar built?
I'm available for new projects. Discovery calls are free and I typically respond within 24 hours. You'll work directly with me — from the first call to launch.