DEV Community

Chad Dyar
Chad Dyar

Posted on

Every gym friend I have said some version of the same sentence while I was building Momentum: "It's not like college anymore. We

Every gym friend I have said some version of the same sentence while I was building Momentum: "It's not like college anymore. We know what to do. We just need to actually show up."

I have worked out since I was 15. At 50 I am busier and more tired, and the thing that changed was never motivation or knowledge. I can write you a decent training plan from memory. The gap is momentum: the distance between knowing Tuesday is a lifting day and actually being under the bar on Tuesday. So when I decided to add a fitness app to my portfolio, I skipped the categories the big players own and built for the one metric my friends and I actually lose sleep over. Showing up. This is the build story, the stack, and the part where I admit the builder broke his own rule.

The design decision that shaped everything

MyFitnessPal will count your macros to the gram. Whoop will grade your sleep. Strava will rank you against strangers on a hill. All of that is optimization tooling, and optimization tooling quietly assumes the workout already happened.

Momentum measures whether the workout happened. Sessions logged, consistency over time, credit for showing up rather than a grade on how optimal the session was. A missed Tuesday should cost you a data point, and in most trackers it costs you the whole perfect chain (you know the uninstall I mean, the one you do a little ashamed at week six). Consistency for people over 40 has to survive real life: travel weeks, a brutal quarter, a knee that says no. So the target is showing up, because for my crowd that was always the real boss fight.

The stack, for the curious

The front end is React, generated and iterated through Lovable, which is how I ship UI as a solo builder without losing a month to component libraries. Supabase runs the back end: Postgres, auth, and row-level security doing the actual work. I keep choosing Supabase across the portfolio for a boring reason: the database is the product in an app like this, and getting Postgres, policies, and edge functions in one place means the security review is one review instead of five. Stripe handles billing on the web, with a free tier that covers your first habit and two paid tiers at $3.99 and $7.99 a month. There is a Capacitor shell for the iOS build, which has been its own education in provisioning profiles (a story for a different post, probably a long one).

The deliberate constraint across all seven apps is that the stack stays ordinary. Lovable or Vite on the front, Supabase behind it, Stripe for money, GitHub Actions for anything scheduled. Durable beats clever when one person is on call for everything, and every exotic dependency is a 2am page waiting for its moment.

The honest part

Momentum is the least-promoted thing in my portfolio. Before this post it had been mentioned publicly three times, while the loudest of its sibling apps has collected more than thirty. I built it quietly and then let louder apps cut in line, which is a strange thing to admit about a product whose whole thesis is consistency. The builder failed the app's own test: knowledge was never the gap, showing up was.

What I'd do differently, and what's next

I would promote from day one, in public, before the app felt ready. The apps I talked about early grew faster at the same level of polish, and the compounding never started for the one I kept in a drawer. Next is exactly that correction: Momentum gets a regular slot in the rotation, and I start writing about the retention data once there is enough of it to be worth your time.

The metric I care about is the one the app preaches: weekly actives who log a session, week after week. Downloads flatter you and screenshots flatter the product, and neither one tells you whether a 52-year-old with a bad knee and a full calendar came back on a rainy Tuesday. When I have three months of honest numbers on that, good or bad, I will publish them here, because a consistency app that hides its own consistency data would be a punchline I'd rather not become.

If your own gap is showing up rather than knowing what to do, the first habit is free at momentumfit.app. And if you are building something solo: ship the loud version. The quiet one costs more than it feels like it does.

Top comments (0)