Open-source civic infrastructure,
owned by the cities that run it.
One server inside the municipal building serves every cultural, sports and community institution the city funds. No licence fees. No vendor lock-in. All data stays in the city.
- One server
- every institution the city funds
- EU-hosted
- no citizen data leaving the city
- Open source
- municipality-owned, long-term
- 90 days
- from signed pilot to live deployment
Cities don't need five vendors for one capability — they need one server, shared.
A museum, a library, a sports centre and a theatre each buying their own platform means five contracts, five subscriptions, five data silos to reconcile later. Pooled onto one municipally-owned server, they get modern, self-hosted infrastructure the day it's switched on — and because they share it, their data already speaks one language. Nothing has to be integrated after the fact, because nothing was separated to begin with.
↳ Bought once. Owned locally. Shared by everyone the city funds.
All components are open source, hosted on municipal hardware inside the EU. No vendor that could switch the system off.
- §01 · FRONTEND
TanStack Start powers a static-built public site and a reactive admin UI where staff manage internal operations.
- §02 · SERVICES
API gateway, background workers, scheduled jobs. Gotenberg for PDF generation, Meilisearch for full-text search.
- §03 · DATABASE
Primary relational store on Postgres, accessed via Drizzle ORM. Daily encrypted backups.
- §04 · OBJECT STORAGE
S3-compatible object storage for files and media, erasure-coded across local drives.
- §05 · SYNC ENGINE
Zero. Real-time read-model sync between clients and DB.
- §06 · IDENTITY
Keycloak. SSO, role-based access, OIDC for staff & residents.
Published once. Readable across Europe.
Every event, public service, and report a municipality enters is also emitted as machine-readable RDF — DCAT-AP for catalogues, CPSV-AP for public services — at the API boundary. No triple store, no separate database, no extra step for staff: the standard formats are generated from the same Postgres rows that power the site.
A town's data federates upward on its own — into the national open-data portal, into data.europa.eu, into cross-border search — instead of staying trapped in one HTML page. Compliance with the Interoperable Europe Act direction becomes a byproduct of routine work, not a project nobody has time for.
Now that the architecture is modern, the same data lets us go one step further — and have AI draft the work that would otherwise never get done.
AI works for the worker, not in their place.
A civic worker writes once, in the language they think in. AI drafts what would otherwise not exist — translations into the city's other languages, accessibility descriptions, press summaries. The worker reads, edits, approves. Nothing is published without a click.
↳ AI is optional. Each deployment chooses where models run.

Already running in Kaunas.
Public events site, operator dashboard, analytics, custom institutional websites — all from the same single deployment, in production today.
Shared events site
Every event, every institution — one citizen-facing portal. Searchable by date, venue, language. Multilingual and accessible by default.

Operator dashboard
One window per institution. One entry, one place. Changes appear everywhere the moment they're saved.

Analytics & reporting
Attendance, reach, language mix. Measured from the platform itself — no third-party trackers, no extra licences.

Custom institutional websites
One full website per institution. Bespoke design, shared infrastructure. No separate vendor, no separate stack.

Let's start a pilot.
90 days to a working deployment, shaped to your institutions and handed over to your team. No licence. No lock-in.
- OBJECTIVE
- Working reference deployment
- DURATION
- ≤ 90 days
- STACK
- TanStack Start · Postgres · Zero · SeaweedFS · Keycloak · Gotenberg · Meilisearch · Dokploy
- HOSTING
- Municipality-owned hardware, EU
- HANDOVER
- Long-term, full source + docs
- LICENCE
- Open source