Every festival is a rich record: lineup with schedules, nearby accommodation, transport options from 8 cities, surrounding POIs, the weather forecast, real tips. It is not free-form content, it is structured content that repeats in the same shape for every festival. The data model had to cleanly separate what belongs to the festival as a permanent entity, what belongs to this specific edition (dates, lineup, prices), and what belongs to the city.
Then comes the SEO part. Traffic comes from searches like "transport to {festival} from {city}" or "{festival} accommodation". Each combination is a landing page in its own right. The site has long-tail sub-routes per festival: `/{festival}/alojamiento`, `/{festival}/desde-{city}`, each with its own title, description, content and JSON-LD. Filters that only work with JavaScript would not cut it: the combinations have to be indexable.
The "For you" recommendation crosses the visitor's context (detected location, dates) with upcoming festivals to surface the most relevant one. It is scoring logic, not a trained model.
