Projects · 16 October 2026

Making Boop

Three trackers, one notebook, and a lot of App Store paperwork


For a while I was tracking my days across three different apps — one for notes, one for habits — plus an actual paper notebook, because that’s where I draw. This is roughly how that turned into one app instead.

Boop app banner: hand-drawn doodle icons surrounding the Boop diary and habits logo

The Itch

I had a notes app for writing down what happened during the day. A separate habit tracker, the usual grid of checkmarks. And my real notebook, on paper, where I’ve drawn little sketches for years instead of just writing things down. None of these talked to each other, and the one I actually liked using was the one that couldn’t live on my phone.

That’s basically the whole origin story. I wasn’t chasing a gap in the market or sketching out a business — I was just annoyed that one simple habit needed three tools, and the part I actually cared about, the sketching, kept getting left out of whatever I used digitally.


The Idea

What I landed on: write a couple of lines, pick a mood, tick off whatever habits you track — and let the app turn that into a small drawing for the day. Less typing, more doodle. Do it daily and the days start piling up into something like a yearly canvas, the same way a page-a-day notebook works, except this one draws for you.

Once I had that shape in my head, a few other calls followed pretty naturally. No accounts, no ads, no tracking what you actually write — a diary that phones home kind of defeats the point of being a diary. That call ended up shaping a good chunk of the technical side, too.

A Boop diary entry: a few lines of text, small doodles, and a row of habit counters for water, reading, morning routine and coffee
One day: a few lines, a mood, habits ticked off

Picking the Stack

I wanted one codebase for both iOS and Android, and I wanted “no backend” to actually be true, not just a line in the privacy policy.

Layer Choice Why
Framework Flutter One codebase, iOS and Android both
State BLoC + freezed Something consistent for state that’s always changing — every word typed, every habit tapped
Storage Drift A local database — nothing to host, nothing to pay for, nothing that can leak
iOS extras WidgetKit So the year-canvas also works as a home screen widget

Drift mattered more than I expected going in. Without a backend, the local database is pretty much the whole data story of the app — get it wrong, and there’s no server to quietly fix things from.


Friends Are Better Than Any QA Team

Honestly, the biggest jump in quality didn’t come from me sitting and testing my own app. I put a handful of friends on TestFlight, and the bugs they ran into were the ones I was never going to find on my own — the kind that only show up when it’s someone else’s routine, someone else’s habits, someone else’s way of poking at a screen.

Boop's appearance settings: theme, background color, text size, font and paper style options
Half of these settings exist because a friend asked for them

If you’re building something on your own, get it in front of real people before you feel ready. A week of that does more than a month of testing it yourself.


The Real Bottleneck Wasn’t the Code

Here’s something that caught me off guard: writing the app wasn’t the slow part. Getting it in front of people was. Setting up the Apple Developer account, getting through App Store review, sorting out the metadata and screenshots — all of that ate way more time than any bug fix did.

If you’re planning to ship something solo, leave real time for this step specifically. It’s not a formality tacked on at the end, it’s basically its own project.


What’s Next

Boop’s live on iOS and Android right now. Next up is mostly paperwork again, not code — getting through Google Play’s own registration, which I’m expecting to be its own version of the App Store slog I just finished.

The Boop year view: hundreds of small colorful doodles tiling into a canvas for 2026
365 small drawings, one canvas

If you want to see where the notebook ended up, it’s here:

Visit Boop →