Technologie
Was 2013 als Hobbyprojekt begann, ist über die Jahre zu einer Plattform aus mehreren Web-Anwendungen, Backend-Services und einer mobilen App gewachsen. Dieser Text gibt einen Einblick in die Technologie hinter PlanYourTrip.
Das große Bild
PlanYourTrip ist ein Monorepo mit sechs Web-Anwendungen, die als Micro-Frontends auf eigenen Subdomains laufen. Dazu kommen drei Backend-APIs, vier Datenbanksysteme und eine mobile App. Alle Anwendungen teilen sich eine gemeinsame Komponentenbibliothek, API-Clients und Authentifizierung.
Frontend
Die Web-Anwendungen basieren auf Next.js, React und TypeScript, gestylt mit Tailwind CSS. Karten werden mit Mapbox GL gerendert, die Internationalisierung (8 Sprachen) läuft über next-intl.
Der Planner ist die komplexeste Anwendung: Rundreisen werden auf einer interaktiven Karte geplant, Etappen per Drag & Drop sortiert, Unterkünfte und Transport direkt gesucht. State Management übernimmt Jotai — leichtgewichtig und atomar, ideal für eine Anwendung mit vielen unabhängigen UI-Zuständen.
Discover liefert Inspiration: über 400 Beispielrundreisen, Städte-Guides und KI-generierte Reiseführer. Die Travel Map lässt User ihre bereisten Länder tracken und Länderpunkte sammeln.
Mobile App
Die mobile App nutzt React Native mit Expo und teilt sich die API-Client-Bibliothek mit den Web-Anwendungen. Das Styling läuft über NativeWind (Tailwind CSS für React Native), Datenabfragen über TanStack Query.
Eigenes Routing
Eines der technisch aufwändigsten Features: PlanYourTrip berechnet multimodale Reiserouten mit einem eigenen Routing-Service — statt auf teure kommerzielle APIs zu setzen. Der Service ist in TypeScript mit dem Hono-Framework geschrieben und nutzt eine PostgreSQL-Datenbank mit PostGIS.
Die Datenbasis kombiniert mehrere offene Quellen:
- 265+ GTFS-Feeds für Zug- und Busfahrpläne weltweit
- OpenFlights mit 26.000+ Flugverbindungen
- Geonames mit 10.000+ Städten
- OpenRouteService für Autorouten
Die Routing-Logik nutzt rekursive SQL-Queries (CTEs), um Verbindungen über verschiedene Verkehrsmittel und Zwischenstopps zu berechnen — Zug, Bus, Flug, Fähre, Auto. Das Ergebnis: echtes multimodales Routing, komplett auf offenen Daten aufgebaut.
Trips API
Die zentrale Geschäftslogik — Trips, User, kollaborative Planung — läuft in einer Kotlin/Spring Boot-API mit MongoDB als Datenbank. Queries werden mit QueryDSL gebaut. Die API ist der älteste und stabilste Teil des Systems.
Content Management
Redaktionelle Inhalte wie Städte-Beschreibungen, Regionen, Aktivitäten und Insider-Tipps werden in einem Strapi-CMS auf PostgreSQL verwaltet. Über Strapis REST-API rufen alle Frontends diese Inhalte ab — mehrsprachig, mit Lokalisierungen in 8 Sprachen.
KI-Assistent
Im Planner steckt ein KI-Reiseassistent, der bei der Routenplanung hilft: Ziele vorschlagen, Etappen optimieren, Reiseinformationen liefern. Die LLM-Anbindung läuft über AWS Bedrock, integriert über das Vercel AI SDK. Monitoring und Tracing der Anfragen übernimmt Langfuse mit OpenTelemetry.
KI-Modelle kommen auch hinter den Kulissen zum Einsatz: Generierung von Städte-Beschreibungen und Reiseführern, Übersetzungen, Kategorisierung von Rundreisen und semantische Suche über Text-Embeddings.
Infrastruktur
Die Frontends laufen auf Vercel, jede Anwendung als eigenständiges Projekt. Die Backend-Services laufen auf AWS — Lambda für serverlose APIs, ECS für Container-Services, API Gateway als Eingangstor. Die gesamte Infrastruktur wird mit Terraform als Code verwaltet.
Vier Datenbanksysteme kommen zum Einsatz, jedes für seinen Zweck gewählt:
- MongoDB — Trips und User-Daten (dokumentenorientiert, flexibles Schema)
- PostgreSQL mit PostGIS — CMS-Inhalte und Routing-Daten (relational, geospatial)
- Neo4j — Städte- und Regionsbeziehungen (Graph-Queries)
- Supabase — Echtzeit-Features und Chat im Planner
Authentifizierung läuft über Logto (OAuth/OIDC) mit NextAuth als Session-Layer.
Ein Entwickler
PlanYourTrip wird vollständig von einer Person entwickelt und betrieben — vom Kotlin-Backend über die React-Frontends bis zur Terraform-Infrastruktur. Sechs Web-Anwendungen, eine Mobile App, drei Backend-APIs, vier Datenbanken, 265+ Routing-Feeds, acht Sprachen, 28.000+ User.