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.
Write the measurement plan before you build
Analytics bolted on after the build answers yesterday's questions badly. The measurement plan: events, naming, consent, dashboards — before the first sprint.
A photography style without a photoshoot
No budget for a shoot? Crops, duotones, grain and a treatment matrix make any source image look on-brand. How we art-direct cheap photography.
Tables on phones: responsive table design that respects the data
A table is a set of relationships, and a 375px screen doesn't change that. Priority columns, honest card transposition, scroll affordances, and what to omit.
Rolling your own markdown pipeline (and knowing when to)
When MDX stops paying rent: deterministic rendering, frontmatter validation at build time, link auditing of prose, and owning your content format end to end.
Frontend observability for teams without an SRE
Frontend observability without an SRE: the three signals that matter, sourcemaps done privately, and the dashboards a small team will actually open.
Drag handles, sliders and the affordance problem
Draggable UI fails quietly: nobody drags, keyboards can't, layouts forget themselves. How to build handles and sliders that people actually find, use and keep.
Perceived performance is a design material
Perceived performance is designed, not just engineered: skeletons, optimistic UI, progressive images, zero layout shift and the choreography of waiting states.
What 30 pricing pages taught us about clarity
A research review of SaaS pricing pages: tier naming that means something, comparison tables that aren't mazes, honest annual toggles and enterprise patterns.
The gate question: what to charge an email address for
Gating decisions with real trade-off math: the reach cost of a form, the lead-quality myth, which formats earn a gate, and the hybrid save pattern.
Evals are the new unit tests: a practical guide for product teams
Golden sets, rubric graders, regression gates and CI plumbing: how product teams build LLM evaluations that catch real regressions without a research team.
Feedback loops users will actually feed
Thumbs-down rates near zero tell you nothing. Designing AI feedback signals that collect usable data, close the loop visibly, and track volume as a health metric.
Estimating software honestly: ranges, risks and why we cap scope
How we estimate software honestly: signal ranges per phase, explicit risk buffers, fixed-scope sprints — and how to read any estimate a studio gives you.