| j / k | Scroll down / up |
| gg | Scroll to top |
| G | Scroll to bottom |
| ⌘K / / | Open search |
| ? | Show this help |
| Esc | Close search / help |
| n / N | Next / previous section |
| h | Go to landing |
| d | Go to docs |
| : | Command mode — type section name |
Press ? or Esc to close
Flutter Architecture Blueprint
One way to build features. Predictable structure, zero ceremony.
Cubit by default. Store owns data. DI wired once at bootstrap.
Philosophy
Low cognitive load. Low effort to add new features. No abstractions you didn't ask for.
Organized by feature, not by type. Easy to find, delete, or reuse a feature without touching anything else.
One place for all data logic: cache strategy, network calls, error handling. Nothing else touches the data.
Cubit by default — and only. One state primitive, no Bloc. Clean, lightweight, fully sufficient.
Registered once at startup as lazy singletons + factories. One place to scan, fast cold launch.
No hardcoded colors, sizes, or strings. context.colors.* is the only API into the theme system.
Don't add by default. Add per feature, only when offline support is a genuine requirement — not nice-to-have.
Data Flow
Every request follows the same path. No shortcuts, no UI that fetches data directly, no hidden side effects.
Tech Stack
Every package earned its place. Nothing added speculatively.
| Layer | Technology |
|---|---|
| Framework | Flutter · Dart |
| State Mgmt | flutter_bloc — Cubit only |
| DI | get_it — lazy singletons + factories at bootstrap |
| Routing | go_router with StatefulShellRoute |
| Network | dio with auth, logging, error interceptors |
| Local Storage | shared_preferences · flutter_secure_storage · sqflite (opt-in) |
| Firebase | Core · Analytics · Crashlytics · Messaging · Remote Config |
| WebView | flutter_inappwebview with JS bridge |
| Localization | Custom 3-source: file cache → remote → asset |