Local-first · PWA · Self-hosted · MIT
Hearth
A free, private baby tracker. No ads, no lock-in, no forced account.
Track sleep, feeds, diapers, medicine, play, and bath time. Everything stays on your device: install it as a PWA and it works offline.
Day / night · same log
The hero card tracks awake time and predicts the next nap window. Logging a bottle takes two taps.
A day, logged
Ten things Hearth records, the way they actually land across a day. Two taps each, one shared log.
A window instead of a single number, because sleep isn't that precise.
Babies build sleep pressure while they're awake, the same mechanism that makes adults drag by 9pm. Miss the window and they won't settle. Push past it and you get overtired: cortisol spikes, and the next nap gets worse instead of better. Wake windows also stretch fast as they grow. A newborn taps out in under an hour; an 18-month-old can go five. SweetSpot blends the population average for your baby's age with your baby's own naps from the last few days, weighting recent naps more heavily, and gives you a window instead of a single number, because sleep isn't that precise.
No ads.
No lock-in.
No forced account.
It runs on hardware you control. Signing in with Google or Apple is optional, for backup and cross-device sync. Skip it, and nothing leaves your network.
# Tailscale auth key: https://login.tailscale.com/admin/settings/keys $ git clone https://github.com/jeremysball/hearth.git $ cd hearth $ cp .env.example .env # fill in TS_AUTHKEY, CERT_FILE, and KEY_FILE $ sudo docker compose up -d
Runs behind Tailscale: only devices on your tailnet can reach it. No exposed ports, no reverse proxy to configure.