Curvia
Maps & navigation
100% self-hosted maps & navigation for Spain: own vector cartography, Valhalla routing, real-time DGT traffic and an Android app with Android Auto.

About the project
Curvia targets the gap Google Maps leaves in Spain: official data (IGN, DGT, CartoCiudad) merged with OpenStreetMap. The whole stack is self-hosted: vector tiles generated with Planetiler (1.2 GB for all of Spain), Valhalla routing, an in-memory geocoder with 2.7 million places and DGT incidents via DATEX II at one-minute latency. The Android app (Capacitor) adds voice guidance, Android Auto and OTA updates without going through the store.
Tech stack
Key features
- Own vector cartography for all of Spain (PMTiles, OpenMapTiles schema) served from the own server
- Self-hosted routing with Valhalla and vehicle profiles, zero paid APIs
- Real-time DGT incidents, roadworks and closures (DATEX II v3.7, refreshed every minute)
- Own geocoder with 2.7M places (OSM + Overture) plus official CartoCiudad addresses
- Official DGT speed limits (TN-ITS) regenerated twice a week
- Android app with Android Auto, voice guidance and self-managed OTA updates
- Live layers: speed cameras, fuel prices, low-emission zones and wildfires
- Read-only containers with cap_drop ALL, strict CSP and no exposed database ports
Technical challenges
Generating and serving vector tiles for all of Spain without Google or Mapbox
DGT DATEX II v3.7 poller normalizing incidents at one-minute latency
In-memory geocoder with 2.7M entries and fuzzy search over a tuned PostgreSQL
Want something similar for your business?
Get a quote