Content Model
Cities and songs stay separate.
City JSON powers the location story and routing. Song JSON powers releases, embeds, dates, and platform links. That separation keeps the site flexible when the catalog grows.
About The Build
This project uses Astro because the public site should stay extremely fast, easy to index, and easy to expand. Tailwind handles the visual system, JSON drives the city and song data, and Cloudflare Pages gives you a simple path from local build to live deployment.
Content Model
City JSON powers the location story and routing. Song JSON powers releases, embeds, dates, and platform links. That separation keeps the site flexible when the catalog grows.
SEO Shape
The `/cities/[slug]` route gives each destination its own headline, description, embedded song area, and metadata. That is the right base for search-driven discovery.
Deployment
Cloudflare Pages only needs `npm run build` and the `dist/` folder. The site stays static now, which leaves plenty of headroom for later functions and automation.
Future Features
/interactive-map
/analytics-dashboard
/automation-api
/licensing-portal