Journal archive: 2019



2019 in numbers

The quantified site. With sparklines. And a map.

Books I read in 2019

A good mix of (science) fiction and non-fiction.

Words I wrote in 2019

Another year blogged.

Liveblogging An Event Apart 2019

Seventeen talks from three events.

The Technical Side of Design Systems by Brad Frost

A presentation at An Event Apart San Francisco 2019

The Mythology of Design Systems by Mina Markham

A presentation at An Event Apart San Francisco 2019

On this day

A time machine for blog posts

Oh, Vienna!

This didn’t mean nothing to me.

Accessibility on The Session revisited

Stop me before I use ARIA incorrectly again.


A most unusual encounter in Frankfurt.

Mental models

Back-end development isn’t the same as front-end development.

Third party

Imagine a web where cookies and JavaScript had to be self-hosted.

CSS for all

Whatever happened to Mozilla’s stated policy of restricting new CSS properties to HTTPS?

FF Conf 2019

A report from Brighton’s unmissable annual front-end gathering.

Cat encounters

Feline-based communication.

Near miss

On the origins of the Torino scale.

Indy maps

It’s not the years, honey. It’s the mileage.

Periodic background sync

It’s not silent push, but I’ll take it.

Silent push for the web

One of the few remaining APIs that only native apps can use.

Indy web

Maps—they don’t love you like I love you.

Web talk

How we built How We Built The World Wide Web In Five Days in more than five days.

The Web Share API in Safari on iOS

Unexpected behaviour in the clipboard.

Something for the weekend

Science Hack Day in San Francisco and Indie Web Camp in Brighton

Dark mode


Travel talk

Edinburgh, Madrid, London, Amsterdam—plane versus train.

Going offline with microformats

The h-entry microformat and the Cache API are a perfect pairing for offline pages.

Geneva Copenhagen Amsterdam

Telling the origin story of the web.

Request mapping

Something I’d like to see in dev tools.

Getting started

Links for someone looking to get started in web development.

The Weight of the WWWorld is Up to Us by Patty Toland

A presentation at An Event Apart Chicago 2019.

Web Forms: Now You See Them, Now You Don’t! by Jason Grigsby

A presentation at An Event Apart Chicago 2019.

Voice User Interface Design by Cheryl Platz

A presentation at An Event Apart Chicago 2019.

Making Research Count by Cyd Harrell

A presentation at An Event Apart Chicago 2019.

Opening up the AMP cache

A proposal to tackle the injustice of Google AMP pages receiving preferential treatment in Google search results.

Passenger’s log, Queen Mary 2, August 2019

The inaugural Dance The Atlantic crossing from Southampton to New York.


I’m off to sea.

Server Timing

Performance sluething.

Register for Indie Web Camp Brighton 2019

Don’t miss it!

Discrete replies

Keeping my home page feed relevant.


It’s not about you.

Navigation preloads in service workers

A little performance boost for your network-first service worker strategy.


JavaScript should only do what only JavaScript can do.

Patterns Day video and audio

For your viewing and listening pleasure.

Trad time

From the west coast of Clare to the World Wide Web.

Summer of Apollo

One film, one podcast, and one website.

Movie Knight

Why so serious?

The trimCache function in Going Offline …again

There’s a bug in the cache-trimming code I wrote.

Patterns Day Two

Oh, what a Patterns Day that was!

Am I cached or not?

Complementing my site’s service worker strategy with an extra interface element.


Jeremy is not eating toast.

A song of AIs and fire

Game of Thrones spoilers ahoy.

The schedule for Patterns Day

What you can expect on Friday, June 28th, 2019 in the Duke of York’s cinema in Brighton.

Three conference talks

Watch the videos.

The World-Wide Work

You need to see Ethan’s closing talk from this year’s New Adventures conference.

Indie web events in Brighton

Homebrew Website Club every Thursday, and Indie Web Camp on October 19th and 20th.

Sponsor Patterns Day

It’s the only way to get tickets to the hottest show in town.


The hero’s journey meets documentation in Düsseldorf.


What I did at Indie Web Camp Düsseldorf.

Head’s role

Clearleft is hiring a head of front-end development. Could it be you?

Timing out

A service worker strategy for dealing with lie-fi.


Weighing up the pros and cons of using a JavaScript framework.

Inlining SVG background images in CSS with custom properties

A clever technique I learned from Trys.

Three more Patterns Day speakers

Three fantastic speakers have been added to the roster of this year’s unmissable one-day event dedicated to design systems, pattern libraries, style guides, and components.

Design perception

Most companies are not digital-first. And that’s okay.


Materials and tools; client and server; declarative and imperative; inclusion and privilege.

Drag’n’drop revisited

An easy accessibility fix, courtesy of my past self.

Cool goal

Websites are cool.

A walk in the country

Won’t you meet in the country in the Summertime in England, won’t you meet me?

Dev perception

The perceived state of front-end development tools and technologies might be quite different from the reality.

CSS custom properties in generated content

They said it couldn’t be done.

Other people’s weeknotes

Like newsletters, but with URLs.

What a day that was

What a long strange trip it’s been.

T minus one

‘Twas the night before Web@30, and not a particle was stirring, not even a meson.

Handing back control

An emergent theme at An Event Apart Seattle 2019.

Updating email addresses with Mailchimp’s API

A change in version 3 of Mailchimp’s API.

Going Offline—the talk of the book

…of the T-shirt.

Unsolved Problems by Beth Dean

A presentation at An Event Apart Seattle 2019.

Mobile Planet by Luke Wroblewski

A presentation at An Event Apart Seattle 2019.

Move Fast and Don’t Break Things by Scott Jehl

A presentation at An Event Apart Seattle 2019.

From Ideation to Iteration: Design Thinking for Work and for Life by Una Kravets

A presentation at An Event Apart Seattle 2019.

How to Think Like a Front-End Developer by Chris Coyier

A presentation at An Event Apart Seattle 2019.

Designing Intrinsic Layouts by Jen Simmons

A presentation at An Event Apart Seattle 2019.

Making Things Better: Redefining the Technical Possibilities of CSS by Rachel Andrew

A presentation at An Event Apart Seattle 2019.

Generation Style by Eric Meyer

A presentation at An Event Apart Seattle 2019.

Designing for Personalities by Sarah Parmenter

A presentation at An Event Apart Seattle 2019.

Designing for Trust in an Uncertain World by Margot Bloomstein

A presentation at An Event Apart Seattle 2019.

Slow Design for an Anxious World by Jeffrey Zeldman

A presentation at An Event Apart Seattle 2019.

Patterns Day 2: June 28th, 2019

2 Patterns, 2 Day

Accessibility on The Session

Tweaking some ARIA attributes.

Marty’s mashup

Marty Neumeier’s latest book is a “business thriller.”


A tale of two Kevins.

A tiny lesson in query selection

Here’s a little thing I learned.

Design sprint?

It looks like a design sprint, and quacks like a design sprint. But is it a design sprint?

Interaction 19

Making the best of a so-so conference.

Timelines of the web

The World Wide Web is a mashup.


Nine people. Five days. Thirty years.

Back at CERN

Bringing web history alive. Again.


Browser updates bring improvements to progressive web apps on iOS and Android.

New Adventures 2019

Now that’s what I call a conference.

Building links

Further reading for the upcoming talk I’m giving at the New Adventures conference.

Writing for hiring

Robot-free recruiting.

Code print

Print stylesheets and QR codes: one great flavour and one yucky flavour that taste quite good together.


Choose your battles with yourself wisely.