2026
so far
Not a full year yet, so this is a mid-year note. Three things worth recording: I used a flat-file
CMS, Grav, in anger for the first time, Filament removed most of an admin build, a...
2025
I had been writing code with AI assistance for a couple of years already, and gave a conference
talk about it in 2023. So this is not the year AI arrived. It is the year it stopped...
2024
One new build this year. The rest was maintenance: dependency updates, a PHP version bump across
three platforms, and one long-running project finally moving off a bundler I had be...
2023
One project I started in April 2023 introduced four things to my stack simultaneously: a new
bundler in Vite, a server-driven UI layer in Livewire, Pest as a test runner, and a CI...
2022
I did not add a single new tool to my stack in 2022. Same bundler, same CSS approach, same
framework versions. One new project, and it started from the same skeleton as the previou...
2021
A quiet year, tool-wise, and a good one. Two changes: I replaced a lot of component-framework code
with Alpine.js, and I started using CSS custom properties as an actual
feature ra...
2020
The year everything moved into containers and a lot of things moved out of my working week. The
ddev setup I trialled last December went onto every project by summer. Tailwind show...
2019
Two things I had been putting off for years both happened in 2019, and both were about the machine
I work on rather than the code I write. I moved off Windows to Ubuntu for good, a...
2018
Two unrelated halves. The first was May 25th: every client, at once, in April, and a spring spent
on consent, data minimisation and a command that scrubs personal data out of any d...
2017
Last year I moved to webpack and complained about the config. In January Laravel Mix arrived, a
thin wrapper over exactly that, I put it in a project, and the config went from nine...
2016
Two changes this year, and both were me catching up rather than being early. In July webpack
replaced gulp in my main project. And somewhere around spring I stopped writing float-b...
2015
Very little front-end in my 2015. This was a year of servers: a PHP 5.6 migration across a
platform, wildcard certificates so everything could finally go to HTTPS, a search server...
2014
Until this year my CSS workflow was: open the file, type CSS, save, refresh. On 10 October I
committed a Gulpfile.js for the first time, under a commit message that just says
"So...
2013
This was the year I stopped trying to make a content management system do things that are not
content management. In January I started a project on a PHP framework instead, and the...
2012
First year this blog existed, and the year I acted on the previous year's complaint. In 2011 I was
maintaining four content management systems badly. By the end of 2012 all new wor...
2011
This is the year I stopped writing code that was mine, in two senses at once. In 2010 I had taken
a full-time job as lead developer at an agency, running a team of four, and I stay...
2010
2010 was the year of the fixed-price website: a designer sends a PSD, you turn it into a working
site with a CMS behind it, you invoice a round number, and you keep the hosting and...
2009
There is what I built in 2009, and there is what I actually spent the days on, and the two barely
overlap.
What I built
2009 is the peak year for the strategy I started in 2008...
2008
I launched nine small sites over this year and the next, and they are, to the file, the same
application. Same directory layout, same entry point, same config.php, same models/,...
2007
I used four JavaScript libraries for the first time this year: jQuery, Prototype, MooTools and
Scriptaculous. I was not evaluating them. Each one arrived attached to something else...
2006
I built every site this year inside Dreamweaver 8, and that is the most honest description of my
2006 I can give.
The editor was the workflow. It held the site definition, the FT...
2005
I wrote a lot of JavaScript this year, and built a lot of Flash. Both come from the same impulse:
a page made of text and images had stopped being enough, and there were exactly tw...
2004
I started my own company this year, which makes 2004 the formal start of everything the rest of
this blog is about. It did not feel like a milestone at the time. It felt like paper...
2003
I had been writing PHP for a while by 2003. What changed this year is what I pointed it at: my
first stylesheet, a database behind a site rather than beside it, and a platform that...
2002
A year of building sites out of about 180 GIFs, 120 .htm files and no stylesheet at all.
Two things stand out. This is the year I properly learned HTML, because there was nothi...