Journal

Thinking, in public

Field notes on design, engineering and growth — written by the people who ship the work. No thought leadership, just lessons with receipts.

Brand · 11 June 2026 · 11 min

The annual report as a web moment

The annual report is the year's biggest brand surface, usually wasted as a PDF. Structure the story, keep the data honest, ship it as a web moment.

annual reportimpact reportbrand storytelling
Engineering · 11 June 2026 · 10 min

Animation is engineering: shipping motion at 60fps

Motion at 60fps is an engineering discipline: compositor-only properties, FLIP for layout changes, when canvas or WebGL earn their weight, and testing.

animationperformanceweb platform
Engineering · 11 June 2026 · 10 min

HTML emails in 2026: engineering for a hostile medium

Table layouts without despair, the dark-mode inversion lottery, bulletproof buttons, image-off rendering, and a testing matrix a small team can actually run.

emailfront-endtesting
Engineering · 11 June 2026 · 11 min

Rolling your own search in 2026: cheaper and better than you think

Search is a product, not a plugin. When we self-host Meilisearch or Typesense instead of renting the big names, how we tune typo tolerance, and the UX that forgives.

searcharchitectureUX
Engineering · 11 June 2026 · 10 min

The TypeScript strictness ratchet: stricter every sprint, never a big bang

Strict mode on a legacy codebase is a migration disguised as a flag. The ratchet approach: incremental flags, scoped configs, codemods and type-debt metrics.

typescriptcode qualitymigration
Growth · 11 June 2026 · 10 min

Podcast growth: show notes, transcripts and episode pages that rank

Turn a podcast into a search asset: episode pages with real titles, full transcripts, chapter markers, guest cross-links, and a distribution loop without paid.

podcast SEOshow notestranscripts
Playbooks · 11 June 2026 · 9 min

Weekly demos: the habit that runs our projects

Weekly demos as a project operating system: the format that forces progress, recording etiquette, async viewing, demo-driven scope discovery and braver clients.

weekly demosagile ritualsshipping in public
Web design · 11 June 2026 · 9 min

Light, dark, light: section banding as rhythm

How to use alternating light and dark sections as editorial rhythm: surface budgets, seam design, spacing across bands, and fitting a night section into a paper site.

layoutcolourdark mode
Web design · 11 June 2026 · 9 min

Skeleton screens that don't flash and lie

Skeleton UI done honestly: match the shape of the answer, gate the flash, respect reduced motion, and know when a spinner or optimistic UI beats a skeleton entirely.

loading statesskeleton screensperceived performance
Product · 10 June 2026 · 8 min

Feature discovery: design for the day after launch

Shipping a feature is half the job. Announcement surfaces that respect focus, contextual education, suppression discipline, targeting and how to measure discovery lift.

feature discoveryannouncementsonboarding
AI · 9 June 2026 · 12 min

When the AI says no: moderation UX

Every generative AI feature eventually refuses a user, and most refusals are dead ends. Designing blocked, revised and appeal states that preserve dignity.

moderation UXAI safetyblocked states
Playbooks · 9 June 2026 · 9 min

Reading agency contracts: IP, liability and the licence traps

A plain-English tour of the contract clauses that matter in creative engagements: IP assignment vs licence, portfolio rights, liability caps, kill fees, warranty windows.

contractsintellectual propertyprocurement