Writing

Notes from the workbench.

Things I've learned shipping software — .NET and the modern web, architecture calls, and the automation that lets a small team punch above its weight.

6 min read#Client work#Freelance#Web

£1,330 a year off three clients' bills

I kept telling people I save clients money without ever putting a number on it. So I built a running total that works itself out daily, and made it show where every line came from.

Read post
4 min read#Client work#Web#Cloudflare

WAKOOS Centre4Children is live

WAKOOS Centre4Children is up: a charity nursery in Billingshurst, off an ageing drag-and-drop site builder and onto Next.js on Cloudflare. £781 a year of hosting became about £20, and the £20 is just the domain names.

Read post
5 min read#Design#UI#Components

Why buttons don't all feel the same

We press hundreds of them a day and never think about it, right up until one feels good. The workbench is where I keep the ones that do.

Read post
3 min read#Web#Blogging#life

Someone emailed me about a page I didn't have

I set up me@danielhadaway.dev with this site and it sat empty. The first email to land in it was a stranger in Texas asking if I'd build a page I'd never heard of. I built it that evening.

Read post
5 min read#Process#Web#SEO

38 things I keep forgetting

No two sites I build get built the same way. Some start in Lovable, some start from a repo I pulled down, some start from nothing. The list is the only part that stays the same.

Read post
5 min read#Design#Brand#AI

Why every site I build now gets a brand page

It started as a component library for one. It turned into the page I point AI tools at when I want them to understand my site without explaining it again.

Read post
12 min read#Email#Cloudflare#DNS

Setting up email for a small business

Every client site I've built has needed email, and nearly all of them needed the same small thing. Then one client wanted to send email out from his own address. Three levels of setup, what each really costs, and why the free options quietly rule out the third.

Read post
2 min read#volunteering#life

New Role Unlocked: Nursery Treasurer

I've just joined my local nursery's committee as treasurer. Here's what the DBS check taught me about patience, and what an engineer thinks they can bring to a role built on spreadsheets.

Read post
2 min read#Client work#Web#Cloudflare

Split Lip Adventures is live

Split Lip Adventures is up: the new home of firefighter and world-record adventurer Scott Butler, rebuilt from a 2007-era site builder into a fast Next.js site on Cloudflare. And a note on how this kind of work is becoming my bread and butter.

Read post
4 min read#Performance#Web#Images

286 MB down to 39 MB: fixing a slow photo gallery

A client's gallery page was crawling. The cause wasn't the code — it was 286 MB of untouched phone photos, one of them loaded as a thumbnail. Here's the twenty-line fix.

Read post
3 min read#design#darras-index

A fresh coat of paint for Darras Index

Darras Index has swapped its dark, pink-accented look for something lighter and calmer. Here is the thinking behind it, and why such a dramatic change turned out to be easy to ship.

Read post
3 min read#Writing#Blog#Now page

Why I've started writing (and joined the /now movement)

I've started writing things down: achievements, struggles and the odd professional opinion. Along the way I found the /now page movement and got myself listed on nownownow.com. Here's the why.

Read post
3 min read#Freelance#Client work#Sanity

Built to run without me: my first client handovers

Three client sites, built, handed over, and now running without me: client-owned, editable by them, zero ongoing cost. What I'm learning about the difference between shipping code and delivering a product.

Read post
3 min read#AI#Engineering#Career

How my job changed in a year of AI

A little over a year ago AI was a clever chatbot I asked the odd question. Now it runs most of my day. An honest look at what genuinely changed, what's overhyped, and what it means for juniors.

Read post
3 min read#Triathlon#Ironman 70.3#Endurance

My first IRONMAN 70.3: not quite the race I expected

Months of worrying about cut-offs, a cancelled swim, 33°C heat — and a finish line in Luxembourg. My first IRONMAN 70.3 wasn't the race I planned for.

Read post
3 min read#Triathlon#Cycling#Endurance

London to Brighton: my longest bike ride yet

A couple of weeks before my first IRONMAN 70.3, I took on the London to Brighton Bike Ride — the longest ride I'd ever done. It went better than I dared hope. (I did lose four bottles.)

Read post
2 min read#.NET#C##Architecture

Minimal APIs should be minimal

The best API endpoint does almost nothing. How keeping endpoints minimal — and finessing it with the Result pattern at Covertime — made every handler read the same way.

Read post
3 min read#Career#Portfolio#Web

Why I built this site

Almost none of the developers I interview have a website. That's most of the reason this one exists, plus a hedge against a harder job market, and a bit of fun.

Read post
🥚 0/3