Own product

Paraíso Ciclista

A guide for cyclists in Xàtiva: routes, restaurants, accommodation and surroundings. Built with Astro and Sanity.

Tech stack

  • Astro (SSG)
  • Sanity (headless CMS)
  • Tailwind CSS
  • Migration from WordPress export
  • Deploy on Vercel/Netlify

The technical challenge

A local cycling guide is not built like a blog. Visitors are looking for very specific things: a 40 km route with little elevation gain, a restaurant with a fixed-price lunch menu near the route, a pet-friendly hotel that allows bicycles. That forces you to model content as related entities (routes, restaurants, accommodation, points of interest) rather than as standalone articles.

The SEO side matters too. Traffic comes from long-tail searches by area and by need ("cycling route Xàtiva", "bike-friendly accommodation Costera"). Each entry has to be indexable on its own, with its own JSON-LD (Trip, Restaurant, LodgingBusiness, TouristAttraction), its own title, its own description and its own optimized image.

And the content is edited by a non-technical person. We needed a panel where adding a route means filling in a form with defined fields (distance, difficulty, GPX, photos), not writing HTML.

Process and decisions

Astro as the framework. It generates the static site, with very low load times, zero unnecessary JavaScript and technical SEO handled properly by default. For a content guide that changes slowly, it is the right choice. No server to maintain.

Sanity as the headless CMS instead of WordPress. The client edits in Sanity Studio (a clean interface, strict schemas per content type), Astro consumes the API at build time and publishes static HTML. No public database, no WP panel to update, no plugins that can break.

The migration came from an old WordPress installation. The content was exported to JSON, transformed to the Sanity model (with typed schemas per category) and imported. What made sense was kept, what was noise was discarded.

Traction

Astro + Sanity headlessStack
Non-technical personEditable by
0€ (Vercel/Netlify free tier)Hosting cost
Routes, restaurants, accommodation, points of interest, blogEntry types

What does this mean for your project?

If your project is an editorial or directory site with structured content that changes slowly (local guides, portfolios, case studies, editorial catalogues), this project shows that with a modern static site and a headless CMS the client edits comfortably, the site loads instantly and there is no PHP server to maintain.

It also works as an example of a WordPress → JAMstack migration. The source installation had years of accumulated content and plugins. The useful parts were exported, modelled into typed schemas and rebuilt on a stack that no longer carries any operational maintenance.

If your brief is a fast site, with no exposed public database, with technical SEO properly solved and a friendly content editor for someone non-technical, this pattern applies directly.

Want something similar?

Tell me what you have in mind and I'll tell you what I can do.