Blog

Next.js and React engineering notes

Short, practical notes on building maintainable web products with Next.js, React, and TypeScript.

Keep boundaries boring

Next.js projects stay easier to change when server data, client state, route ownership, and UI components have clear boundaries. The goal is not more architecture. It is fewer surprises when the product changes.

Design for repeated edits

Most production React code is edited many times. Names, file placement, and component shape should make the next change obvious to another engineer reading the code in a hurry.

Use TypeScript as a product tool

TypeScript is most useful when it protects real contracts: API responses, form inputs, configuration, and shared domain objects. Types should reduce ambiguity rather than decorate code.