Skip to content

← Back to products

CamperRoute

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

code · que-es-camperroute-en.mdx

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.

  • #camperroute
  • #intro
  • #product
  • #ux
code · planificar-vs-conduir-en.mdx

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.

  • #camperroute
  • #ui
  • #ux
  • #state-machine
code · pois-que-apareixen-sols-en.mdx

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.

  • #camperroute
  • #ai
  • #llm
  • #poi
code · geofence-i-presencia-en.mdx

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.

  • #camperroute
  • #geofence
  • #pwa
  • #privacy
code · combustible-i-realitat-en.mdx

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.

  • #camperroute
  • #fuel
  • #data
  • #miteco
code · tres-repos-una-promesa-en.mdx

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.

  • #camperroute
  • #architecture
  • #repos
  • #bmad
code · observar-sense-veure-en.mdx

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.

  • #camperroute
  • #observability
  • #sentry
  • #privacy
code · el-viatge-es-fa-blog-en.mdx

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.

  • #camperroute
  • #blog
  • #editor
  • #media