Milestone
A health-habit app that starts small and builds up, instead of handing you every target on day one.
- Status
- Personal use
- Launched
- August 2026
- Built with
- Next.js, TypeScript, Tailwind CSS, Supabase, PostgreSQL (PL/pgSQL)

Overview
Milestone is a health-habit app I built in August 2026, mostly for myself and my husband.
The product idea is the progression. You start with a few manageable behaviours, build consistency, and then Milestone gradually introduces new goals or increases existing ones, rather than expecting a complete lifestyle overhaul on day one.
The problem
Most health apps throw a pile of targets at you immediately: calories, steps, water, sleep, workouts, all at once, all from day one. That's a lot to take on, and missing half of them every day isn't very motivating.
I wanted something that treated building habits as a process, and that stayed encouraging along the way rather than making the whole thing about weight.
What I built
A Next.js and TypeScript app styled with Tailwind, with Supabase handling authentication and data. New users go through onboarding, then land in three main sections: Today, Journey and Progress.
Underneath is a generic goal engine with phases, alongside tracking, streaks and achievements. It covers calories, water, steps, walks and exercise, sleep, workouts and weight.
Key features
- Progressive phases
- Goals are introduced or increased gradually as consistency builds.
- Daily tracking
- Calories, water, steps, walks and exercise, sleep, workouts and weight.
- Today
- The day's goals with progress on each, plus weekly goals like walking five times a week.
- Milestone reviews
- A prompt to look back over the week.
- Journey
- Where you are in the progression, and what comes next.
- Progress
- Totals since you started, from steps and active minutes to workouts, completion and weight change, over 7 days up to a year.
- Streaks and achievements
- A slightly gamified layer that rewards consistency.
- Onboarding
- Sets people up with a manageable starting point.
Interesting problems
A generic goal engine
Calories, water, steps, sleep and workouts are all different kinds of goal. Rather than hard-coding each one, goals run through a single engine, which is what lets the progression system introduce or raise goals across phases.
Designing the progression
Deciding when someone is ready for the next step is the heart of the app. Move too fast and it's just another overwhelming tracker; too slow and it stops being useful.
Encouraging without being punitive
Streaks and achievements can easily turn into guilt. The design aims to be calm, clean and slightly gamified, and deliberately not centred entirely on weight loss.
Decisions & trade-offs
Honest placeholders for integrations
Integrations with services like Garmin and MyFitnessPal are planned, and they appear in the app as clearly labelled placeholders rather than pretending to work before they exist.
Weight is one metric, not the point
Weight is tracked, but the app is built around habits and consistency rather than a number on a scale.
Outcome
Milestone is in use by the two people it was built for.
Using it day to day showed that the Today screen was too passive: it showed where you stood, but didn't make it easy enough to actually do anything. The next change is direct Quick Log controls on Today for water, calories, walks, workouts and steps.
Tech
- Next.js
- TypeScript
- Tailwind CSS
- Supabase
- PostgreSQL (PL/pgSQL)
Screenshots

