KCity. Stack und Spezifikation.

Ein ruhiger Abfahrtsmonitor und Fahrplaner für den Karlsruher Verkehrsverbund: die nächste Bahn, ohne Umweg über eine App, die erst etwas von dir will. Unabhängig, nicht mit dem KVV verbunden.

In Entwicklung

Stand: Oktober 2026

Der Weg einer Abfahrt

Haltestelle

Web · Deutsch und Englisch

KCity-API

Fastify · Zwischenspeicher

Auskunft

EFA oder TRIAS

Verkehrsverbund

offene Schnittstellen

Auf einen Blick

Die Eckwerte von KCity, belegt durch den Code.

  • Alle 20 Sekunden

    Die Tafel einer Haltestelle kommt als laufender Strom, ohne Neuladen

    Abfahrtstafel

  • Ohne Konto

    Abfahrten, Verbindungen, Linien und Störungen ohne Anmeldung und ohne Tracking

    Öffentliche Schnittstelle

  • Offene Daten

    Fahrplandaten des KVV unter CC0, Abfahrten aus der offenen Auskunft

    Datenanbindung

Von der Suche zur Abfahrt

Was zwischen Haltestelle und Tafel passiert.

  1. Haltestelle suchen

    Die Suche geht über die Haltestellen aus dem Fahrplandatensatz des Verbunds.

  2. Tafel öffnen

    Die Abfahrten kommen als laufender Strom, mit Verspätung, Ausfall und Gleis.

  3. Verbindung planen

    Von A nach B mit Umstiegen und Fußwegen. Ein Fußweg ohne Straßenführung heißt Luftlinie.

  4. Linien ansehen

    Jede Linie mit ihren Halten in Reihenfolge, so wie der Datensatz sie kennt.

  5. Störungen lesen

    Meldungen aus den zuletzt angezeigten Abfahrten, gesammelt an einer Stelle.

  6. Merken

    Wer ein Konto hat, speichert Favoriten und Voreinstellungen. Für den Fahrplan braucht es keins.

Der Stack

Sechs Teile, ohne Analyse und ohne Werbung.

  • Web

    Next.js 16 mit React 19 und TanStack Query, zweisprachig, hell und dunkel.

  • API

    Fastify 5 auf Bun, die Verträge als Zod-Schemas, die Web und API teilen. Antworten der Auskunft hält Redis 20 Sekunden bis eine Stunde vor.

  • Auskunft

    Drei Anbindungen hinter einer Schnittstelle: die offene EFA des KVV, TRIAS nach VDV 431-2 und Testdaten.

  • Fahrplandaten

    Haltestellen und Linien aus dem GTFS-Datensatz des Verbunds unter CC0, in PostgreSQL mit Drizzle.

  • Konten

    Better Auth mit Passkey und Anmeldelink, nur für Favoriten und Voreinstellungen. Die Registrierung ist geschlossen, Zugang gibt es per Einladung.

  • Datenschutz

    Ohne Konto kein Cookie außer der gewählten Sprache. Keine Analyse, keine Werbung.

Was KCity nicht kann

Was fehlt, steht hier, damit es niemand für ein Versehen hält.

Keine Live-Karte
KCity zeigt Abfahrten und Verbindungen, aber nicht, wo eine Bahn gerade fährt.
Ein Fußweg ohne Straßenführung ist eine Luftlinie
Ohne Fußweg-Router gibt es keine Straßengeometrie. Die Strecke heißt dann Luftlinie und ist kürzer als der echte Weg.
Kein Fahrkartenverkauf
Es kommt kein Beförderungsvertrag zustande; Fahrkarten gibt es beim Verkehrsverbund.
Nicht jede Haltestelle zeigt Abfahrten
Ohne hinterlegte Kennung des Auskunftssystems bleibt die Tafel leer, denn eine geratene Kennung könnte die Abfahrten einer anderen Haltestelle zeigen.
Nicht mit dem KVV verbunden
KCity nutzt die offen erreichbaren Schnittstellen des Verbunds. Verbindlich ist immer die Auskunft des KVV.

Die nächste Bahn.

Ohne Konto.

Ohne Umweg.

Spezifikation

Daten

Fahrplandaten
GTFS-Datensatz des KVV unter CC0
Abfahrten
offene EFA-Auskunft des Verbunds, ohne Schlüssel
TRIAS
nach VDV 431-2, mit Zugang des Verbunds
Testdaten
Standard in der Entwicklung

Abfahrten

Aktualisierung
alle 20 Sekunden als Server-Sent Events
Angaben
Verspätung, Ausfall, Gleis, stufenfreier Zugang zur Haltestelle
Störungen
aus den Meldungen an den Abfahrten
Ohne Kennung
keine Tafel statt einer falschen

Verbindungen

Strecke
von A nach B mit Umstiegen
Fußwege
über Mapbox oder OSRM, sonst als Luftlinie
Fußweg-Router
vom Server aus, ohne deine IP-Adresse

Linien

Übersicht
nach Verkehrsmittel gruppiert
Verlauf
Kette der Haltestellen, ohne Trassengeometrie
Farben
aus dem Fahrplandatensatz

Konto

Nötig für
Favoriten und Voreinstellungen
Registrierung
standardmäßig geschlossen, Zugang per Einladung
Anmeldung
Passwort, Passkey, Anmeldelink oder Code per E-Mail
Eigene Daten
Export als JSON und Löschung

Datenschutz

Cookies
ohne Konto keins, höchstens die gewählte Sprache
Analyse
keine
Schriften
vom eigenen Server

Plattformen

Web
Deutsch und Englisch, hell und dunkel
App für iOS und Android
mit ExpoGeplant

Stand

Fertig
Abfahrten, Verbindungen, Linien, Störungen, Konten
Offen
Betrieb mit den Echtdaten des Verbunds
Geplant
App für iOS und Android

Häufige Fragen zu KCity

Kurz beantwortet, die Details stehen in der Spezifikation.

Ebenfalls auf Nouvex

Die übrigen Seiten, kurz erklärt.

  • Nouvex Mail

    Stack und Spezifikation des quelloffenen Mailclients für Web, iPhone, iPad und Mac.

  • Team

    Wer Nouvex entwirft und baut.