DEV Community

Ahmed Mohamed
Ahmed Mohamed

Posted on

How I Ship Cross-Platform Apps with Flutter, Laravel & Firebase

I'm Ahmed Mohamed, Founder & CTO of Ahmed Innovation. Over the past 6+ years I've built and shipped 47+ production apps for iOS, Android, and the Web — across e-commerce, gaming, fintech, and SaaS. Here's the stack and the approach I keep coming back to.

Why Flutter + Laravel + Firebase

Most of my projects need to launch fast on mobile and web, with a solid backend behind them. This trio covers all of it:

Flutter — one codebase for iOS, Android, and Web. Fast, expressive UI with near-native performance.

Laravel — a batteries-included PHP backend for auth, REST APIs, dashboards, payments, and business logic.

Firebase — real-time data, auth, push notifications, and cloud functions without standing up infrastructure.

The architecture I use

A Flutter app with a feature-first structure and a predictable state layer (BLoC or GetX). A Laravel API as the source of truth: versioned REST endpoints, policies for authorization, and queues for heavy work. Firebase for the real-time bits — chat, live order tracking, notifications — and Firestore where offline-first sync matters.

Lessons from shipping to the store

Offline-first from day one. Cache aggressively and reconcile on reconnect. Users on flaky networks stay happy.

Watch cold-start time. Defer non-critical work, lazy-load, and keep the first frame cheap.

Instrument crashes early. I aim for 99.95%+ crash-free sessions — you can't hit that without visibility.

Automate the boring parts. CI/CD for builds and releases removes an entire class of human error.

Test the unhappy payment paths. Declines, timeouts, and refunds deserve as much attention as the happy path.

Closing

This stack lets me take a project from the first call to App Store approval — architecture, code, and delivery — all in one place. If you'd like to see some of what I've built, my portfolio is at https://ahmedinnov.com.

Happy to answer questions in the comments!

Top comments (0)