Field notes
Notes fromthe workshop.
Writing on engineering, product, and the small decisions that compound.
Tailwind v4 shipped. Here are the renames that will bite you.
The Oxide engine and CSS-first config are a real upgrade, but the shadow, border, and ring renames will shift your UI without telling you. A migration field report.
Read the latest- 02 · May 31, 2026
React 19 Actions, useOptimistic, and the ref change nobody mentions
The client-side parts of React 19 we actually use every day, plus the one TypeScript change to refs that broke our build the first afternoon.
Read - 03 · May 30, 2026
Why we reach for Drizzle, and the one query pattern that pays off
Schema as plain TypeScript, two query styles, and the single-statement relational reads that sold us. Plus the honest 2026 caveat now that Prisma 7 went pure TypeScript.
Read - 04 · May 28, 2026
SQLite at the edge with Turso: when local reads beat Postgres
This site runs on SQLite through Turso. Embedded replicas, the single-primary constraint, the read-your-writes gotcha, and exactly when this beats a managed Postgres.
Read - 05 · May 25, 2026
Shipping an AI chat feature without blowing the budget
Streaming a model response with the Vercel AI SDK is one line. The engineering is in the rate limits, output caps, and step limits that keep a public chat bubble from costing a fortune.
Read - 06 · May 6, 2026
Next.js 16 Best Practices for 2026: A Senior Engineer's Playbook
15 production-tested Next.js 16 patterns: Partial Prerendering, Server Actions, explicit caching, streaming, and the architecture calls that ship.
Read - 07 · May 4, 2026

How to make Flatlist faster
React Native’s FlatList is a powerful component for rendering large lists efficiently, but poor optimization can still cause lag, slow scrolling, and unnecessary re-renders. In this blog, I’ll share practical ways to improve FlatList performance and create smoother user experiences.
Read