Voice to Notes

Technische Spezifikation · Stand März 2026

Architektur

Frontend & Backend

SvelteKit (Svelte 5)

🌍

Datenbank & Auth

Supabase (PostgreSQL)

🇩🇪

Dateispeicher

Supabase Storage

🇩🇪

Transkription

OpenAI Whisper / Groq

🇺🇸

Strukturierung

Anthropic Claude

🇺🇸

Bezahlung

Stripe

🇺🇸

E-Mail

Resend

🇺🇸

Datenfluss

1

Upload & Komprimierung

Die Audiodatei wird im Browser komprimiert und an den SvelteKit-Server gesendet. Der Server validiert Authentifizierung und Nutzungslimits.

/api/process → Auth-Check → Usage-Check
2

Speicherung der Audiodatei

Die Datei wird in Supabase Storage hochgeladen. Nach der Verarbeitung wird der Nutzer gefragt, ob die Audiodatei gelöscht werden soll. Ohne aktives Löschen bleibt die Datei gespeichert.

audio/{user_id}/{timestamp}-{filename}
3

Transkription

Die Audiodatei wird an OpenAI Whisper oder Groq gesendet (beide 🇺🇸). Die API gibt den transkribierten Text zurück. Die Audiodaten werden laut Anbieter nicht für Modelltraining verwendet, verlassen aber die EU.

4

Strukturierung

Der Transkriptionstext wird an Anthropic Claude (🇺🇸) gesendet, zusammen mit optionalen Strukturanweisungen. Claude gibt strukturierten Inhalt als JSON zurück: Titel, Zusammenfassung, Abschnitte, Action Items.

5

Speicherung der Notiz

Das strukturierte Ergebnis wird in der Supabase-Datenbank als JSONB gespeichert.

notes → id, user_id, title, structured_content, transcript, audio_path

🗃 Datenspeicherung

Audiodateien

🇩🇪
Supabase Storage · Bis Nutzer löscht · Auf Anfrage

Transkripte

🇩🇪
Supabase DB · Unbegrenzt · Keine Auto-Löschung

Strukturierte Notizen

🇩🇪
Supabase DB · Unbegrenzt · Keine Auto-Löschung

Nutzerprofil

🇩🇪
Supabase DB · Unbegrenzt · Keine Auto-Löschung

Nutzungsstatistik

🇩🇪
Supabase DB · Unbegrenzt · Keine Auto-Löschung

Zahlungsdaten

🇺🇸
Stripe · Stripe Policy · Keine Auto-Löschung

Audiodateien können vom Nutzer nach der Verarbeitung gelöscht werden. Alle anderen Daten werden unbegrenzt gespeichert.

🔒 Sicherheit

Row Level Security (RLS) Auf allen Supabase-Tabellen. Nutzer sehen nur eigene Daten.
CSRF-Schutz Via SvelteKit Framework
CSP & HSTS Content Security Policy und HTTP Strict Transport Security Headers
Webhook-Signaturprüfung Stripe Webhooks werden kryptographisch verifiziert
XSS-Schutz DOMPurify für alle dynamisch gerenderten HTML-Inhalte
Bot-Schutz Cloudflare Turnstile auf öffentlichen Formularen

🌎 Datenresidenz: Was verlässt die EU?

Audiodatei (Transkription)

OpenAI / Groq

🇺🇸

Transkript (Strukturierung)

Anthropic Claude

🇺🇸

Zahlungsinformationen

Stripe

🇺🇸

E-Mail-Inhalte

Resend

🇺🇸

Hinweis zur Datenverarbeitung

Die Primärdaten (Audiodateien, Notizen, Nutzerdaten) verbleiben in Supabase Frankfurt (EU). Zur Verarbeitung werden Audio und Transkriptionstext jedoch an US-basierte Dienste übermittelt. Die Anbieter geben an, dass diese Daten nicht für Modelltraining verwendet werden.