Jump straight to a town profile
Search by town, county, or region. Results are powered by the summary JSON generated from the CSV during build.
Example profiles ready to browse
A prosperous commuter town with a strong services economy, mature high street, and steady population growth driven by family households.
A county town with a balanced labour market, strong civic role, and an older demographic profile than the national average.
A coastal town with a tourism-led economy, seasonal demand pressures, and a comparatively older population.
Designed for static hosting without losing rich comparison tools
Fast static delivery
Every town page is prerendered by Astro, which keeps deployment simple for Cloudflare Pages and avoids any runtime backend dependency.
Lightweight search payload
The homepage loads only town summaries into MiniSearch, so search stays quick without shipping every demographic series up front.
Progressive comparisons
Detailed charts are fetched only when a visitor adds comparison towns, which keeps the initial payload much smaller.
Replace the mock CSV later without rewiring the site
- Edit
data/towns.csvwith real town rows and the same columns. - Run
npm run buildornpm run dev. - The build script regenerates summary JSON, town JSON, and the data used for static pages.