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.
AI form copilots: suggestion, not substitution
AI form copilots work when they suggest, not substitute: per-field confidence, bulk-fill undo, and one rule — the model never commits silently.

The context window is a product decision
The context window is a product decision: curating what the model sees, showing users what's in scope, and designing honest 'I don't know' moments.
Experiments that don't shift the layout
A/B testing without layout shift: server-side assignment, experiment flags that never leak into the DOM, metric integrity, and the true cost of visual editors.
Every AI feature needs a kill switch
Config-driven disable paths, graceful degradation, incident comms for model-caused bugs, provider outage posture, and the quarterly drill where you flip the switch.
How long should the answer be? Right-sizing LLM output
Answer length is a product decision, not a model default. Per-surface budgets, summary-detail layering, and evals that treat 'too long' as a failure.
Editorial copilots that don't flatten the voice
Editorial copilots should sharpen a voice, not flatten it: drafting vs polishing modes, house-style injection, fact hygiene and honest review flows.
Hover states with purpose
Hover is the most abused state in interface design — decoration where it should teach. A taxonomy of hover states that do a job, plus the focus-parity rules.
Prompt injection: the threat model your LLM feature needs
A defensive playbook for shipped LLM features: untrusted-content labelling, tool privilege separation, output screening, canary tokens and red-team CI.
Memory is a UX surface: designing what assistants remember
What an assistant remembers is a designed surface: inspectable memory, deliberate forgetting, edit affordances, and the privacy postures that earn retention over time.
Citation design: showing the AI's working
Citations are how AI answers earn belief. Inline sources, confidence without fake precision, expandable evidence, link rot, and how provenance UI measurably builds trust.
Pre-orders are a trust exercise, not a checkout variant
Pre-orders and crowdfund launches fail on expectation design, not payment plumbing. Charge timing, delay scripts and the trust ledger that carries a launch.
Internal linking is architecture, not an afterthought
Internal linking is information architecture, not a plug-in. Hub-and-spoke models, anchor-text discipline, related-content automation, and measuring crawl paths.
Continue on your phone: handoff UX that doesn't lose people
Session and device handoff done properly: continue-on-another-device flows, magic links vs QR codes, delayed-resume UX and the honest security boundaries.