--- title: "Project architecture" linkTitle: "Architecture" weight: 5 date: 2022-01-09 description: > How the project is organized and how it works. --- Yes, you could use kubernetes. But why when immutability is ensured by NixOS? **User app:** [Flutter](https://flutter.dev/)/[Dart](https://dart.dev/) was chosen because of the speed and smoothness of the UI and cross-platform. **Server side (backend):** [NixOS](https://nixos.org/) + [Python](https://www.python.org/). NixOS was chosen because of its reproducibility, python because of its versatility and popularity. # Service providers: **We do not get paid by any service providers!** We are not affiliated with them in any way. We chose them purely for professional reasons. But we do not exclude partnership in the future. ### Hosting SelfPrivacy supports two hosting providers: [Hetzer](https://www.hetzner.com/) and [DigitalOcean](https://digitalocean.com) Both were chosen because of low price and acceptable level of service, quality REST API. Candidates: - Own personal iron server. **Our main priority right now**; - A service provider that will provide an API to deploy an iron server. Outside [FVEY](https://en.wikipedia.org/wiki/Five_Eyes); - OVH - Scaleway There's also free [Oracle Cloud](https://docs.oracle.com/en-us/iaas/Content/FreeTier/freetier_topic-Always_Free_Resources.htm), but where you don't pay, you're usually a commodity. ### DNS For the choice of [Cloudflare](https://cloudflare.com), [deSEC](https://desec.io/), or [DigitalOcean DNS](https://www.digitalocean.com/). [deSEC](https://desec.io/) is a more private option and is recommended by default. [Cloudflare](https://cloudflare.com) and [DigitalOcean DNS](https://www.digitalocean.com) likely collect data in proxy traffic mode, otherwise it's hard to explain why they would offer such services for free. **In our case, we don't proxy anything and use them only as DNS servers.** ### Backup repository We use [Backblaze](https://www.backblaze.com/). The first 20GB are free and significantly cheaper than AWS. [Backblaze](https://www.backblaze.com/) publishes its hardware developments in open source. It also shares very useful statistics on disk failures, based on which one can choose the most reliable and tested option. In the future, we might replace it with a self-hosted solution or a peer-to-peer one. **Currently, this is not a top priority since the data is encrypted, and the service provider only sees the IP address of your server, not the device with the application.**