It was one thing at first. Show convenience-store buy-one-get-one deals at a glance. Then somewhere along the way, the thing I was building had notifications, favorites, spending stats, even expiry-date memos bolted on. Nobody asked me to do any of it.
Adding Feels Good
Every time I added a feature, I felt this odd little pride. That "oh, it can do this too?" rush. Stacking up code feels like progress. I added favorites thinking this'll definitely make it more convenient, and I added notifications while rationalizing this'll bump up the return rate.
The problem is I made every one of those calls alone. I never asked anyone who'd actually use it. I just decided the imaginary user in my head wanted it.
When the person deciding to add a feature is the same person who supposedly needs it, that's not validation — it's a monologue.
It Wasn't Just the App That Got Heavy
As the codebase grew, I got scared to touch it. Mess with the favorites logic and notifications might break; tweak notifications and the stats aggregation might go sideways. Both of those actually happened, twice.
The bigger problem: I started putting off the launch. "I'll ship once the stats feature is done" became "after I add expiry memos too." I was running toward done, not toward shipped. But there's no such thing as done for a mini-app.
It should be ship first, finish later — not finish first, ship later. The more features pile up, the more that order flips.
Cutting Hurt Way More Than I Expected
In the end I cleaned house. Dropped the stats tab, dropped expiry memos, left notifications as a single on/off toggle. It stung to cut. Deleting code that took two days to write feels like deleting a commit log.
But once it was gone, I could finally see what actually needed fixing. The core thing — showing the deals — turned out to be the flimsiest part of the whole app. All the flashy side features had been covering for it.
Only after I stripped away the clutter could I see the real hole.
How I Handle New Feature Ideas Now
I shove them into a "someday" list in my notes and close it. If it still feels necessary a month later, that's when I let myself think about it. Surprisingly, most of the time when I read them back a month on, my reaction is "wait, why did I want this?"
Adding is instant gratification; cutting is delayed conviction. Sitting in that gap seems to be the only way to keep a mini-app mini.
TL;DR: Features feel like progress when you add them, but the real problem only shows up after you cut them.
Next time I'll write about the day I finally shipped this barely-trimmed app — that first day when nobody showed up.
Continue with the dated source map, related beginner guides, and current limits on Builderlog
Start with the free decision tools. Inspect the scope and evidence before choosing any paid next step.
Top comments (0)