Keyboard Shortcuts

j / kScroll down / up
ggScroll to top
GScroll to bottom
/Open search
?Show this help
EscClose search / help
n / NNext / previous section
hGo to landing
dGo to docs
:Command mode — type section name

Press ? or Esc to close

Getting Started

Principles

Every architectural decision traces back to one of these. When something feels wrong, check it against this list first.

RuleWhy
Feature-firstEasy to find, delete, or reuse
Config owns route + DINo cross-feature coupling
Store = data truthSingle place for data logic
Cubit = UI truth (default)Clean, lightweight state
Bloc when complexity warrantsEvent traceability, transformations
Multiple Cubits allowedFeature-internal separation of concerns
UI is statelessNo hidden side effects
Design tokens onlyEasy theming, consistency
Feature-level lazy DIFast startup, low memory, true isolation
go_router declarativeDeep-link ready, auth guards
sqflite opt-inDon't add until offline is required
Env config via dart-defineSafe dev/staging/prod separation
sam's arch — A Pragmatic Flutter Architecture