Nisteria.

Technologie

Nisteria ist eine Open-Source-getriebene Web-Anwendung. Diese Seite dokumentiert die verwendeten Bibliotheken inkl. Lizenz, damit Sie nachvollziehen können, welche Software Ihre Daten verarbeitet — und damit wir unseren Open-Source-Compliance-Verpflichtungen nachkommen.

1. Architektur-Überblick

Nisteria läuft als Single-Page-Web-Anwendung mit serverseitigem Rendering (SSR) auf Cloudflare-Workers-Edge in der EU, einer PostgreSQL-Datenbank bei Supabase (Frankfurt/Deutschland) und Browser-seitiger Ende-zu-Ende-Verschlüsselung für Direkt- und Gruppen-Chats.

  • Frontend: React 19 + TypeScript, gerendert via TanStack Start (SSR-Framework). Build mit Vite. Deployment auf Cloudflare Workers.
  • Backend: Supabase (PostgreSQL + Auth + Storage + Realtime + Edge Functions). Hosting in der EU-Region (Frankfurt).
  • Krypto-Stack: Olm/Megolm-Protokoll (Matrix-Foundation, abgeleitet von Signal) für Ende-zu-Ende-Verschlüsselung. PBKDF2 + AES-GCM-256 (Web Crypto API) für PIN-Backup. WebRTC + DTLS-SRTP für Sprach- und Video-Anrufe.
  • Storage privater Schlüssel: Browser-IndexedDB (privatkeys verlassen niemals das Endgerät). Public-Keys auf Supabase.

2. Frontend-Stack

  • React 19 — UI-Framework. Lizenz: MIT. Quelle: github.com/facebook/react
  • TypeScript — typisierte JavaScript-Variante. Lizenz: Apache 2.0. Quelle: github.com/microsoft/TypeScript
  • TanStack Start & Router — SSR-Meta-Framework + Type-Safe Routing. Lizenz: MIT. Quelle: github.com/TanStack/router
  • TanStack React-Query — Server-State-Management. Lizenz: MIT.
  • Vite 7 — Build-Tool + Dev-Server. Lizenz: MIT. Quelle: github.com/vitejs/vite
  • Tailwind CSS v4 — Utility-First-CSS-Framework. Lizenz: MIT.
  • shadcn/ui & Radix UI — barrierefreie UI-Komponenten (Dialog, Dropdown, Tooltip, Tabs, Switch etc.). Lizenz: MIT. Quelle: github.com/radix-ui/primitives
  • Lucide React — Icon-Bibliothek. Lizenz: ISC.
  • Framer Motion — Animations-Bibliothek. Lizenz: MIT.
  • react-hook-form + Zod — Formular-State + Validierung. Lizenz: MIT.
  • date-fns — Zeit-/Datums-Bibliothek. Lizenz: MIT.
  • idb — IndexedDB-Wrapper für lokale Schlüssel-Speicherung. Lizenz: ISC.
  • qrcode & emoji-picker-react — QR-Code-Generator (Multi-Device- Pairing) und Emoji-Auswahl. Lizenz: MIT.
  • recharts — Diagramm-Komponenten. Lizenz: MIT.
  • cmdk, sonner, vaul, embla-carousel — Command-Palette, Toast, Mobile- Drawer, Karussell. Lizenz: MIT.
  • dnd-kit — Drag-and-Drop. Lizenz: MIT.

3. Backend & Infrastruktur

  • Supabase — PostgreSQL-Datenbank, Authentifizierung, Storage, Realtime-Channels und Edge-Functions. Eigene Server-Software unter Apache 2.0. Hosting der Daten in Frankfurt/Deutschland (EU-Region). Anbieter: Supabase Inc. (US). Quelle: github.com/supabase/supabase
  • @supabase/supabase-js — JavaScript-Client. Lizenz: MIT.
  • PostgreSQL — relationale Datenbank. Lizenz: PostgreSQL License (BSD-ähnlich).
  • pg_net — PostgreSQL-Extension für asynchrone HTTP-Calls (für unsere Push-Notification-Trigger). Lizenz: Apache 2.0.
  • Cloudflare Workers — Serverless-Edge-Runtime für SSR und API- Routen. Anbieter: Cloudflare Inc. (US), Edge-Standorte weltweit (für deutsche User primär Frankfurt + Wien).
  • Web-Push (web-push npm-Package) — VAPID-signierte Push- Notifications. Lizenz: MIT.

4. Verschlüsselungs-Stack

Sowohl Direkt- als auch Gruppen-Chats werden Ende-zu-Ende-verschlüsselt mit dem Olm/Megolm-Protokoll der Matrix-Foundation, das vom Signal-Protokoll abgeleitet ist. Sprach- und Video-Anrufe nutzen WebRTC mit verpflichtender DTLS-SRTP-Verschlüsselung.

  • @matrix-org/olm — Olm- (1:1-Double-Ratchet) und Megolm- (Gruppen- Sender-Keys) Implementierung als WebAssembly. Lizenz: Apache 2.0. Audited durch NCC Group (siehe Matrix-Foundation-Repo). Quelle: gitlab.matrix.org/matrix-org/olm
  • Web Crypto API — Browser-eingebaut für PBKDF2-SHA-256 (Schlüssel-Ableitung aus Recovery-PIN, 600.000 Iterationen) und AES-GCM-256 (Backup-Verschlüsselung). Standard: W3C, keine externe Lizenz.
  • WebRTC + DTLS-SRTP — Browser-eingebaut für verschlüsselte Echtzeit-Audio- und Videoübertragung. IETF-Standard.
  • TURN-Server — selbst betrieben in der EU für stabile Verbindungen hinter NAT (Mobilfunk, Hotel-WLAN, Firmen-Firewalls). Software: coturn (Open Source, BSD-Lizenz).

5. Edge-Functions (serverseitige Funktionen)

Folgende Edge-Functions werden bei Supabase deployed und bei Bedarf ausgeführt:

  • send-push-notification — sendet Web-Push-Notifications an Subscriber. Verwendet das web-push-Package (MIT) und die Firebase Cloud Messaging HTTP v1 API für native Android-Push.
  • send-verification-code, verify-identity-document, cleanup-identity-documents — Identitäts-Verifikations-Workflow.
  • turn-credentials — generiert kurzlebige TURN-Server-Credentials für Anrufe.

6. KI-Subprozessoren (optional)

Optionale Funktionen wie Auto-Übersetzung verwenden Drittanbieter-APIs. Die Übermittlung erfolgt nur auf explizite User-Aktion (z.B. Button-Klick „Übersetzen").

  • OpenAI / Anthropic / Google AI — verwendet je nach Funktion und Verfügbarkeit. Übermittlung beschränkt auf den jeweiligen Nachrichten-Inhalt; keine Profil-Daten, keine Persistenz auf Anbieter-Seite (über No-Training-Flags der Enterprise-APIs).

7. Entwicklungs-Werkzeuge

  • Bun — Package-Manager + Runtime. Lizenz: MIT.
  • ESLint + typescript-eslint + Prettier — Code-Qualität und Formatierung. Lizenz: MIT.
  • Wrangler — Cloudflare-CLI für Worker-Deployment. Lizenz: MIT/Apache-2.0 dual.

8. Lizenzen — Kompakt-Übersicht

Die überwiegende Mehrheit der eingesetzten Bibliotheken ist unter MIT lizenziert (permissive, kommerziell nutzbar, Quellen-Hinweis in dieser Liste erfolgt zur Compliance). Weitere verwendete Lizenzen:

  • Apache 2.0 — TypeScript, Olm/Megolm, Supabase, pg_net.
  • ISC — Lucide React, idb.
  • BSD / PostgreSQL License — PostgreSQL, coturn.

Vollständige Lizenztexte sind im Repository unter node_modules/<package>/LICENSE bzw. den verlinkten Github-Repos einsehbar. Sollten Sie eine vollständige NOTICE-Datei wünschen, schreiben Sie an office@ai-fae.org.

9. Datenfluss-Übersicht

Eine Nachricht durchläuft folgende Stationen:

  1. Erfassung im Browser: Sie tippen Text. Die Nachricht liegt im Browser-Speicher.
  2. Verschlüsselung: Olm/Megolm verschlüsselt den Text lokal — der private Schlüssel verlässt den Browser nie.
  3. Übertragung: Der Ciphertext geht via HTTPS an Cloudflare Workers (Edge in Frankfurt), die ihn an Supabase (Frankfurt) weiterreichen.
  4. Speicherung: PostgreSQL speichert nur den Ciphertext. Weder Cloudflare noch Supabase noch wir können ihn entschlüsseln.
  5. Push-Benachrichtigung: Trigger feuert eine generische Push-Notification („Neue Nachricht") an den Empfänger.
  6. Auslieferung: Der Empfänger-Browser lädt den Ciphertext, dechiffriert ihn lokal mit seinem privaten Olm-Schlüssel.

10. Audit & Transparenz

Der Source-Code ist intern versioniert (Git). Externe Audits der Krypto-Implementierung liegen für die zugrunde liegenden Bibliotheken vor (NCC Group, Open-Source-Community). Eine externe Sicherheitsprüfung der Nisteria-Integration ist für 2026/27 vorgesehen — Ergebnisse werden hier veröffentlicht.

Bei Fragen zur eingesetzten Technologie: office@ai-fae.org.