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.