Skip to content
Viewing: all (23)
  1. David Lowbridge From fixed values to behaviours Brand automationUX & UIDigital strategy
  2. Mike Leonard The web is fun Motion designUX & UITechnical validation
  3. Jara Santamaria Martinez Every year is a new brief PlatformsContent strategyTechnical validation
  4. Kristina Radonjic The work between the work Digital strategyMarketing
  5. Guanglun Wu Choosing the right tech stack Technical validationPlatformsDigital strategy
  6. Barry Cumberlidge Security deep dive Technical validationContent strategyDigital strategy
  7. David Lowbridge Startups are prototypes Digital strategyBrand automation
  8. Tara Heal Shapeshifting the Future UX & UIMarketing
  9. Tom Small The theme is the guardrail Brand automationPlatforms
  10. Barry Cumberlidge Your biggest asset in an RFP, your website SEOContent strategyDigital strategyMarketing
  11. Michael Gunner Cache Components: the right content at the right time PlatformsTechnical validationContent strategy
  12. David Lowbridge From static frames to a creative operating system Brand automationUX & UI
  13. Tom Small We build by leaving things out PlatformsDigital strategyUX & UI
  14. Michael Gunner Standardise the foundations, not the brand experience PlatformsBrand automation
  15. Charlie Clarke Letting type move Motion designUX & UI
  16. Andy Purbrick Putting video back where it belongs PlatformsTechnical validation
  17. Mike Leonard The cache that doubled as a coordinator PlatformsTechnical validation
  18. Andy Purbrick We test the revenue path Technical validationDigital strategy
  19. Mike Leonard Two months in Three.js, we started over Motion designTechnical validation
  20. Rhona Mackay The form we actually trust PlatformsTechnical validation
  21. Andy Purbrick The testbed nobody will see PlatformsTechnical validation
  22. Andy Purbrick Twenty-four modules, one wrapper PlatformsContent strategy
  23. Andy Purbrick We haven’t missed a Thursday in 33 weeks Content strategyMarketing

We haven’t missed a Thursday in 33 weeks

Andy Purbrick 3 min read Content strategy Marketing

We ship every week. Nobody outside the team could tell.

We haven’t missed a Thursday in 33 weeks

The work was real (features, fixes, infrastructure changes) but invisible. Clients saw results on their pages. Visitors saw a polished site. Nobody saw the pace. We wanted a way to make the cadence obvious without turning it into a marketing exercise.

The format we chose

Plain .txt files in a folder. That’s it. public/release-notes/ currently holds 33 files, one per week, dating from September 2025 to April 2026. Each file follows the same structure: an ASCII art header, sections marked with ==== Title ====, highlight bullets and a summary.

There’s no CMS behind it and no database — someone writes a .txt file, drops it in the folder, and it’s live on the next deploy. We publish every Thursday.

A CMS would mean logins, permissions, a content model to maintain. A .txt file means anyone on the team can write one in their editor and commit it.

A weekly release-notes .txt file open in VS Code: ASCII-art ON logo at the top, then ==== Overview ==== and ==== Highlights ==== sections with plain-text bullets.
The authoring surface: a plain text file with a consistent structure

633 lines of parser

The simplicity stops at the authoring surface. Underneath, a 633-line parser extracts the ASCII art, section headings, highlights, change counts and date labels from each file. It normalizes formatting, preserves casing like “ON Labs” and handles the edge cases plain text always produces.

Another 182 lines handle the interactive behavior: split panel on desktop, accordion on mobile, deep-linking so anyone can share a specific week’s notes. The total comes to 1,575 lines for what started as “just a folder of text files.”

The ASCII art

Every release has a unique ASCII art rendering of the ON logo at the top. Block characters, line art, Unicode blocks, dot patterns — 33 releases, 33 different treatments.

A grid of six ASCII-art renderings of the ON logo from different weekly releases: one made from dollar signs, one from forward slashes, one from triangular line work, one from hash symbols, one from dots, one from solid block characters.
Six weeks, six different ON logos. The variety makes each release feel distinct

They serve no functional purpose, but they’re the first thing you see when you open a release. Scrolling through the archive, the variety makes each week feel distinct.

A small utility exposes the latest release date site-wide. The footer uses it to display when the site was last updated. It’s a single line of text, but it creates a site-wide signal: the site is actively maintained. A visitor on any page can see the last ship date without navigating to the release notes.

What kept the format going

Anyone can write a changelog. Most teams stop after a few weeks. The .txt format (no tooling required, no workflow to learn) is why ours kept going. The ASCII art gives people a reason to actually open them. Deep-linking means releases get shared in Slack threads and client emails as specific URLs. And the footer date quietly tells every visitor the site is alive.

Thirty-three Thursdays in a row, same format, same .txt files.