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.

Playbooks · 14 Apr 2026 · 9 min

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.

analyticsmeasurementproject planning
Web design · 14 Apr 2026 · 9 min

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.

art directionphotographyimage treatment
Web design · 14 Apr 2026 · 8 min

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.

tablesresponsive designdata design
Engineering · 9 Apr 2026 · 9 min

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.

content-engineeringmarkdownbuild-tooling
Engineering · 9 Apr 2026 · 10 min

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.

observabilityperformancemonitoring
Web design · 9 Apr 2026 · 10 min

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.

interaction designaccessibilitydesign systems
Web design · 9 Apr 2026 · 10 min

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.

perceived performanceloading statesmotion design
Product · 8 Apr 2026 · 9 min

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.

pricingconversionSaaS
Growth · 2 Apr 2026 · 9 min

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.

gated contentlead generationcontent strategy
AI · 31 Mar 2026 · 11 min

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.

evalstestingAI engineering
AI · 30 Mar 2026 · 10 min

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.

AIfeedbackmetrics
Playbooks · 26 Mar 2026 · 10 min

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.

estimationpricingscope management