We publish what we build, and send the fixes back.
District AI runs on open-source software, and nine things we built are open source too: the District AI apps for iPhone, iPad, Mac, Android, Windows and Linux, the Swift core the Apple apps share, the Rust core the Windows and Linux apps share, and two tools, bridgewatch and District Scheduler. The District AI service itself is not.
On this page
Projects
Nine projects, each in its own repository under Apache-2.0: the five District AI apps, the two cores they share and two tools. Each has a page here on what it does and why we built it.
Phones and tablets
District AI for iOS
The native District AI app for iPhone and iPad, as one universal app, on the App Store.
- Licence
- Apache-2.0
- Built with
- Swift, SwiftUI
District AI for Android
The native District AI app for Android, on Google Play, calling through Android's own Telecom framework.
- Licence
- Apache-2.0
- Built with
- Kotlin, Jetpack Compose
More about District AI for Android
Desktop
District AI for Mac
The native District AI app for the Mac, in SwiftUI, on the Mac App Store and as a signed download that keeps itself up to date.
District AI for Windows
The native District AI app for Windows, in C# and WinUI 3 over the shared Rust core, on the Microsoft Store.
- Licence
- Apache-2.0
- Built with
- C#, WinUI 3, Rust core
More about District AI for Windows
District AI on the Microsoft Store
District AI for Linux
The native District AI app for the Linux desktop, in GTK 4 and libadwaita, released as a .deb and a Flatpak.
- Licence
- Apache-2.0
- Built with
- Rust, GTK 4, libadwaita
More about District AI for Linux
Shared cores
District Core for Swift
The Swift package the iPhone, iPad and Mac apps share: their models, sign-in, networking, data and call logic.
- Licence
- Apache-2.0
- Built with
- Swift, Swift Package Manager
More about District Core for Swift
District Core for Rust
The Rust crates the Linux and Windows apps share: their data types, sign-in, networking, live updates, app state and call engine.
- Licence
- Apache-2.0
- Built with
- Rust, Cargo
More about District Core for Rust
Tools
bridgewatch
A tray monitor for GitLab CI and GitHub Actions, for macOS and Linux, that says whether a push actually deployed.
- Licence
- Apache-2.0
- Built with
- Rust, Tauri 2, Svelte 5
District Scheduler
Our fork of Calnode, the scheduling engine behind the booking page every District AI plan includes.
- Licence
- Apache-2.0
- Built with
- Go, SvelteKit (PostgreSQL or SQLite)
What is open source, and what is not
What is open source
All nine projects, under Apache-2.0: you can read them, build them, change them and send your changes back. The District AI and Distronode names, logos and app icon are trademarks, so an app you build and distribute uses its own name, icon and identifier.
What is not
The District AI service the apps talk to. An app built from the source still needs a District AI account to sign in.
Without an account with us
Today the apps need a District AI account to sign in. We want them to work without an account with us too. We have not worked out what that looks like or whether it can work, and the answer depends on what people would use them with, so we are asking before we build anything.
What District AI runs on
Ten projects that do visible work on every call or every page, each run by us under the licence shown.
| Software | What it does here | Licence |
|---|---|---|
| LiveKit | Media server, SIP bridge and the agents framework the voice attendant is built on, on our own nodes in every region | Apache-2.0 |
| PostgreSQL 17 | Every workspace's database, one instance per region | PostgreSQL Licence |
| k3s | The Kubernetes distribution each of the four origins runs on, as a single node | Apache-2.0 |
| Caddy | TLS termination and routing in front of each origin | Apache-2.0 |
| Next.js and React | This website, the customer portal and the dashboard | MIT |
| Prisma | The database layer under the portal and dashboard | Apache-2.0 |
| Tailwind CSS | The dashboard's styling | MIT |
| Grafana Alloy | Ships metrics, logs and cluster events from all four clusters to our monitoring | Apache-2.0 |
| Silero VAD | Decides when a caller has started and stopped speaking | MIT |
| Calnode | The scheduling engine District Scheduler is forked from | Apache-2.0 |
Licences as each project publishes them. Redis is absent on purpose: we use it, and its current licence is not an open-source licence.
Why we publish
A telecommunications company built on frontier AI asks customers to trust where their calls are handled. That should be easy to check. All nine are the repositories we build from, and all nine keep their issues, changelogs and security policies in the open.
There is a plainer reason too. A fork with private patches has to be maintained by the one company that holds them. Sending a fix back means the next upstream release already has it, for us and for everyone else.
Contributing and security
Issues and pull requests are welcome on all nine repositories, on GitHub.
- Issues and pull requests
- Each repository's contributing guide (CONTRIBUTING.md) says how to build and test it, and what a pull request needs before it is reviewed.
- Security reports
- Report a vulnerability privately, through GitHub's private vulnerability reporting on the repository concerned, as its SECURITY.md describes, and not in a public issue. If you cannot use GitHub, every project also takes reports at the open-source contact below.
- Conduct
- Every repository carries a code of conduct, the Contributor Covenant.
- Open-source contact
- opensource@distronode.comFor conduct reports, and for a security report on any of the nine projects when GitHub's private reporting cannot be used.
Resources
Each repository's contributing guide, security policy and changelog, on the branch we ship from.
Distronode on GitHub, where all nine repositories live, and on GitLab:

