# Nøbody — Key Facts

Bullet-point facts for citation. All technical claims are verifiable in the public source code at https://codeberg.org/Nobodyapp/Nobody.

---

## Project basics

- **Name:** Nøbody (official styling: `N` + `ø` + `body`)
- **Category:** Anonymous, zero-knowledge social network
- **Initial release:** June 2025 (v1.0)
- **Current version:** v1.6.0 (April 2026)
- **License:** AGPL-3.0 (all code, server + client)
- **Website:** https://nobodyapp.net
- **Source code:** https://codeberg.org/Nobodyapp/Nobody
- **Status page:** https://nobodyapp.net/status

---

## Architecture

- **End-to-end encryption** on every message, post, story, and media file
- **Zero-knowledge server:** the backend stores only ciphertext and routing metadata; cannot decrypt any content
- **No authentication server:** identities are local Ed25519 keypairs; no username/password database exists
- **Single backend service:** Python FastAPI + PostgreSQL, ~10k lines, fully open source
- **Client:** Flutter 3.38, ~60 screens, single codebase for Android (iOS in progress)
- **73 unit tests** cover the cryptographic layer, session handling, and protocol correctness

---

## Cryptography

- **Key agreement:** X25519 (Curve25519 ECDH)
- **Symmetric encryption:** AES-256-GCM (authenticated encryption)
- **Key derivation:** HKDF-SHA256
- **Identity:** Ed25519 signing keypair, generated on-device at first run
- **Padding:** 256-byte boundary padding on every ciphertext (anti–traffic-analysis)
- **Forward secrecy:** per-message ephemeral keys for direct chats
- **No key escrow:** the server never receives, derives, or stores any private key material

---

## Privacy features

- **No IP logging:** the FastAPI service runs with access-log IP fields redacted at the application layer
- **No phone number, no email, no real name** required to sign up
- **Automatic face blur:** on-device ML model detects and blurs faces and license plates before upload
- **EXIF metadata stripped** from every uploaded image (GPS, camera serial, timestamp, etc.)
- **FLAG_SECURE enforced** on Android for private screens — OS-level prevention of screenshots and screen recording
- **Tor support:** the app can route all traffic through a local Tor daemon; the backend is reachable via an onion address
- **Ghost mode:** browse stories, posts, and profiles without leaving read receipts
- **Ephemeral messages:** auto-delete timers from 10 seconds to 7 days
- **Full account deletion:** no soft-delete, no backup copy retained; keys and content are purged irreversibly

---

## Platform availability

- **Android (live):** Google Play, own F-Droid repo (fdroid.nobodyapp.net), main F-Droid repo, direct APK
- **iOS:** in development; no ETA committed publicly
- **Minimum Android version:** API 23 (Android 6.0)
- **Package ID:** `net.nobodyapp.app`
- **Push notifications:** UnifiedPush (default, Google-free) or FCM (optional)

---

## Languages

The app is fully translated into 8 languages:

1. English (en)
2. French (fr) — primary development language
3. German (de)
4. Spanish (es)
5. Italian (it)
6. Portuguese (pt)
7. Turkish (tr)
8. Arabic (ar) — with full RTL layout support

---

## Features (non-exhaustive)

- Anonymous confessions (text + media, time-limited threads)
- Daily photo challenges with prompt rotation
- Friend circles (granular per-circle privacy)
- Friend-of-friend discovery with opt-in
- 24-hour stories
- Voice messages (encrypted)
- Ghost mode (read without receipts)
- Multi-account support on a single install
- Bookmarks and collections
- In-app music picker (local library only)
- Block, mute, report tooling
- Full data export (JSON + media archive)

---

## Team

- **Solo developer:** Maksim Trikic
- **Base:** Paris, France (UTC+1)
- **Languages:** French (native), English (fluent)
- **Background:** Independent software engineer

---

## Tech stack

- **Client:** Flutter 3.38 / Dart
- **State:** Riverpod
- **Backend:** Python 3.11, FastAPI, SQLAlchemy
- **Database:** PostgreSQL 15
- **Build:** Gradle (Android), Xcode (iOS), GitHub Actions-style CI via Codeberg
- **Translations:** Flutter gen-l10n + ICU ARB files
- **Deployment:** single VPS, Docker Compose, automated backups (encrypted at rest)

---

## Funding model

- **No ads, no trackers, no analytics, no paid tier**
- Donations via Liberapay, GitHub Sponsors, Bitcoin, Monero
- Current hosting cost: under 50 EUR / month
- No investors, no VC, no corporate backing

---

## Compliance

- **GDPR:** data minimization by design; no PII is collected, so most obligations are moot
- **DSA (EU Digital Services Act):** minor platform, abuse handling via in-app reports and server-side rate limiting
- **Age:** 13+ self-declared (not verifiable without PII, which is refused by design)

---

## Launch timeline

- **June 2025:** v1.0 initial release
- **October 2025:** v1.2 (stories, engagement features)
- **December 2025:** v2.0 (E2E encryption rollout, ephemeral messages, AI anonymization)
- **February 2026:** v1.5 (8 languages, full account deletion, in-app music)
- **April 2026:** v1.6 (FOSS migration: UnifiedPush, Tor, relicense to AGPL-3.0)

*See `CHANGELOG.md` for the full version history.*
