Performance
Shipping search without a server
Part three of building this blog — full-text search from a static index with Pagefind, costing nothing at rest and loading only on demand.
Performance
Part three of building this blog — full-text search from a static index with Pagefind, costing nothing at rest and loading only on demand.
Engineering
Part two of building this blog — the complete technical SEO layer for a personal site, and the inputs that actually move rankings.
Engineering
Part one of building this blog — a Zod-validated content schema that makes broken articles impossible to publish, not merely discouraged.
Engineering
Novelty in your stack is a loan against future maintenance. Why proven tools win for solo builders, and where the innovation budget should go.
Design
Good interfaces are built by subtraction. A practical method for deleting UI, and why every element must pay rent in reader attention.
Design
On a text site, type is not part of the design — it is the design. The four decisions that matter and the defaults that quietly sabotage reading.
Performance
A page-weight budget set before the first mockup changes what gets designed at all. Treating speed as engineering cleanup is why sites are slow.
Performance
Lab scores lie to you politely. How to measure LCP, INP, and CLS in ways that reflect what readers on real phones actually experience.
Engineering
For a single-author publication, static generation beats every server-rendered alternative on speed, cost, security, and survival. Here's the case.