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.

E-commerce · 24 Mar 2026 · 9 min

Address autocomplete that earns its keep

Address capture is where checkout helps or hectors: lookup with a manual escape, international format chaos, correction over scolding, and a plan for API failure.

ecommercecheckoutforms
E-commerce · 21 Mar 2026 · 10 min

B2B wholesale portals: design for the reorder

Wholesale buyers are professionals doing a job. Quick-order tables, SKU paste, standing orders, net terms and account hierarchies — built for the reorder.

ecommerceB2Bproduct design
Engineering · 21 Mar 2026 · 9 min

Web workers for real work: what we move off the main thread

Web workers aren't a WebGL party trick. CSV parsing, fuzzy search, image pipelines, zipping exports — how we move real work off the main thread without the plumbing pain.

performanceweb-workersjavascript
E-commerce · 19 Mar 2026 · 9 min

The order-tracking page is an owned channel

The most-visited page in your store is one you probably didn't design. Status timelines, honest exceptions, delivery-day ritual, and where merchandising must stop.

ecommerceUXpost-purchase
Brand · 18 Mar 2026 · 9 min

Brand photography without the five-figure shoot

Big photography energy on a real budget: shot lists written like screenplays, a lighting language not a filter, and a library that doesn't age in six months.

art directionbrand photographyphoto library
Growth · 18 Mar 2026 · 10 min

Winback flows: the cheapest revenue you're not earning

Lapsed customers already know you, trust your checkout and cost nothing to acquire. Designing winback flows that reactivate without discount-spamming the loyal.

lifecycle emailwinbackretention
Web design · 18 Mar 2026 · 8 min

404 pages with personality (that still get people home)

A 404 has three jobs: orient, recover, charm — in that order. The anatomy of an error page that rescues sessions, and how to measure whether yours works.

UX writingbrand voiceerror states
E-commerce · 17 Mar 2026 · 11 min

Checkout friction: where conversions actually die and how to find out

Checkout abandonment is diagnosed with funnels, error logs and session data — not vibes. Where conversions actually die, how to measure each death, and what to fix first.

checkoutCROanalytics
Web design · 17 Mar 2026 · 10 min

Dark mode is a second design system

Treating dark mode as a CSS inversion is how you ship a grey smear. Design dark themes as a second, deliberate system — tokens, elevation, contrast, CI tests.

dark modedesign tokenscolour contrast
Web design · 17 Mar 2026 · 10 min

Fluid type scales in practice: from ratio to tokens

How we build fluid type scales that behave from 375px to 1440px: ratios, clamp() mechanics, optical correction, and type tokens that stay readable a year later.

typographydesign tokensresponsive design
Web design · 17 Mar 2026 · 9 min

Print stylesheets: the forgotten design surface

Most web teams ship print CSS by accident. Here's @media print done properly: receipts, itineraries, tickets, page breaks, link URLs, and testing without a printer.

print CSSdesign systemsaccessibility
Web design · 17 Mar 2026 · 10 min

The true cost of video heroes

Video heroes feel premium and invoice like it. A cost-benefit ledger in megabytes, milliseconds and attention — plus the poster-frame discipline that makes one worth shipping.

motionperformancehomepage design