
Improving AI chatbots with an editorial handbook from your best content
Editorial guidelines are often too vague for humans — and useless for AI. Extract patterns from your best content to create actionable standards for both.

Editorial guidelines are often too vague for humans — and useless for AI. Extract patterns from your best content to create actionable standards for both.
UNDRR's AI assistant couldn't learn from vague guidelines like 'keep it concise.' I extracted patterns from high-quality examples to create measurable standards.

Five Copilots, one brand — and one table to explain what each does.

Analytics on page views and bounce rates won't tell you if your content has impact — here's how I measure what actually matters.
I added a sunlit ambience effect to this site using pure CSS and SVG — no JavaScript, just gradients and blend modes.

A home for evidence-led impact stories documenting measurable outcomes from my work on platforms, performance, and design systems.

UNDRR's flagship disaster risk report needed to communicate $2.3 trillion in annual losses — without burying the message in data or slowing access for users in disaster-prone regions.

Traditional project planning techniques help ensure maximal benefits from AI tools.

A tiny CKEditor 5 plugin for Drupal that strips inline Word-like junk in one click.

The AI experience has drained traffic from reference content, but leaves a path forward of human-centric experiences, interactivity, and better on-site value.

The goal is not more data, but data to facilitate the story of what we're trying to achieve.

How I swapped Eleventy Image’s hashed outputs for readable, stable names — and the trade‑offs.
A tiny footer checkbox to turns your site styles off with no JavaScript required.
It seems a robust, embeddable PDF viewer for on‑page reading already exists.
I’ve moved from Now Alt to Recursive, an open‑source variable font that unifies UI text and code with one flexible file.

I upgraded the site to Eleventy v3, removed Gulp and the Visual Framework, and simplified everything.
No single issue was breaking UNDRR's editorial experience — it was an accumulation of paper cuts that drained editor time and patience.

Because ‘Just give them the PDF’ isn’t good enough.

Managed Azure Database for MySQL cost us 50%–80% slow down. After six months of pain, we moved our Drupal 10 site back to a classic VM and halved our page‑load times.
UNDRR's Azure migration followed the playbook — managed services, platform-as-a-service, letting the cloud handle complexity. Instead, performance degraded and user trust eroded.

A long-overdue update.

This month, I’m saying goodbye to my projects at EMBL but my career in web work continues.

From contentHub to VF 2.0: foundations for faster, more flexible journeys across One EMBL.

We tamed the ‘footmap’ by introducing a more effective directory pattern.
EMBL.org's footer had become a screen-and-a-half of densely packed links — failing users and stakeholders alike.
EMBL's 80+ properties ran on different CMSs — and content was trapped in each one.

A lightweight React wrapper with precompiled Nunjucks

Getting the perks of monorepo publishing while curating our git tags and release notes.

Back in February 2018, I wrote about updating this site to use a static-site generator by Zurb (makers of the Foundation Framework) called Panini.

In a career of 20 years, the more things change the more they stay the same.

A quick start on how to work with Visual Framework 2.0 CSS, JS and structure your HTML — and lots of links to learn more.

For the Visual Framework 2.0 component system we recommend Eleventy for static sites: Eleventy sites get direct access to component templates with associated metadata and a focused component library.

Dozens of teams across six countries were solving the same UI problems independently — duplicating effort and fragmenting user experience.

Eleventy notes that it, "works great with data — use both front matter and external data files" but the static site generator stops short of working well with upstream in-memory data objects for local development.

Sharing VF 2.0 with developers: flexible, backwards‑compatible components and docs for faster adoption.
Growing an EMBL‑EBI solution into a Visual Framework for the life sciences.

An ontology to document, plan, define and implement CAM magic.

Alphanumeric data works well for programmatic query, but less so for direct human consumption. What if a font was designed specifically with life sciences data in mind?

Not yet stable yet, but has some compelling features.

What does it mean to 'do UX' with our Content Action Model? Beyond the buzz.

Beyond the Core Content Model and into organisations, actions.

Wiring ‘ugly truth’ UX diagnostics for better web strategy & IA.

Here's a quick comparison between, Plex, Helvetica, Fira and a couple of other stand-ins.

While most any video platform and kit can work great for one-to-one video calls, I'll share lessons learnt in my previous roles and during my time in EMBL-EBI's Web Development team.

I'll tragically ignore Stockholm and highlight inclusion, embracing and enabling.

Subtitled: Resisting entropy and preparing for change by binding content to mission.

As is apt for us web types, on 25 July 2017 I gave a reboot to this website.

Using 'brand architecture' at the heart of identity design.
Every timeout during checkout cost revenue. Every slow page load over satellite eroded trust.

The results were immediate: the site launched in the fall shopping season and saw a doubling of conversion rates from visitors — compared to both the previous months and previous fall sales — and that pace has held strong.

Six years ago my then roommate and I founded TheDigitel on the idea that the future of news was changing and that the service was in curating and linking content, and that curation was going to be bigger than the massive link mills then in existence.

How to configure a second ethernet adapter on an Ubuntu EC2 VPC instance.

Postfix, it's used with many a LAMP stack to send out messages from a site, unfortunately it's prone to relaying many spam messages out of the box.
Printed direct from AllAboutKen.com