Legal
Datenschutzerklärung
Entwurf zur datenschutzrechtlichen Prüfung (Stand: 28. August 2026). Angaben in eckigen Klammern sind vor der Veröffentlichung durch den Verantwortlichen bzw. den Datenschutzbeauftragten zu ersetzen. Dieser Text beschreibt den tatsächlich implementierten technischen Stand; er ist keine Rechtsberatung.
1. Verantwortlicher
Verantwortlich für die Verarbeitung personenbezogener Daten im Zusammenhang mit THE JEWELLERY CLUB / just B. (Website, City-Host-Bewerbung, Mitglieder-Apps) ist:
JustB. Consulting
Champingnystr. 10
72762 Reutlingen Deutschland
E-Mail Datenschutz / Kontakt: barbara.schwaiger@justb-consulting.de
Telefon:
Vertreten durch: Schwaiger Barbara
Handelsregister / USt-IdNr.: siehe Impressum
Soweit ein Datenschutzbeauftragter bestellt ist: Schwaiger Barbara.
Die Cloud-Infrastruktur (Hosting, Datenbank, Authentifizierung, App-Builds) wird technisch durch NEXT Digital GmbH, Frankfurt am Main betrieben. Ob NEXT Digital GmbH Verantwortlicher oder Auftragsverarbeiter ist, ist im Impressum und im Auftragsverarbeitungsvertrag festzulegen.
2. Geltungsbereich
Diese Erklärung gilt für:
die Club-Website justb-jewellery-club.com (Mitglieder, Join, Account, Admin);
die Bewerbungs-Website apply.justb-jewellery-club.com (City-Host-Bewerbung, isoliert vom Club-Chrome);
die iOS-App (Bundle-ID app.thejewelleryclub, TestFlight / App Store) und die Android-App (Play Store / APK), bereitgestellt über Expo / EAS.
Ein öffentlicher Online-Shop mit Zahlungsabwicklung ist nicht produktiv. Die Shop-Oberfläche in der App ist eine Vorschau ohne Belastung von Zahlungsmitteln.
3. Zwecke und Rechtsgrundlagen
Wir verarbeiten Daten nur für festgelegte Zwecke:
Vertrag / vorvertragliche Schritte (Art. 6 Abs. 1 lit. b DSGVO): Mitgliedskonto, Einladungscode, City-Host-Bewerbung, Charm-/NFC-Nutzung, Transaktionsmails;
Einwilligung (Art. 6 Abs. 1 lit. a DSGVO, ggf. § 25 TDDDG): optionale Web-Analytics, Web-Push, optionale Spracheingabe im Bewerbungsassistenten, Gerätezugriff Kamera/Mikrofon für das Selfie;
Berechtigtes Interesse (Art. 6 Abs. 1 lit. f DSGVO): Betriebssicherheit, Missbrauchs- und Betrugsabwehr, Sitzungsführung, technische Logs der Hosting-Anbieter;
Rechtspflicht (Art. 6 Abs. 1 lit. c DSGVO): handels- und steuerrechtliche Aufbewahrung, sobald Abrechnung produktiv wird.
4. City-Host-Bewerbung (Apply)
Über apply.justb-jewellery-club.com können sich Interessierte als City Host bewerben. Der Assistent ist in Deutsch, Englisch und Italienisch nutzbar. Schritte und Pflichtfelder werden administrativ konfiguriert; aktuell u. a.:
Vorname, Geburtsjahr (Auswahl ab 16 Jahren), Stadt, Angaben zur Eignung (z. B. ob fremde Menschen angesprochen werden);
Selfie-Video 15–60 Sekunden (Aufnahme im Browser oder Datei vom Gerät);
E-Mail, Mobilnummer, Einwilligung in diese Hinweise.
4.1 Video, Zuschnitt und Kompression auf dem Gerät
Für die Aufnahme fragt der Browser Kamera und Mikrofon an (getUserMedia / MediaRecorder). Nach Aufnahme oder Dateiauswahl kann der Clip auf dem Endgerät zugeschnitten werden. Anschließend wird er im Browser neu encodiert (Canvas / MediaRecorder, lange Kante ca. 720 Pixel, begrenzte Bitrate), um Volumen und Uploadzeit zu reduzieren. Das Original verbleibt nur temporär im Arbeitsspeicher des Geräts und wird nicht als Rohdatei auf unseren Servern abgelegt, sofern die Kompression gelingt. Schlägt sie fehl und wurde nicht zugeschnitten, kann die Originaldatei hochgeladen werden, solange sie unter 50 MB bleibt.
Der Upload erfolgt per zeitlich begrenzter, vorab signierter HTTPS-PUT-URL (ca. 15 Minuten gültig) in einen Object-Storage (Backblaze B2, S3-kompatible API). Objektpfad-Schema: city-hosts/{Bewerbungs-ID}/pitch.{mp4|webm|mov}. In der Datenbank speichern wir den Objektschlüssel, Upload-Zeitpunkt, Antworten (JSONB), Locale, Status und Ablaufzeit.
4.2 Speicherdauer Bewerbung
Unbestätigte Bewerbungen (Status pending): 24 Stunden. Ein stündlicher Cron-Job löscht Objekt im Storage und Datensatz. Ohne E-Mail-Bestätigung innerhalb dieser Frist wird das Video unwiederbringlich entfernt.
Bestätigte Bewerbungen: Das Ablaufdatum entfällt; Video und Angaben bleiben für die Auswahl (neu / shortlisted / accepted / declined) gespeichert, bis sie administrativ abgeschlossen oder nach Prüfung gelöscht werden. Eine automatische Löschfrist nach Zusage/Absage ist derzeit nicht im Code hinterlegt — das ist ein Punkt für die datenschutzrechtliche Freigabe (Löschkonzept).
4.3 Spracheingabe
Optionale Diktierfunktion nutzt die Web Speech API des Browsers bzw. Betriebssystems (z. B. Google Chrome Speech, Apple Diktat). Audiodaten gehen an den jeweiligen Anbieter, nicht an unsere Server. Rechtsgrundlage: Einwilligung durch bewusste Nutzung der Funktion.
4.4 Zwischenspeicher auf dem Gerät
Fortschritt des Assistenten (Locale, Schritt, Antworten, Bewerbungs-ID, Legal-Flag) liegt in localStorage unter dem Schlüssel jc.apply-wizard.v1 mit einer clientseitigen Gültigkeit von 24 Stunden. Kein Server-Cookie für den Draft.
4.5 Sprache der Oberfläche
Die Apply-Sprache speichern wir im Cookie apply_locale (180 Tage, Pfad /, SameSite=Lax), damit der Assistent die Wahl behält.
5. Mitgliedschaft, Registrierung und Apps
Der Club ist einladungsbasiert. Zur Registrierung (Web und App) verarbeiten wir: Vorname, E-Mail, Passwort-Hash (Supabase Auth, nicht im Klartext bei uns einsehbar), 6-stelligen Einladungscode (PIN ohne leicht verwechselbare Zeichen), optional Telefon aus einer angenommenen Bewerbung. Bestätigung der E-Mail (Double Opt-in) über Supabase Auth, soweit nicht über Apple/Google angemeldet.
Profil (Tabelle profiles u. a.): Name, Nutzername, E-Mail, optional Adresse / PLZ / Stadt / Land, Avatar-URL, Einladungs- und Referral-Codes, Punkte/XP, Rollen, Sperr- und Löschkennzeichen. Kein GPS: Ortsangaben sind von Mitgliedern eingegebene Texte. NFC-Taps speichern Standort-IDs der Points of Style, keine Koordinaten vom Gerät.
Anmeldung: E-Mail/Passwort; optional Sign in with Apple (inkl. Hide My Email / privaterelay.appleid.com) und Google. Sitzung: HTTP-Cookies der Supabase-SSR-Bibliothek (Präfix typischerweise sb-) auf der Website; in der App der Auth-State in AsyncStorage.
6. Charms, NFC und Points of Style
Gekoppelte Charms (NTAG, bei produktivem SUN: NTAG 424 mit diversifiziertem Schlüssel) identifizieren Mitglieder an Points of Style. Die App ruft eine Edge Function verify-nfc mit UID, URL und Absicht (enroll / pos) auf. Tap-Ereignisse können Charm- und Standortbezüge speichern; bei Kontolöschung werden Profilbezüge in Ereignissen anonymisiert (profile_id = null), die Hardware-Historie wird nicht vollständig physisch gelöscht — ebenfalls ein Punkt für das Löschkonzept.
Mitglieder können Locations vorschlagen (Name, Stadt, Kategorie, Freitext). Daraus entstehen CRM-Leads für das Admin-Panel.
7. E-Mail (Resend)
Transaktionsmails (Bewerbungsbestätigung, Einladung nach Zusage, Admin-Antworten) über Resend. Absender je nach Konfiguration z. B. apply@{Domain} oder hinterlegte From-Adresse. Eingehende Mails an konfigurierte Postfächer: Webhook → Speicherung in admin_messages (Absender, Empfänger, Betreff, Text/HTML, Anhänge-Metadaten, Resend-ID). Kein automatisches Löschen dieser Postfachinhalte im Code.
8. Push-Nachrichten
Web: Browser Push API, Service Worker /sw.js, VAPID-Schlüssel (selbst betrieben, kein OneSignal). Endpunkt, p256dh und Auth-Secret in push_devices.
App: Expo-Push-Token, Zustellung über Expo an APNs (Apple) bzw. FCM (Google). Zusätzlich Gerätemodellname.
Web-Push erst nach Systemdialog / Einwilligung. Tokens werden bei Kontolöschung bzw. Sendefehlern deaktiviert.
9. Cookies, lokale Speicherung und ähnliche Technologien
Details: Cookie-Richtlinie. Kurz:
Notwendig: Supabase-Sitzungscookies; Apply-Cookie apply_locale; Speicherung der Cookie-Entscheidung in localStorage jc.cookie-consent.v1 (kein Cookie).
Optional: Vercel Web Analytics nur nach Opt-in.
Weitere lokale Speicher (kein Tracking): jc.apply-wizard.v1, jc_news_seen_at_v1, jc_push_prompt_dismissed_v1; sessionStorage jc_pending_member; App: jc_pending_email_v1, jc.guest-cart.v1 (Vorschau-Warenkorb), jc_theme_preference_v1.
Rechtsgrundlage notwendiger Speicher: § 25 Abs. 2 TDDDG i. V. m. Art. 6 Abs. 1 lit. b/f DSGVO. Optional: Einwilligung.
10. Reichweitenmessung
Wenn Sie Analytics erlauben, lädt die Website @vercel/analytics (Vercel Web Analytics, Hosting-Region u. a. Frankfurt / fra1). Keine Werbenetzwerke, kein Meta-Pixel, kein Google Analytics, kein Sentry/Crash-Reporter in den Apps. Die interne Admin-„Analytics“-Ansicht betrifft POS-Betrieb, nicht Besuchertracking.
11. Empfänger und Auftragsverarbeitung
Wir setzen folgende Dienstleister ein (typische Auftragsverarbeiter bzw. eigenverantwortlich, soweit sie Daten als Anbieter verarbeiten):
Supabase — Authentifizierung, PostgreSQL, Edge Functions; Region eu-central-1 (Frankfurt).
Vercel — Hosting der Next.js-Anwendung, Cron (Bewerbungslöschung), optionale Web Analytics; Deployment u. a. fra1.
Backblaze B2 — Object Storage für Bewerbungsvideos (S3-API; konfigurierte Region z. B. EU, abhängig von der Admin-Einstellung).
Resend — E-Mail-Versand und Inbound-Webhook.
Expo / EAS — App-Builds, OTA-Updates, Push-Relay.
Apple — Sign in with Apple, APNs, App Store / TestFlight.
Google — optional Google-Login; FCM für Android-Push; Webfonts über next/font (kein zusätzliches Tracking-Skript).
Browser-/OS-Sprachdienste — nur bei Nutzung der Diktierfunktion.
Eine Übermittlung in die USA kann bei Apple, Google, Expo und (je nach Routing) weiteren Anbietern stattfinden. Soweit erforderlich, stützen wir uns auf Angemessenheitsbeschlüsse / EU-US Data Privacy Framework bzw. Standardvertragsklauseln — [AVV und TOM-Liste durch DSB prüfen und ergänzen].
12. Speicherdauer (Überblick)
Pending-Bewerbung inkl. Video: 24 Stunden, dann Löschung Storage + Datensatz.
Bestätigte Bewerbung: bis Abschluss des Verfahrens bzw. manuelle Löschung (kein Cron).
Mitgliedskonto: bis Selbstlöschung oder Admin-Löschung. Self-Service löscht den Auth-User (Cascade Profil); Admins/POS-Owner müssen hello@thejewelleryclub.app kontaktieren.
Admin-Postfach: unbegrenzt im System, bis manuell entfernt.
Rechtstexte: versioniert in der Datenbank.
13. Ihre Rechte
Sie haben das Recht auf Auskunft, Berichtigung, Löschung, Einschränkung, Datenübertragbarkeit und Widerspruch (Art. 15–21 DSGVO) sowie auf Beschwerde bei einer Aufsichtsbehörde, z. B. der für den Sitz des Verantwortlichen zuständigen Behörde [zuständige Aufsichtsbehörde eintragen]. Einwilligungen können Sie mit Wirkung für die Zukunft widerrufen (Cookie-Banner erneut über die Cookie-Richtlinie; Push in den Systemeinstellungen; Kamera/Mikrofon in den Browser-Einstellungen).
14. Minderjährige
Die Bewerbung verlangt ein Geburtsjahr, das mindestens 16 Jahre zurückliegt. Der Club richtet sich nicht an Kinder. [Prüfen: Art. 8 DSGVO / nationale Altersgrenze für Einwilligung].
15. Automatisierte Entscheidungen
Es findet keine automatisierte Entscheidung im Sinne von Art. 22 DSGVO statt. Die Auswahl von City Hosts erfolgt menschlich im Admin.
16. Technische Verarbeitungsübersicht für die Prüfung
Die folgende Liste ist für die Datenschutzdokumentation bestimmt und beschreibt den implementierten Stand:
Web-Stack: Next.js auf Vercel, Domain justb-jewellery-club.com und Apply-Host apply.justb-jewellery-club.com (Pfad-Isolation per Proxy).
Datenbank / Auth: Supabase-Projekt Jewellery Club, Frankfurt.
Bewerbertabelle: city_host_applications (answers JSONB, video_key, locale, phone, legal_accepted_at, expires_at, Statusmaschine pending → new / …).
Video: Client-Trim/Re-Encode; Presign PUT 15 min; GET-Presign ca. 1 h für Admin-Ansicht; Cron GET /api/apply/expire stündlich, abgesichert per CRON_SECRET.
Medienkonfiguration: club_media_config (Endpoint, Bucket, Schlüssel) — Admin-only.
Mail: Resend API + /api/mail/inbound; Tabellen admin_mailboxes, admin_messages.
Push: push_devices; Edge Function send-push; VAPID Subject mailto:hello@thejewelleryclub.app.
NFC: Edge Function verify-nfc; Masterkeys nur serverseitig (nicht im Client).
Kein Stripe/Zahlungs-Provider, kein Crash-Reporting-SDK, keine Social-Publish-APIs (nur Admin-Entwürfe social_posts).
App-Berechtigungen: u. a. NFC, Android POST_NOTIFICATIONS; Kamera/Mikrofon der Bewerbung laufen im mobilen Browser, nicht als native App-Permission.
17. Änderungen
Wir passen diese Erklärung an, wenn sich Verarbeitung oder Rechtslage ändern. Es gilt die auf dieser Seite veröffentlichte Fassung. Stand: 28. August 2026.
