Four Weeks, Four Launches: My Experiment in Finishing Ugly
Photo: Gangulybiswarup, CC BY 4.0, via Wikimedia Commons
The Setup
Every developer I know has a graveyard. A ~/projects folder full of half-finished apps that died somewhere between the third refactor and the auth flow nobody asked for. Mine had eleven bodies in it, including a SaaS idea from 2021 that I'd spent three weekends on and never deployed.
So in early March I made a deal with myself: one micro project, launched to the public, every Friday for four weeks. The rule wasn't "build something good." The rule was "build something that exists on the internet." Good could come later. Maybe never.
Here's the log, week by week, including the parts that stung.
Week 1: A Regex Cheat Sheet That Writes Itself
I built regexpal.aleksdelab.com — you paste a string, it suggests common regex patterns that match parts of it (emails, phone numbers, dates) and explains them in plain English.
Time log: 6 hours total. 4 on the pattern-matching logic, 1.5 on styling, 0.5 on deploying to a Vercel subdomain. I deliberately skipped dark mode. It stung. I shipped anyway.
Launch day traffic: 212 unique visitors, mostly from a single post on r/webdev and one Hacker News comment that didn't get buried. 38 people used it more than once.
The lesson: the explanation text drove more engagement than the patterns themselves. People don't want regex; they want to understand regex.
Week 2: The Week the Scope Ate Me Alive
Week 2 nearly broke the streak. I wanted to build a CLI tool that generates changelogs from git commits. Ambitious, useful, marketable — and completely unshippable in a week, which I knew by Tuesday night.
This is where scope-shrinking earned its keep. I cut the tool down to its dumbest possible version: a single-page site where you paste your git log and it formats a changelog using a few heuristic rules. No CLI, no config file, no GitHub Action integration. That killed 80% of the work.
Time log: 9 hours. Way over budget, but it launched Friday at 11pm.
Traffic: 87 visitors. Only 12 used the tool. Two people emailed me asking if there was a CLI version — which, ironically, is the thing I'd cut. The flop taught me more than the win: sometimes the cut feature is the actual product.
Week 3: Boring on Purpose
By week 3 I'd learned my lesson. I built something deliberately boring: a standup note generator. You type three bullet points, it formats them into a clean standup message for Slack with one click. That's the whole app.
Time log: 3.5 hours. New record.
Traffic: 340 visitors — my biggest week. A small LinkedIn post about it traveled further than anything on Twitter/X ever had for me. Six people asked if they could embed it in their team wikis.
The lesson: boring problems have audiences. The regex tool was clever; the standup tool was useful. Useful wins.
Week 4: Shipping on a Hangover of Momentum
The final week I built a tiny "is this domain taken" checker with instant availability guesses based on TLD pricing. Honestly, the weakest idea of the four. But the streak mattered more than the idea, and momentum is a real, measurable force — my time-to-ship had dropped from 9 hours in week 2 to under 4 by week 4.
Traffic: 51 visitors. The worst numbers of the month. It shipped anyway.
What I Actually Learned
- Finishing ugly beats not finishing. All four projects are live, all four have rough edges, and none of that has mattered to a single user.
- Scope-shrinking is a skill, not a compromise. Every successful launch this month happened because I cut a feature on day three instead of day thirty.
- Time logs don't lie. My average was 5.4 hours per project. The 9-hour week was the one where I refused to cut scope.
- Traffic is noise; repeat usage is signal. 212 visitors to the regex tool meant less than 38 of them coming back.
If you're stuck in side-project purgatory, try the streak. One week, one launch, ugly on purpose. Your ~/projects folder will thank you.