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.
Two tabs, one truth: state across windows
Multi-tab state consistency without the baffling UX: storage events, BroadcastChannel, optimistic locks, and how to disclose last-write-wins before it betrays someone.
Social proof design without the cringe
Logo soup and 'trusted by 10,000 teams' burn the credibility they mean to build. Proof that persuades is specific, placed next to the claim, and defensible.
Employer brand: write the job ad your team would share
Employer brand isn't a perks page — it's the gap between the hiring story and the studio floor. Write job ads your own team would forward, with receipts.
Loyalty programs that don't treat customers like lab rats
The line between a loyalty program and a manipulation engine is design, not intent. An audit of the dark patterns, plus the honest maths that make one worth it.
Landing-page anatomy: nine sections, one job
Landing-page anatomy section by section: the above-the-fold promise, objection order, proof stacking, demo moments and the end-of-page CTA ladder.
The model deprecation playbook nobody writes until it's 3am
Your LLM provider just announced a deprecation window. How to migrate without panic: abstraction layers, eval-gated cutovers, shadow traffic and honest customer comms.
Designing AI features users can trust
Trust is an interface property, not a policy page. Citations, confidence, correction affordances and honest capability copy — how we design AI people rely on.
State machines for checkout and onboarding flows
Multi-step flows rot into boolean soup. Explicit state machines fix back-button bugs and analytics blindspots — with a worked checkout example.
The first two weeks with an agency: a client's field guide
What actually happens in the first fortnight of an agency engagement: access checklists, stakeholder mapping, decision calendars, and how week-one demos become possible.
Icon systems: SVG discipline for the web
Most icon sets decay into a junk drawer of mismatched SVGs. Grid rules, stroke discipline, sprite strategy and the build-time pruning that keeps an icon system honest.
Scope change without drama
Scope creep is a process failure wearing an intent costume. Distinguishing discovery from creep, a change-request micro-process, and scripts for hard talks.
Evals-first development: the build order that actually works
Write the golden set before the prompt, version prompts like code, and gate merges on eval scores. The workflow that makes LLM features shippable.