The stack, and why
Next.js 15 with React 19 and TypeScript, styled with Tailwind. Content sits behind Payload CMS so editors change copy without a developer in the loop. Nothing exotic — the value is in a stack that will still be maintainable in three years, by someone who is not us.
- Server components by default, client components only where interaction demands it
- TypeScript end to end, including the CMS schema
- Design tokens rather than one-off styles, so a rebrand is a config change
