The First Version Is Not the Final Version

How I shipped this site

I built this site how I build product: iteratively.


Recently, I decided to post more and develop a voice.

I’ve been building product for a long time now, and have some ideas on how to make things — some my own, others picked up along the way.

One of the big ones: iteration.

Perfect is the enemy of good. It’s the enemy of progress. It’s the reason most of us have big ideas that never see the light of day.

The best antidote is shipping something small, fast. Not the whole thing. Just enough to move the needle from idea to reality.

The trick is to avoid doing too much at once. Each small piece stacks. Things take shape much quicker than expected. Strangely, you can’t predict when something will suddenly feel finished. It just happens. Usually faster than you expect.

Building this website

This site is actually a case study in this approach.

Like I said, I decided to develop a voice.

I wanted to write something. So I did. A rough draft talking about Battleships. I edited it a bit. Maybe an hour of work.

Then I thought where do I put this?

I could’ve gone for LinkedIn. I could’ve used Medium or Substack. All good options.

Instead, I thought: it won’t take much more work to host it myself, and would feel more cohesive. Astro seemed simple, and aligned with how I thought. So I spun up the default template, swapped out a few bits of text, added the post, and deployed to Vercel.

I almost shared the Vercel URL directly.

Again, the urge to move fast struck.

But, adding my own domain was only slightly more work… and it made the project feel “real”

So I did that, and shared the link.

Just a blog running on the default Astro template. Functional, a little ugly, but good enough.

That was enough for one evening and it took me from “guy with an idea” to “guy with a blog”.

Next day

I decided to make it look more like me. The defaults were fine, but they weren’t mine.

I removed the clutter. Duplicate social media links, an empty “about” page.

This part is always harder than adding things. It feels like you should fill every page, but most of the time you need less, not more. You need to cut things away to let the core shine.

I tweaked some fonts, colours and sizes. Added a picture. Adjusted some copy.

Every change was deployed instantly. No big redesign. No grand plan — just lots of small steps, each one improving the whole.

This is how I build.