Habits tied to identity statements ('I am a writer' → write 500 words daily). Daily check-in. Streaks (but not pushy). Weekly reflection. Identity-vote tally: this week you 'voted' 6× for the writer identity, 0× for the runner. Not another streak-shame app. Built for the BJ Fogg / James Clear reader who wants the framework without the lecture.
Define identity ('I am a writer', 'I am someone who takes care of my body'). Habits attach to identities. Per-habit daily check-in feels like voting for that person.
Weekly view: for each identity, X/7 days where you voted yes. No streak shaming — a 4/7 week for a new habit is real evidence you're becoming that person.
Sunday prompt: what identity felt strongest this week? Which habit is ready to graduate (stop tracking because it's automatic)? Which new habit emerges for next week?
Streaks shown but not celebrated as the point. Miss-a-day doesn't reset — the app focuses on 2-out-of-3 (never miss twice in a row) as the real trick.
Optional short daily note. Three-word feeling. Free-form. Builds a personal record without performance pressure.
Flask + SQLite. Runs on phone or laptop. Your habit data is not a personal-growth SaaS's training material. Export to Markdown any time.
Hosted plans are early-access. Self-host today; email tim@dangercorn.net to join the waitlist.
habitloop is one of 220+ verticals scaffolded from the same template. Each gets a working skeleton for free; individual ones get promoted to full products as demand surfaces.