CamperRoute
Trip planner for camper vans with a PWA trip mode and an automatic editorial blog. Three modes — plan, drive, recall — over a single data model.
CamperRoute is a planner for people who travel in motorised homes. A camper day isn’t a tourist day, and the planner knows it: corridor-driven POIs, fuel data filtered by your real vehicle, and a trip mode that detects arrivals without asking you to check in.
En xifres
- Tres modes — planificar (al sofà), conduir (a la cabina), recordar (a casa). Cada un té UI pròpia, no és un toggle.
- Geofence amb radi 150–300 m i finestra de permanència de 5 minuts. Arribades detectades sense check-in, sense tracking continu.
- Combustible europeu — MITECO diari per Espanya + OSM Overpass per a la resta. Filtrat pel combustible que el teu vehicle realment usa.
- Cache compartit país/regió per als POIs descoberts amb IA. Cost LLM una vegada per país, mai per usuari.
- PWA offline un cop en ruta. Sync quan torna cobertura, no a cada pas.
- Sentry EU + scrubbing agressiu — sense PII, sense coordenades GPS als errors.
La família
CamperRoute no és un sol procés. Són tres repositoris que comparteixen un contracte OpenAPI però es despleguen per separat:
- camperroute-api — backend FastAPI + Postgres + Celery.
- camperroute-app — frontend React + Vite + PWA.
- camperroute-meta — privat, quadern de bitàcola BMAD (briefs, epics, retros, ADRs).
Què no és
No és un GPS — fa handoff al teu navegador habitual (Waze, Google Maps). No és una xarxa social — la teva ruta és teva, es comparteix amb enllaç signat que caduca. No és un planificador genèric — la unitat és el dia amb camper. No és un servei al núvol obligatori — el mode viatge funciona en PWA offline. No és vigilància — Sentry no rep mai coordenades.
Aprofundir
Els deep-dives — per què tres modes i no un, per què planificar i conduir són dos cervells diferents, com els POIs apareixen sols al corredor, com es detecta una arribada sense check-in, per què el codi viu en tres repos, com s’observa sense espiar — viuen com a sèrie al blog. Cada article enllaça amb l’anterior i el següent dins de la sèrie.
Full series
Part of CamperRoute 01/08
What CamperRoute is
I set out to organise a camper trip. I ended up designing a product with three modes. This post explains why three were necessary.
Part of CamperRoute 02/08
Planning and driving are two different brains
A dense screen that works at home with coffee is unreadable in the cab with the sun overhead. The temptation was a toggle. The temptation was wrong.
Part of CamperRoute 03/08
POIs that surface on their own
An empty planner is intimidating. A planner that already populates the corridor — with everything you don't like removable — is a conversation.
Part of CamperRoute 04/08
Geofence: knowing you arrived without you saying so
A check-in is the silliest piece of friction in software. Always-on GPS is surveillance. In between lives the geofence with a dwell window.
Part of CamperRoute 05/08
Fuel: real data over the map
A pretty map isn't a product. A map that saves you twelve euros by filling up 4 km further down is. The trick lives in the combination prices + corridor + camper.
Part of CamperRoute 06/08
Three repos, one promise
Three modes in the product; three repos in the code. Not a coincidence. The same instinct applied twice: separate the things that move at different speeds.
Part of CamperRoute 07/08
Observing without seeing the user
I need to know what broke. I don't need to know whose screen broke. That distinction defines the entire observability layer.
Part of CamperRoute 08/08
The trip becomes a blog
The blog used to be flat text you read once and forgot. The recall mode turns it into the trip's artifact: editable blocks, your own photos, and a PDF you can take with you.