MDX blog and validated contact form
Content is an MDX blog: posts are files in the repository, version-controlled alongside your code, with the layout, metadata, and routing already handled. No CMS to provision, and no monthly bill for publishing a changelog.
The contact form is validated with React Hook Form and Zod — one schema shared by the client and the server, so the two can't disagree about what a valid submission is, and the error states are accessible rather than colour-only.


