Rhythm
Habits, focus and mood on one Today screen
A Flutter app in progress that puts habits, a Pomodoro focus timer and a mood check-in on one Today screen, so a daily routine lives in one place.
Solo build
The problem
Building a routine usually means juggling separate apps: one for habits, one for a focus timer, one for reading, one for a mood journal. Each keeps its own picture of your day, and none of them shows the whole thing. I wanted a single "Today" view that holds all of it.
What I built
Rhythm is a Flutter app for iOS and Android built around one Today screen. In the public repo, three parts work: you can add habits and tick them off for the day, run a 25-minute Pomodoro timer, and log your mood on a 1 to 5 slider with tags such as sleep, stress, energy, exercise, social and work. The repo also holds a requirements document and an architecture note, so the plan sits next to the code.
See it running
A recorded walkthrough of Rhythm is on the way. Until then, the write-up and the diagram below show how it works.
How it fits together
One Today screen, three working features
- Today screenFlutter app on the phoneHabitsFocusLog mooduser actions
- Riverpod stateProviders in the appHabit list notifierTimer notifierread and write
- In-memory dataOn the device, reset on restartHabit repository25-minute timer
How it works
The app starts in a Riverpod ProviderScope and opens a home screen with a bottom navigation bar. The Today tab shows the date, the habit list (with loading, empty and error states) and two quick actions: one opens the focus timer, the other opens the mood sheet. Habits come from a Riverpod AsyncNotifier backed by a repository; today that repository keeps habits in memory, so they reset when the app restarts. The timer is its own notifier that counts down 25 minutes and supports pause, resume and stop. The mood sheet confirms the entry on screen but does not store it yet.
The code is organised feature first (lib/features/<feature>/data, domain, presentation), with Freezed data classes for habits, focus sessions, mood entries and books, and code-generated providers. Theming is Material 3 with light and dark variants and the Inter font.
Stack: Flutter, Dart, Riverpod, GoRouter, Freezed, Material 3.
Status and links
Rhythm is in progress. I have newer code that is not in the public repo yet; this page describes only what you can run from the repo today. It needs no accounts or keys to run: flutter pub get, dart run build_runner build --delete-conflicting-outputs, then flutter run.
What's next, none of which is built in the public repo yet:
- Saving habits, focus sessions and mood entries, with Supabase as the planned backend and local storage for offline use.
- Real habit streaks instead of the placeholder.
- A reading library that imports PDFs and EPUBs from Google Drive (the Read tab shows two sample books for now).
- An insights view built from real data (it shows sample numbers today).
- App store release, which needs proper app ids and a working test suite first.
Need something like this built?
I build AI automations, agents and Salesforce solutions for teams. Tell me what you want to automate and I’ll tell you honestly whether it’s a fit.
Comments
Loading comments...