// the find
AhmedAbdoElhawary/flutter-clean-architecture-instagram
A full-featured Instagram clone built with Flutter, powered by Firebase for backend services and Agora for real-time video calls, offering posts, stories, chat, likes, comments, and more.
A full-featured Instagram clone in Flutter using Firebase for storage/auth/messaging and Agora for video calls. It covers nearly the entire Instagram feature surface — stories, reels, group chat, video calls, nested comments — making it a serious reference implementation rather than a toy. Target audience is Flutter developers who want to study clean architecture applied to a complex, real-world app.
The domain layer is properly separated: entities, repositories (abstract), use cases, and implementations are all in distinct folders with no cross-cutting dependencies, which is rare in Flutter tutorial projects. The mix of BLoC and Cubit is used appropriately — BLoC for complex event-driven flows (messaging, calling status), Cubit for simpler state. The author also ships a companion pub.dev package (image_picker_plus) rather than embedding a custom gallery inline, which shows some discipline about scope. Arabic/English i18n and dark/light theming are baked in from the start, not bolted on later.
The setup instructions tell you to set Firestore rules to `allow read, write: if true` — fine for local dev, catastrophic if anyone actually deploys this. There is no mention of proper security rules anywhere in the repo. The `private_keys.dart` file holding Agora and FCM keys is checked into source rather than injected via environment config, which is a real credential-leak risk. The repo hasn't been meaningfully updated since early 2023 for most of its history; the FCM v1 migration (legacy HTTP API was deprecated) and Agora SDK API changes may already be breaking things on new Flutter versions. The 'clean up more code' TODO at the bottom of the README is still open, and some of the data-layer files are long enough that the clean architecture lines get blurry in practice.