← Retour aux projets

ShortStayGuide

Projet

Plateforme de guides de voyage curatés tri-locale (EN/FR/ES). 2 997 city guides (333 villes × 3 durées), 17 445 persona guides, 2 580 neighborhoods, 93 articles, 399 roadtrips, 48 food guides — 23 562 documents au total, ~17 900 stops géolocalisés, globe 3D, recherche IA. 1 162 commits, ~63 K LOC, < 10 MiB Worker.

FR EN
2 997 City guides (3 locales)
333 Villes uniques
23 562 Documents total
~17 900 Stops géo
1 162 Commits
< 10 MiB Worker total

Pourquoi j'ai construit ça

Les vols low cost ont transformé le weekend en terrain d'exploration. Un sac à dos, deux jours, une ville qu'on ne connaît pas — c'est devenu une passion. Sauf qu'une fois sur place, la vraie question c'est : qu'est-ce qu'il faut absolument voir pour avoir l'impression d'avoir vraiment tiré profit de son temps ? ShortStayGuide répond à ça : un guide curaté par ville, qui va droit aux essentiels sans noyer le lecteur dans 400 POIs génériques. Pensé pour les voyageurs rapides, par quelqu'un qui en est un.

Décisions techniques structurantes

01
Astro 6 SSG + Preact islands sur Cloudflare Pages

Plus de 23 500 pages statiques générées au build (city guides × 3 langues, persona guides, neighborhoods, articles, food, roadtrips), avec hydratation sélective uniquement sur les composants interactifs (globe, mega-menu, search, météo). Zéro JS sur la grande majorité du site — le SEO garde toute sa priorité.

02
Content Collections Zod comme source de vérité

Plus de 23 500 fichiers markdown à frontmatter strictement validé alimentent tout le routing (city / country / continent / duration / guide / persona / neighborhood / article / food / roadtrip) sans DB ni CMS. Génération reproductible, déploiement Cloudflare Pages trivial.

03
Cobe pour le globe, Leaflet en lazy-load

Cobe pèse ~19 KB canvas-based au lieu d'importer Three.js. Et Leaflet (~150 KB) n'est chargé que sur les routes guide qui en ont besoin — jamais sur la home, jamais sur les pages d'agrégation.

Le challenge non-trivial

L'industrialisation du contenu à échelle SEO

Produire 2 997 city guides cohérents (3 durées × 333 villes × 5 continents × 3 langues EN/FR/ES), chacun avec stops géocodés (lat / lng), tags normalisés, excerpts < 90 caractères, continent UPPERCASE. Plus 17 445 persona guides, 2 580 neighborhoods, 93 articles, 399 roadtrips, 48 food guides — 23 562 documents total. Faire tenir tout ça dans 17 templates de routes dynamiques + des pages d'agrégation par ville / pays / continent / persona, sans exploser le temps de build ni la cohérence du schéma. Le vrai boss n'est ni le globe ni la perf — c'est la discipline schéma × volume × locales.

Leçon retenue

L'architecture islands permet d'acheter l'interactivité à l'unité : Leaflet (150 KB) ne touche jamais la home, et le site reste essentiellement zero-JS là où ça compte pour le SEO.

Fonctionnalités

🌍
Globe 3D interactif

Navigation WebGL avec marqueurs par ville

🧠
Recherche sémantique IA

Cloudflare Vectorize + Workers AI à la volée

🗺️
Cartes Leaflet par guide

Chaque étape géolocalisée, marqueurs numérotés

🌤️
Météo temps réel

API proxy + cache Cloudflare KV

💸
Monétisation Travelpayouts

Widget vols en guide, consent-gated

🛡️
RGPD + PostHog

Consent cookies + analytics reverse-proxy

Stack technique

Framework
Astro 6PreactTypeScript
UI
Tailwind CSS 4GlassmorphismCobeLeaflet
Edge / AI
Cloudflare PagesWorkers AIVectorizeKV
Content
Content CollectionsZodFuse.js
Growth
PostHogTravelpayoutsJSON-LDSitemap