Zum Hauptinhalt springen
Side-Project SaaS Chrome Extension DSGVO

Wie ich ein DSGVO-matures SaaS-Side-Project mit Chrome Extension baute

Gewinnspiel-Plattform mit Manifest-V3-Chrome-Extension, lokalem Template-Generator (kein KI-API) und EU-nativem Supabase-Setup — als pnpm-Monorepo mit shared package.

Branche
Side-Project / SaaS (Invite-only)
Region
EU-nativ (Supabase Frankfurt/Irland)
Zeitraum
Laufend seit 2025, aktuelle Version v0.27
Umfang
pnpm-Monorepo mit Web-App (React 19 + Vite), Manifest-V3-Chrome-Extension und shared TypeScript-Package
Ergebnis
59 Supabase-Migrationen mit RLS auf allen Tabellen, vollständiges Verarbeitungsverzeichnis nach Art. 30 DSGVO.
Stack
pnpm-MonorepoReact 19 + Vite 6 + Tailwind 3Manifest V3 + CRXJS (Hot-Reload-Extension)Supabase (PostgreSQL, Auth, Realtime, RLS) — EU-Regionpg_cron für DSGVO-LöschfristenGitHub Actions CI/CD
Website besuchen

Ausgangslage und Ansatz

Ausgangslage

Wer regelmäßig an Gewinnspielen teilnimmt, kennt das: dutzende Tabs, verpasste Deadlines, keine Übersicht. Ich wollte ein Tool bauen, das dieses Chaos aufräumt — und gleichzeitig zeigen, dass auch ein Side-Project DSGVO-mature aufgebaut sein kann.

Mein Ansatz
Monorepo mit shared package — Type-Safety über App-Grenzen
Generator-Logik und Supabase-Client liegen in `packages/shared` und werden von Web-Dashboard und Chrome-Extension gleichermaßen importiert. Single Source of Truth, statisches Type-Sharing, ein zentraler Vitest-Lauf. Würde ich das zweimal pflegen, wäre der nächste Refactor ein Nervenkrieg.
Manifest V3 mit CRXJS — moderne Extension-DX
MV2 ist 2026 deprecated. CRXJS bringt Vite-Hot-Reload auch ins Extension-Setup — Content-Script, Background-Worker und Popup laden wie eine Web-App neu. Permissions sauber minimal: `tabs`, `clipboardWrite`, `storage`, `alarms`, `notifications`, ein einziger Host (instagram.com).
Lokaler Template-Generator statt KI-API-Call
Ursprünglich war eine Anthropic-API-Integration geplant — und versehentlich in die Datenschutzerklärung gewandert. Beim Audit konsequent rausgerissen: der Generator ist jetzt 100 % lokal, template-basiert, mit 300+ JSON-Bausteinen (Emojis, Ausrufe, Fragmente), Mood-Toggle (hype / chill / neutral), Caps-Stilen. Schneller, offline-fähig, kein Drittland-Transfer, Privacy by Design.
EU-natives Supabase mit RLS auf jeder Tabelle
EU-Region (Frankfurt / Irland). Postgres-Row-Level-Security konsequent auf allen relevanten Tabellen — User sieht nur seine eigenen Daten, das wird auf DB-Ebene erzwungen, nicht in der App-Logik. 59 Migrationen mit dokumentiertem Audit-Trail (RLS-Härtung, Berechtigungs-Audit, Index-Optimierung).
DSGVO-Löschfristen über pg_cron — automatisiert, nicht manuell
Abgelaufene Gewinnspiele werden nach 12 Monaten gelöscht, Kommentar-Historie nach 6 Monaten. Implementiert als `pg_cron`-Job auf Datenbank-Ebene — keine Möglichkeit, das im Stress zu vergessen. Account-Löschung kaskadiert über Foreign-Key-Constraints (CASCADE) auf alle abhängigen Daten.
Verantwortungsbewusste Automation mit Rate-Limits
Die Auto-Comment-Engine hat Multi-Level-Caps (20 Kommentare/h, 100/d), eine Nachtsperre (2–6 Uhr) und simuliert menschliches Verhalten (Bezier-Mausbewegungen, variable Tippgeschwindigkeit, 3 % Tippfehler-Quote, Ermüdungseffekt). Im Popup steht ein expliziter Risk-Disclaimer — Meta-ToS-Konflikt wird offen kommuniziert, nicht versteckt.
Self-hosted Extension-Distribution
Bewusst nicht im Chrome Web Store. Das ZIP wird selbst gehostet und nur an eingeladene User ausgeliefert. Hält den Nutzerkreis klein, vermeidet Web-Store-Privacy-Reviews und lässt mich Updates ohne Store-Review-Latenz pushen. Side-Project-Größe, nicht Massenmarkt.
Vollständiges Verarbeitungsverzeichnis nach Art. 30 DSGVO
Auch als Side-Project mit 2 Usern — Verarbeitungsverzeichnis, Interessenabwägung (Art. 6 (1) f), Auftragsverarbeiter-Liste (Supabase EU-DPA, Vercel DPF + SCCs, hCaptcha) sind dokumentiert. Wenn ich das nicht für mein eigenes Tool ernst nehme, wie soll ich es Kunden empfehlen?

Eine Plattform, die den Gewinnspiel-Workflow abdeckt — vom Entdecken bis zum Tracking — und gleichzeitig demonstriert, wie ein DSGVO-mature Side-Project aussehen kann: EU-nativ, RLS-protected, mit Auto-Cleanup und vollständigem Verarbeitungsverzeichnis. Build und Type-Safety aus einem Monorepo.

59
Supabase-Migrationen
0
Drittland-Calls aus dem Generator
2
Apps aus shared package

Lootivo ist ein Nebenprojekt — aber eins, bei dem ich alles selbst entscheiden konnte. Technik, Design, Compliance. Wenn man keinen Kunden überzeugen muss, baut man anders: gründlicher, gerade dort, wo es Kunden später kosten würde.

— Tobias

Verwandter Service: Webdesign-Service ansehen

Haben Sie eine Produktidee mit ähnlichen Anforderungen? Reden wir.

Ihr Projekt besprechen
Kostenloses Erstgespräch