← Writing

Habit Dots: When "Personal Software" Means You Just Clone What You Need

Where the idea for Habit Dots came from

Habit Dots is an honest, shameless clone of the HabitKit app, maybe 75% of its most important features. I'm not hiding it: this isn't a project I intend to develop commercially or sell anywhere. I treat it as "personal software", software made for myself, for my own use, with no ambition of turning it into a product.

It came about alongside an experiment with the Claude Fable 5 model and the question of whether it really can build an app from a single prompt. I took a few screenshots of the original HabitKit app, described the features I wanted in a long prompt, and Claude Code built it in one pass.

What it does, and what it doesn't

I copied the core of HabitKit's functionality, but not all of it: the original has more to offer. I develop Habit Dots exactly as far as I need it myself, and I add things the original doesn't have. An example: I decided that a streak of, say, seven completions of a given habit should be something you celebrate, so I added confetti that fires off once you hit seven repetitions. Then I concluded the same should apply to habits done less often, three times a week for instance (gym sessions, say), so there's confetti there too, and it stays on screen for 24 hours.

It's a web app with no user accounts, everything kept locally in the device's local storage, which incidentally gives you a lot of privacy. As a progressive web app, you can add it as an icon on your phone and use it like a native app. I'm making it for myself and for friends who'd like to use it.

What I learned

Cloning simple apps is surprisingly easy: take a few screenshots and you can reproduce the design almost one to one. It confirms that "personal software" is a real and growing category, especially for people who can vibe code even a little: simple apps for your own use will be something you can just recreate for yourself, instead of hunting for an off-the-shelf solution or paying for one.

It has its limits too. The original app is native, so it has phone widgets for example, which a PWA-style web version doesn't offer. That's a conscious trade-off: simplicity and speed of building in exchange for giving up some native capabilities.

Liked this one?
Get the next letter in your inbox.