Writing
Essays on TypeScript, the browser, and the craft of building interfaces.
#agentic-coding
#ai
#as-const
#best-practices
#cache-components
#caching
#claude-code
#clean-code
#compiler
#component-architecture
#context-engineering
#developer-founder
#developer-tools
#enums
#error-handling
#hooks
#hydration
#i18n
#internationalization
#intl-pluralrules
#intl-segmenter
#javascript
#llm
#lsp
#nextjs
#pluralization
#ppr
#product-strategy
#programming
#react
#render-props
#result-type
#server-components
#signals
#software-engineering
#ssr
#startup-ideas
#state-management
#strings
#typescript
#unicode
#union-types
#web-development
#zustand
2026
Next.js 16 Has Four Caches. Here's Which One Broke Your Page. Your Agent Reads Too Much Your `CLAUDE.md` Is a Tax You Pay on Every Token Your `+ 's'` Only Speaks English — Pluralize with Intl.PluralRules Why `.length` Is Wrong for Strings in JavaScript — and How Intl.Segmenter Fixes It Why Zustand Breaks in Next.js — And What the Fix Actually Is Most Startup Ideas Are Backwards — I Search for Products People Already Resent Stop Writing try/catch — Your TypeScript Errors Deserve Types Stop Using Booleans Everywhere — Use Union Types Instead Render Props Are Not Dead — React Hooks Didn't Replace What Actually Matters Why I Stopped Using Enums in TypeScript (I Use `as const` Instead) You Don't Need Zustand: useSyncExternalStore Is All You Need Why I Stopped Building My JavaScript Framework After 1,500 Lines of Spec 3/3 I Built a Reactive Compiler for JavaScript — Here's Where It Broke 2/3 I Designed a Web Framework That Replaces React Hooks With Two Imports 1/3