vtv: a transit platform pitched cold to a city.
A unified operations platform for Riga's municipal buses: a bilingual CMS for routes, stops and schedules, with an AI agent that advises while humans decide. Designed and built solo, presented at Riga City Hall in May 2026; the city's office is forwarding the documentation to Rīgas Satiksme (Riga's municipal transport operator).
The context
Riga's buses run on institutional memory and legacy tools. Transit suites from the big vendors are heavy, priced for capitals with bigger budgets, and designed for the procurement committee rather than the dispatcher. Nobody asked me to fix this. That is rather the point: the problem was unowned, the users were strangers, and the market was unproven. This project is what comfort with ambiguity looks like in practice.
The bet
A GTFS-native operations platform a municipal budget could actually buy, with AI positioned the only way a public operator can accept: the agent reads, summarises and advises; a named human decides and acts. The trust is built into the architecture rather than promised.
The design decisions
Bilingual from the first screen.
Latvian and English are not a settings toggle bolted on later; every label, error and document exists in both, because in a public institution language is politics as much as usability.
Roles shape the interface.
Four access levels, and the UI shows each person only the verbs they own. A viewer cannot see buttons that would be refused; an editor cannot quietly become an admin. The permission model is the information architecture.
The agent lives in a sidebar, not in charge.
It answers transit queries with read-only tools and drafts into the knowledge base, beside the work rather than between the person and the data. Advice is visible, decisions are human, and every write is attributable.
No vendor lock-in, by design.
The platform swaps between LLM providers with one environment variable, because a city cannot hang its operations on one supplier's pricing.
The door
The route to the room was a cold Facebook message about the idea. That led to a meeting at Riga City Hall in late May 2026, where I presented the working platform to Edvards Šlesers and colleagues; his office is forwarding the documentation to Rīgas Satiksme. The lesson I keep from it: a working product is the best deck, and nobody warm-introduces you into a category you invented for yourself.
What I learned
Designing for users you have never met, in a domain with hard external constraints like GTFS, forces the research to be real: ride the routes, read the specs, talk your way into the rooms. And institutions do not buy cleverness; they buy the feeling that the system will not embarrass them. Most of the design above is about manufacturing that feeling honestly.