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.