Make a long commitment concrete.
The 90/90/1 framework centers on one priority, a daily block of focused work, and a sustained period of practice. This application turns that idea into tracks, timed sessions, and short written reflections.
The repository contains a Flutter/Dart application with local persistence and reactive state. It is presented as an engineering project in development; a public app-store release and production cloud synchronization are not verified.
A local record of the work.
Drift defines tracks and sessions over SQLite. Tracks retain a title, optional description, start date, goal days, daily minutes, archive state, and status. Sessions store planned and actual minutes, completion, notes, and journal text.
The database source includes schema migrations through version 3. Data-access objects and repository layers connect persistence to the application’s view models. These are concrete application concerns: preserving user history as the data model changes and keeping presentation separate from database access.
Timers have a lifecycle.
A Riverpod session timer models running, paused, elapsed, and target-duration state. It supports starting from remaining time, pausing, resuming, stopping, and computing bounded progress. Timer resources are cancelled when the provider is disposed.
The application includes an active-session store, track creation, session history, session detail, journal entry, onboarding, theme settings, and streak-related providers. The case-study illustration summarizes this workflow; it is not an authenticated screenshot or measured user session.
Typed state across the interface.
The Flutter app uses Riverpod for reactive state, Drift for persistence, and generated Freezed/JSON models in parts of the domain layer. The structure includes feature-oriented data, domain, and presentation folders alongside earlier application modules.
The repository also includes Serverpod client/server scaffolding and deployment files. Their presence is not evidence of completed authentication, cloud synchronization, or a working hosted service; those capabilities are not claimed here.
A working codebase with a clear next step.
The strongest verified substance is the local application: session controls, stored tracks, history, and journaling. Reliability across mobile backgrounding, schema transitions, and timer restoration deserves platform-level testing before calling it a production release.
Future engineering work can consolidate overlapping application modules and validate persistence and timer behavior on supported devices. No adoption, retention, or productivity improvement statistics are claimed.
Explore the application source.
Use a Flutter SDK compatible with the Dart constraint in the application’s pubspec. Work from ninetyninetyone_app, resolve dependencies, and run on a configured Flutter target. Platform-specific setup and generated files may require the Flutter toolchain.
git clone https://github.com/kvitkas/90901.git
cd 90901/ninetyninetyone_app
flutter pub get
flutter run