About locali¶
locali is a private side project — born from a concrete problem and a clear conviction: local communities deserve their own, independent digital infrastructure. Digital self-determination is not a technical hobby — it is a prerequisite for lived local democracy.
Why this project¶
Local communication in Germany is fragmented. Municipalities use their website, clubs post on Facebook, initiatives send newsletters — and the resident who simply wants to know what's happening in their community has to monitor dozens of channels.
The existing platforms are not the problem — they work. But they were not built for local communities. They were built for reach, advertising, and growth. And they are run by companies that are neither based in Europe nor have local democracy as a goal.
This is not an abstract problem: whoever controls the communication infrastructure of a community has influence over what is visible — and what is not. Local clubs, initiatives, and municipalities that organise their public presence through external platforms make themselves dependent on algorithms, terms of service, and decisions made elsewhere.
locali is an attempt to change that: a platform built explicitly for local communities — self-hosted, designed for data-sovereign operation, and without dependency on a central platform. Digital independence as the foundation for local agency.
Stance¶
Local public discourse is a prerequisite for democracy. Not in the abstract — but very concretely: a community that cannot inform itself cannot make decisions. A community that communicates only through platforms that monetise attention is structurally at a disadvantage.
Commercial platforms are optimised for engagement. Engagement rewards outrage, polarisation, and oversimplification — not because operators explicitly want that, but because the incentive structure rewards it. Disinformation, escalation, and hostility emerge more easily where attention is the central currency.
locali is built differently: no commercial engagement algorithm that allocates reach, no feed optimised for outrage. Someone who writes calmly and factually should not be put at a structural disadvantage. That is an architectural decision — and a stance.
Responsibility for the quality of discourse lies with the community and its operators — not with the platform. But the platform is built so that it does not work against them.
Who is behind it¶
locali is a solo project. No company, no team, no investor. Built in spare time — out of genuine interest in the problem and a desire to build something useful.
That also means: no roadmap guarantees, no SLA, no support contract. What there is: direct communication, genuine interest in feedback, and a willingness to develop the product together with early operators.
That is also why locali is currently best suited for technical evaluation, pilot projects, and early feedback — not for mandatory production communication.
Open source — planned¶
The source code is not yet public. A release as open source is planned once the software reaches a stable state and a clean setup guide exists.
The goal: a project that every municipality, club, and initiative can run themselves — without depending on a central service.
Tech stack at a glance¶
| Layer | Technology |
|---|---|
| Frontend | Angular 19, Angular Material, NgRx Signal Store |
| Backend | ASP.NET Core 10, Clean Architecture, Domain-driven Design |
| Database | PostgreSQL 16, EF Core, pgvector |
| Auth | Keycloak (OIDC / OAuth 2) |
| AI | Ollama (local) + OpenAI-compatible cloud providers |
| Build | Nx monorepo, Docker Compose |
The full architecture documentation — ADRs, bounded contexts, ingestion pipeline, Semantic Intelligence Layer — lives in the repository on GitHub and is maintained there.
Hosting and infrastructure¶
The current test environment runs on netcup in Karlsruhe — a German hosting provider. No American hyperscaler, no data outside the EU.
AI integration¶
For AI-assisted features (e.g. automatic tagging, semantic routing, content search), locali supports two approaches:
- Ollama (default, local): AI models run directly on your own server — fully local AI processing, no content or queries are sent to external services for analysis. This is the recommended configuration for anyone who takes data sovereignty seriously. Requires more capable hardware.
- External cloud providers (opt-in): Operators who want to use cloud models configure this explicitly — and take on the associated data-protection responsibility themselves. Currently supported providers:
| Provider | Origin | Note |
|---|---|---|
| Mistral AI | France (EU) | Option with EU data processing; legal review is still needed |
| Azure OpenAI | EU regions available | Own Azure resource; can help with data-residency requirements |
| OpenAI | USA | Data processed by the provider in the USA |
| Google AI (Gemini) | USA | Data processed by the provider in the USA |
| Cohere | Canada | Canada has an EU adequacy decision; not an EU provider |
The architecture is open for additional providers. Cloud configuration is deliberately not the default — it must be actively enabled.
Open source components used¶
locali would not be possible without a strong foundation of open-source software. Thank you to all communities and maintainers of these projects:
Frontend¶
| Project | Use | Licence |
|---|---|---|
| Angular | Web framework | MIT |
| Angular Material | UI components (Material Design 3) | MIT |
| NgRx Signals | Reactive state management | MIT |
| ngx-translate | Multilingual support | MIT |
Backend¶
| Project | Use | Licence |
|---|---|---|
| .NET / ASP.NET Core | Backend framework and API | MIT |
| Entity Framework Core | Database access and ORM | MIT |
| Mediator | Command/query pattern | MIT |
| ErrorOr | Error handling without exceptions | MIT |
Infrastructure¶
| Project | Use | Licence |
|---|---|---|
| PostgreSQL | Database | PostgreSQL |
| Keycloak | Identity and access management | Apache 2.0 |
| Traefik | Reverse proxy | MIT |
| Grafana | Monitoring dashboards | AGPL 3.0 |
| Prometheus | Metrics collection | Apache 2.0 |
| OpenTelemetry | Distributed tracing | Apache 2.0 |
| Ollama | Local AI models | MIT |
| Docling | PDF extraction for municipal bulletins | MIT |
Ideas, feedback, involvement¶
If something is missing, you have an idea, or you're simply interested in the project — get in touch. Contact: Imprint.