Ask developers why their side project stalled and very few say "bad idea". Most say some version of "I stopped working on it". Ideas aren't the bottleneck. Follow-through is.
So people reach for accountability: something outside their own willpower that makes stopping harder. There are four main kinds. I build one of them, which makes me biased, so I'll try to be fair, including about where ours falls short.
What makes accountability work
Before comparing, it helps to name what we're looking for. Good accountability has four properties:
- It's honest. It knows whether you actually did the thing, not whether you said you did.
- It's timely. It notices on day one, not week three.
- It's sustainable. You'll still use it in month three.
- It's kind enough. A miss hurts a little, not so much that you quit.
No system scores perfectly on all four. Here's how each one does.
1. Habit trackers (self-reported)
A checklist app, a spreadsheet, or a calendar on the wall. You tick a box when you've done the work.
What works: simple, free, flexible. It works for any habit, not just code. Ticking the box feels good, and a visible chain of ticks is motivating.
What doesn't: it's only as honest as you are at 11:50 pm. On a bad day it's very easy to tick the box for "I'll do it tomorrow morning" or "I read about it, that counts". Nobody checks, and over time the ticks drift away from the work.
Best for: people who are already quite consistent and want a light record.
2. Accountability partners
A friend, a study group, a mentor or a coworking buddy. You tell someone what you'll do, and they ask whether you did it.
What works: humans are powerful. Letting down a person you respect feels much worse than breaking a streak in an app. A good partner also gives you feedback and encouragement that no tool can.
What doesn't: partners are hard to sustain. Schedules drift apart, check-ins get skipped, and the arrangement quietly ends, often around the time you both need it most. Partners also usually rely on self-reporting, so a determined "yeah, I did a bit" passes.
Best for: short, intense pushes like an exam month or a launch, especially with a partner who has the same goal.
3. Building in public
Posting your progress on X, LinkedIn, a blog or a Discord. The audience becomes your accountability.
What works: it's motivating to have people watching, and the posts double as a portfolio and a network. Challenges like #100DaysOfCode are built on this.
What doesn't: the audience is mostly silent, so the accountability is weaker than it feels. Nobody notices if you stop posting for a week. It also tends to reward posting about work more than doing it, and it can be draining if you're not someone who enjoys social media.
Best for: people who like sharing and want the career side-effects. It's strongest combined with something that verifies the work.
4. Verified tracking and games
Tools that check the work themselves, for example by connecting to GitHub, and turn it into something visible: a streak, a score, or a game.
This is the category we build in. Vigilante connects to one GitHub repo, verifies each day from push events (without reading your code), and turns each verified day into a supply crate that rebuilds a small post-apocalyptic town.
What works:
- Honest by default. It can't be talked into counting a day. Either real code reached GitHub or it didn't.
- Timely. You see a missed day the day it happens, because the town's salvage stops.
- Sustainable for some people. A game gives you a reason to open the app that isn't guilt. Upgrading buildings and seeing survivors move in is more fun than staring at a counter.
What doesn't:
- It only sees one kind of work. Code pushed to GitHub. Code review, design, writing and work on GitLab or Bitbucket don't count.
- It doesn't judge quality. One real commit counts. That's deliberate, because small days matter, but it means a verified day says "you showed up", not "you did great work".
- A game isn't for everyone. If you don't enjoy games, a town won't motivate you. A plain streak might suit you better.
- It's yet another app. If it isn't fun for you, it becomes one more thing to check.
Best for: code habits specifically, especially for people who've found that self-reporting lets them off the hook.
Side by side
- Habit tracker: honest: low, timely: medium, sustainable: high, kind: high
- Partner: honest: medium, timely: medium, sustainable: low, kind: medium
- Building in public: honest: low, timely: low, sustainable: medium, kind: medium
- Verified tracking / game: honest: high, timely: high, sustainable: depends on you, kind: depends on design
Combining them
The strongest setups usually combine two:
- Verified tracking + building in public. The tool keeps you honest, and the posts give you the social side. This is why Vigilante gives you a free share card on every verified day: a picture of your town, the day number and your commits, ready to post. Your public update is backed by something real.
- Partner + verified tracking. Instead of asking "did you code today?", your partner can see that you did, and the conversation moves to what you built.
- Tracker + partner. Fine for non-code habits, where nothing can verify the work automatically.
How to choose
Ask yourself one question: when you've broken habits before, what was the failure?
- "I lied to myself about what counted" → you need something that verifies.
- "I forgot, and only noticed weeks later" → you need something timely.
- "It felt like a chore and I quit" → you need something you enjoy, or a smaller target.
- "I felt so bad after missing that I gave up" → you need something kinder about misses.
Pick the system that fixes your failure, not the one that sounds most impressive.
If yours is the first or second, try Vigilante. It's free, and you'll know within a week whether a town is the right kind of motivation for you.