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 · 12 Feb 2026 · 12 min

Illustration systems that don't go stale

One-off illustration ages like milk. Here's how we build illustration languages as systems: primitives, composition rules, generators and maintenance models that survive.

illustrationbrand identityvisual language
Brand · 12 Feb 2026 · 8 min

From shelf to screen: packaging-to-web consistency

Shoppers meet your brand on shelf and screen in the same week. Keeping them aligned: claims parity, photography, and the audits that catch drift.

packaging designomnichannel brandbrand consistency
Engineering · 11 Feb 2026 · 9 min

Playwright suites that survive the redesign

How to write browser tests against intent, not pixels: accessible locators, honest page objects, visual diff quotas, and keeping the whole suite under ten minutes.

testingplaywrightquality
Engineering · 11 Feb 2026 · 9 min

Baseline 2026: what the platform finally gives you

A working guide to web Platform Baseline in 2026: what you can ship without polyfills, how to read compat data, and a sane adoption policy for teams.

web platformCSSbrowsers
Growth · 11 Feb 2026 · 9 min

Name your events before you buy the analytics tool

Event naming decides whether your data answers questions in year three. The taxonomy anatomy we design before any tool evaluation: verbs, properties, screens, migration.

analyticsevent namingtaxonomy
Growth · 11 Feb 2026 · 12 min

Newsletters as a growth engine, not an afterthought

The newsletter is the only growth asset you own outright. How to design the promise, architect the issue, build referral loops, and do the cadence math honestly.

newsletteremailowned audience
Product · 11 Feb 2026 · 9 min

Cancellation flows that leave the door open

Offboarding is a trust surface: retention offers without traps, exit surveys that yield signal, data-export dignity, and win-back timing that works.

cancellation flowchurnoffboarding
Product · 11 Feb 2026 · 9 min

Command palettes: the 200-millisecond product tour

A command palette done well is a 200-millisecond product tour. Ranking heuristics, forgiving fuzzy match, keyboard ergonomics, and when a palette is a crutch.

command palettekeyboard navigationpower users
E-commerce · 10 Feb 2026 · 9 min

Bundles and kits: designing the build-your-own moment

The bundle builder as interface design: shelf metaphors, fill visuals, flat pricing, coupled inventory — and when a kit makes the product disappear.

ecommercemerchandisinginteraction design
Engineering · 10 Feb 2026 · 8 min

Design tokens that survive contact with engineering

Most token pipelines rot within a year. Here's the architecture we use at Brassfern to keep design decisions flowing from Figma to production without drift.

design tokensdesign systemsCSS
Growth · 10 Feb 2026 · 9 min

Lifecycle email is a product: building programmes, not campaigns

Lifecycle email is a product, not a campaign calendar: state-based programmes, plain-text craft, deliverability engineering, and metrics beyond open rates.

lifecycle emailretentionemail design
Engineering · 9 Feb 2026 · 8 min

Error boundaries: designing UI that fails gracefully

Error boundaries are a product decision, not a try/catch. Granularity, fallbacks that save user work, retry semantics and reporting that actually gets read.

reactreliabilityerror-handling