Habit Tracker

Track daily habits with a private, local-only log. All data stays in your browser - nothing is sent anywhere.

Today's progress 0%
Partial Full Today

Last 28 days - completion heatmap

Less
More

Weekly completion (last 8 weeks)

Per-habit completion rate (last 30 days)

Display

Show streak count
Display current streak on each habit card
Show completion percentage
Display 30-day completion % on cards
Move completed to bottom
Push done habits to the bottom of the list
Compact view
Smaller habit cards for dense screens

Behaviour

Week starts on
First day shown in the calendar view
Allow retroactive logging
Check off past days you missed
Confetti on full completion
Celebrate when every habit for today is done

Data

Export data
Download all habits and logs as JSON
Import data
Restore from a previously exported JSON file

Danger zone

Clear all logs
Delete completion history - habits are kept
Reset everything
Wipe all habits, logs and settings permanently

How to use

  1. Add a habit by entering its name and choosing an emoji or color tag.
  2. Tap a day cell to mark the habit as done for that date.
  3. Watch your streak counter grow as you stay consistent over consecutive days.
  4. Edit or delete a habit at any time from its row menu.
  5. All data lives in your browser, so use the export button to back it up between devices.

Frequently asked questions

Where is my habit data stored?

Everything is saved to your browser's localStorage on this device only. We never upload your data, and clearing site data or switching browsers will reset the tracker.

How is the streak counted?

A streak counts consecutive days starting from today going backwards. Missing one day breaks the streak, but the longest streak you have ever achieved is remembered separately.

Can I track more than one habit at a time?

Yes. There is no fixed limit on the number of habits, though for clarity we recommend keeping the list short and focused on the behaviours that matter most.

Can I sync between phone and laptop?

Direct sync is not supported because data stays local. Use the export feature to save a JSON backup, then import it on another device.

Advertisement