The problem
Village halls are run by volunteers with other jobs. The website is somebody’s evening task, and it is the first thing to fall behind — which matters, because for a hall the website is how people find out what is on, whether it is worth hiring, and that the place is alive.
The failure mode is not a bad design. It is a site that nobody can update, so the news page stops in 2019 and the whole thing quietly signals that the hall is neglected.
What we built
A fast, straightforward site covering what the hall is, what is on, and what it looks like — home, news and a gallery — with content in MDX so an update is editing a text file rather than navigating a CMS admin panel.
It runs on Cloudflare Workers. For a village hall that means the hosting bill is effectively nothing, and there is no server to patch, no database to back up and no plugin to update. The things that usually kill a small community site are simply not present.
Decisions
Content in the repository, not a database
A CMS would have meant an admin account to lose, a login to reset, and software that needs updating for the rest of the site’s life. Content lives in MDX files alongside the code, which is a slightly higher bar for one update and a dramatically lower bar for still working in five years.
Static, on the edge
Nothing here needs a server thinking per request. Serving it statically from Cloudflare’s edge makes it fast everywhere and removes running costs almost entirely — which is the difference between a committee renewing hosting happily and querying it every year.
Photography does the selling
People hiring a hall want to see the room. The gallery is not decoration; it is the page that answers the actual question, so it got the attention rather than the copy.
- Next.js
- TypeScript
- Tailwind CSS
- MDX
- Cloudflare Workers
- OpenNext