# ADR 0003 — Tech stack follows CookIT Status: Accepted (2026-10-28) ZenXercise uses the same stack and conventions as the author's CookIT app (local-first Flutter, Android), so both codebases read alike. - State: `provider` with `ChangeNotifier` controllers, wired in `main.dart` via `MultiProvider`. - Persistence: `drift` + `drift_flutter` (SQLite); `shared_preferences` for small settings (last Mode). - Navigation: plain `Navigator` with named routes (no go_router). - Strings: `flutter gen-l10n` with ARB files in `lib/src/localization` (`app_en.arb` template). - Layout: `lib/src//` with repositories, controllers and `views/`. - Screen-on in the Player: `wakelock_plus`. IDs: `uuid`. - Tests: `flutter_test`, `mocktail`, `sqlite3` (in-memory drift in tests). - Lints: `flutter_lints`. Docs: `GLOSSARY.md` (term / definition / _Avoid_) and `docs/adr/`. Supersedes the Riverpod / go_router proposal from the grilling session.