# fediversity product specification ## stack ### user-facing - [fediverse](https://www.figma.com/proto/AZbFAac2Xjxs3q1H3orXzO/Fedi-Design-system?page-id=97%3A1682&node-id=97-2257) - ... - prioritize efforts taking in mind - added value to operator autonomy - strategic relevance to counter-balance big tech - demand - nix package/service maturity - may involve relation with application devs to: - [upstream](https://git.fediversity.eu/Fediversity/Fediversity/issues/127#issuecomment-5669) nix package - ensure architecture takes immutable build/storage in mind ### under the hood - nixos - [opentofu](https://opentofu.org/) - passes relevant info on to nixos config wrapper - VM hypervisor: [proxmox](https://proxmox.com/) - storage: [garage](https://garagehq.deuxfleurs.fr/) - backups / data portability: [borgmatic](https://github.com/borgmatic-collective/borgmatic)? - data interoperability: [json-schema](https://json-schema.org/) ## component architecture - orchestration module - application service modules (nixos): templates providing sane defaults and [unified interface](https://nlnet.nl/project/SelfHostBlocks/) - deployment module (opentofu) - deployment UIs - [reference imlementation](https://git.fediversity.eu/Fediversity/Fediversity) - hosting panel: [fediversity integration](https://www.figma.com/proto/AZbFAac2Xjxs3q1H3orXzO/Fedi-Design-system?page-id=97%3A1682&node-id=97-2284) TODO - [front](https://git.fediversity.eu/Fediversity/protagio.nl-frontend) - back - [existing](https://git.fediversity.eu/Fediversity/myprotagio-api) - rewrite? - allow for alternate setups - e.g. client doing orchestration - [infra](https://git.fediversity.eu/Fediversity/meta/media/branch/main/architecture-docs/architecture.png) ### feature-specific architectural notes - [decouple version](https://git.fediversity.eu/Fediversity/Fediversity/issues/304) - [validate component input](https://git.fediversity.eu/Fediversity/Fediversity/issues/195) - [migrate to different host](https://git.fediversity.eu/Fediversity/Fediversity/issues/100) (+ sub-tickets) - [breaking changes](https://git.fediversity.eu/Fediversity/Fediversity/issues/214)