Route Inventory

Site pages (Astro, prerendered)

Route Source
/404 src/pages/404.astro
/creators/ src/pages/creators/index.astro
/culture/:slug src/pages/culture/[slug].astro
/culture/ src/pages/culture/index.astro
/ src/pages/index.astro
/quotes/ src/pages/quotes/index.astro
/spots/:slug src/pages/spots/[slug].astro
/spots/ src/pages/spots/index.astro
/surfers/:slug src/pages/surfers/[slug].astro
/surfers/ src/pages/surfers/index.astro

Dynamic detail URLs (/spots/:slug, /surfers/:slug) are rewritten by the worker to the prerendered __detail shells, which hydrate from the API.

API endpoints (worker)

Source of truth: docs/api/openapi.yaml · reference: docs/api/API.md · live: /api/docs.

Path Summary
GET /api/spots Paginated, filterable surf spot list
GET /api/spots/map Lightweight spot markers for the Leaflet map
GET /api/spots/meta Facet counts for the spot filter sidebar
GET /api/spots/{slug} Spot detail with images, tags, and linked surfers
GET /api/surfers Paginated, filterable surfer list
GET /api/surfers/meta Facet counts for the surfer filter sidebar
GET /api/surfers/{slug} Surfer detail with images and linked spots
GET /api/quotes Quotes wall collection
GET /api/quotes/random Quote of the Day
GET /api/clips Video clip inventory
GET /api/instagram/feed Curated Instagram feed
GET /api/instagram/accounts Curated account scores with follower history
GET /api/openapi.json This OpenAPI specification as JSON
GET /api/docs Human-readable API reference

Background jobs