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.
WCAG AA for product teams: the parts everyone gets wrong
The WCAG AA criteria that fail most in real products — contrast, focus visible, target size, keyboard traps — and the review rituals that keep them green.
Product photography that actually sells
Product photography that sells: shot lists per category, a consistent lighting language, scale cues that cut returns, video's real ROI, and the shoot brief.
Reviews that earn trust instead of renting it
A five-star wall of praise converts nobody. Review systems earn trust via solicitation timing, proud 3-stars and merchant replies that de-escalate.
The subscription portal: where churn is won honestly
The subscription portal is your retention product: manage screens, swaps, dunning with dignity, and exit surveys that respect the people leaving.
Scrollytelling without the hostage-taking
Scroll-driven narrative can make complex data click — or trap readers in an unskippable slideshow. The pacing, exit lanes and motion fallbacks that keep it honest.
The 90-minute brand audit: our scoring sheet, free to steal
A structured 90-minute brand audit any team can run this afternoon — consistency sweep, voice sampling, asset inventory — with our actual scoring sheet.
Prompt libraries are a design system too
Prompts scattered through a codebase rot like untracked CSS. How we build prompt libraries: structure, versioning, test coverage, and a shared vocabulary.
Lifecycle email: the six flows every product needs
Welcome, activation, usage, renewal, winback, referral — the core lifecycle email system with trigger logic, copy principles and measurement that survives audits.
Error messages that de-escalate
An error message is a conversation at someone's worst moment with your product. The structure, tone rules and support hooks that make errors actually help.
Returns UX: the loyalty moment hiding in plain sight
A bad return ends a customer relationship; a good one deepens it. Self-serve flows, honest exchange nudges, sizing feedback loops and returns data as intel.
The webinar repurposing engine: one event, twelve assets
One webinar is a quarter of content wearing a trench coat. The slicing taxonomy, SEO mapping, lightweight tooling and honest measurement behind our repurposing engine.
The kickoff workshop agenda we run before every build
Our actual half-day kickoff agenda for a 12-week build: the hour-one decision log, the risk room, role mapping and the 'what would make this fail' round.