DEV Community

Cover image for I built a free fitness tracker with no backend and no account — here's what I learned
Dallas
Dallas

Posted on

I built a free fitness tracker with no backend and no account — here's what I learned

A few months ago I got tired of every calorie tracker either paywalling basic features or demanding I create an account just to log a banana. So I built Nawtch — a free fitness tracker that runs entirely in your browser, stores everything locally via IndexedDB, and never asks you to sign up.

Here's the messy, honest version of how it actually came together.

It didn't start as "Nawtch"

The app was originally called Foop. I got pretty far into building it before doing a basic search and realizing "Foop" was already in use by a hydroponic gardening app, a B2B SaaS platform, and an AI chatbot app — none of which I wanted to compete with in search results or get confused with.

So I renamed it. If you're naming a side project: check availability before you fall in love with the name, not after. I went through a whole process of brainstorming invented, slightly-whimsical names before landing on Nawtch (a nod to "gnaw," since you're logging food) — bought the .app and .com, and migrated everything over.

The bigger rebuild: SPA to real multi-page

The app started as a single-page app with client-side JS routing — one index.html, everything else swapped in and out via onClick handlers. It worked fine for me as the only user, but it had two real problems once I started thinking about actual growth:

Zero SEO value. A single URL means Google has exactly one page to index, no matter how many features live inside it.
No individual entry points. Someone searching "free weight tracker no account" had no page to land on specifically — everything was buried behind one homepage.

So I rebuilt it into real separate pages — index.html, foods/, weight/, programs/, history/ — each independently loadable, each with its own metadata, each usable on its own without needing the others. Someone who only wants to track weight can bookmark /weight/ and never touch anything else.

The technical gotcha nobody warns you about: IndexedDB is scoped to origin, not to which HTML file loaded it. So splitting into multiple pages was safe — data persists fine across page loads on the same domain — but it did mean auditing every place I'd accidentally relied on in-memory state being passed between "views" that used to be JS state swaps and were now genuinely separate page loads.

The monetization pivot

I originally designed a whole three-tier system: free (capped), a one-time Premium unlock, and a Premier subscription for cloud sync — the kind of thing that seemed obviously right on paper. Free tier capped at some number of saved programs/exercises, paid tier unlocks everything.

Then I actually thought about what I was building this for. The entire pitch of Nawtch is "no friction, no accounts, no paywalls" — and here I was about to build an accounts system whose entire purpose was to gate features behind a paywall. That's exactly the thing I built this app to avoid inflicting on other people.

So I scrapped the tiers. Nawtch is free forever, every feature unlocked, no account required, ever. Monetization is just non-intrusive banner ads (no popups, no interstitials — I explicitly ruled those out) plus, eventually, maybe a genuinely optional paid tier specifically for cloud sync or AI-assisted logging later — things that have a real recurring server cost, so the pricing model would actually match the cost structure, rather than gating stuff that costs me nothing to provide.

Building the "boring but trustworthy" content

Once the core tracker was solid, I added three more pages: Calculators (TDEE, BMR, macros, body fat %, BMI, ideal weight), Diets (a sourced overview of Mediterranean, DASH, keto, and others), and Guides (how-to content for every feature).

The thing I cared about most here: every number has a cited source. The TDEE calculator names the Mifflin-St Jeor equation and links the original study. The body fat calculator cites the actual 1984 Navy technical report the formula comes from. The diets page doesn't crown a "best" diet — it links real studies for each one, and for Whole30 specifically, it says outright that there's no independent clinical trial behind it, because that's true and I'd rather say that than pretend otherwise.

This is slower to build than just writing generic blurbs, but it's the kind of thing I think actually earns trust — and maybe backlinks — over time, versus content that reads like it was written to fill space.

What's actually hard about this path

No accounts means no user identity, which means no personalization beyond local settings, no cross-device sync (yet), and no easy way to build a community around the product. It also means my only real distribution channels are SEO, word of mouth, and posts like this one — no email list, no push notifications, nothing.

I don't know yet if "free forever, no account, ad-supported" is a sustainable model at any real scale. But it's the app I actually wanted to use, and it's the app I'm still using every day, months in — which is more than I can say for most of the trackers I tried before building this.

If you want to poke at it: nawtch.app. No signup, obviously.

Top comments (0)