- 1 min read
Why my settings page has six things
A short defence of a settings page that does not grow.
- 1 min read
Default values I changed
A short list of defaults that did more work than any feature I built.
- 1 min read
Tradeoffs I made in February
A short audit of three explicit tradeoffs and what they cost.
- 1 min read
One number that surprised me
A metric I had not been tracking, that turned out to predict more than the ones I had been.
- 1 min read
The button that didn't exist
How three users tried to click a thing that was not there, and what I built instead.
- 1 min read
One signup field is enough
What happened the week I cut my signup from five fields to one.
- 1 min read
The animation I removed
Why a 120ms ease that I had been proud of had to come out.
- 1 min read
Why I send no welcome email
A small product decision that took a year to fully accept.
- 1 min read
A bug I left in for two months
Why the right time to fix it was the second I noticed, and what I am telling myself next time.
- 1 min read
When I start over vs when I refactor
A test I run on myself before I commit to either path.
- 1 min read
The empty state I argued with myself about
Two weeks, three drafts, and what the right answer ended up being.
- 1 min read
Onboarding I rebuilt three times
The same flow, three increasingly small versions, and what each one taught me.
- 1 min read
The week I shipped nothing
What I did instead, and why the week was not wasted.
- 1 min read
Features I deleted this quarter
A short audit of what came out of the product, what stayed in, and what I learned about the difference.
- 1 min read
Building ClubFriends from zero
Notes on starting a consumer social product alone — the constraints I picked, what I am avoiding, and the small loops I run every week.
- 1 min read
Soft launching to nobody
On shipping a product to a quiet audience first, and why the silence is the point.