Recipe2Grocery – Datenschutz · Privacy
Datenschutzerklärung
Stand: 7. November 2026 · Gilt für die App Recipe2Grocery (Android, iPhone/iOS sowie Web-/Desktop-Builds) und den zugehörigen Sync-Server pb.schiri.dev.
1. Verantwortlicher
Tony Schirmacher-RichterAugustusburger Str. 400, 09127 Chemnitz, Deutschland
E-Mail: contact@schiri.consulting
2. Das Wichtigste in Kürze
- Kein Konto, keine Registrierung. Die App braucht weder E-Mail-Adresse noch Namen noch Passwort.
- Keine Werbung, kein Tracking, keine Analyse-Dienste. Es werden keine Werbe- oder Analyse-SDKs eingebunden.
- Offline-first. Alle Daten liegen zuerst auf deinem Gerät. Der Sync-Server dient nur dazu, einen Haushalt über mehrere Geräte zu teilen.
- Standort nur im Vordergrund und nur für den Markt-Vorschlag; keine Bewegungsprofile.
- Server in Deutschland (Hetzner, Rechenzentrum in der EU).
3. Daten auf deinem Gerät
Die App speichert lokal: deine Speisen, Zutaten und Rezepte, die Einkaufsliste, Kategorien, angelegte Supermärkte (Name, Koordinaten, Erkennungsradius), die gelernte Einkaufsreihenfolge je Markt („Erfahrung"), abgeschlossene Einkäufe (Artikel, Dauer) sowie Einstellungen (Sprache, Darstellung, Server-URL). Beim ersten Start erzeugt die App eine zufällige Geräte-ID (UUID) und einen Haushalt mit einem zufälligen Beitritts-Code. Diese Daten verlassen dein Gerät nur über den Sync (Abschnitt 4).
4. Sync-Server (Haushalt teilen)
Standardmäßig synchronisiert die App mit unserem Server pb.schiri.dev (PocketBase, gehostet bei Hetzner). Du kannst in den Einstellungen unter „Server & Sync" eine eigene Server-URL eintragen oder den Sync ganz abschalten (Feld leeren) – dann bleibt alles lokal.
Übertragene und gespeicherte Daten:
| Datenkategorie | Inhalt | Zweck |
|---|---|---|
| Haushalt | Haushalts-ID, Beitritts-Code, Haushaltsname | Geräte demselben Haushalt zuordnen |
| Mitglieder | Geräte-ID, selbst gewählter Anzeigename, Zeitpunkt der letzten Aktivität | Anzeige „Geräte im Haushalt" |
| Inhalte | Speisen, Rezepte, Zutaten, Kategorien, Einkaufsliste (inkl. Abhak-Status), Artikel-Tags, Einkaufs-Historie | Kernfunktion: gemeinsame Listen |
| Märkte & Erfahrung | Marktname, Koordinaten des Markts, Erkennungsradius, gelernte Artikel-Reihenfolge | Markt-Erkennung und Sortierung nach Laufweg |
| Technisch | Zeitstempel, Lösch-Markierungen, App-Schlüssel im Request-Header | Konfliktauflösung, Schutz der Schnittstelle vor Fremdzugriff |
Rechtsgrundlage: Vertragserfüllung bzw. Bereitstellung der von dir gewünschten Funktion (Art. 6 Abs. 1 lit. b DSGVO). Alle Daten sind an die zufällige Haushalts-ID gebunden; wir ordnen sie keiner Person zu. Der Server gibt Haushaltsdaten nur an Anfragen heraus, die diese ID kennen – sie sind weder auflistbar noch für andere Haushalte einsehbar. Die Übertragung erfolgt ausschließlich verschlüsselt (TLS).
Server-Protokolle: Der Server verarbeitet beim Zugriff technisch notwendige Verbindungsdaten (IP-Adresse, Zeitpunkt, aufgerufener Pfad, Statuscode) zur Bereitstellung, Fehleranalyse und Absicherung des Dienstes (berechtigtes Interesse, Art. 6 Abs. 1 lit. f DSGVO). Diese Protokolle werden automatisch nach spätestens 14 Tagen gelöscht.
Nutzungsstatistik: Damit wir sehen, wie viel die App genutzt wird, zählt der Server je Tag Summen – etwa neue Haushalte, beigetretene Geräte und abgeschlossene Einkäufe, jeweils aufgeteilt nach Plattform (Android/iOS, aus einem Request-Header der App). Zusätzlich meldet die App beim Start (höchstens alle 30 Minuten) eine zufällige Statistik-ID, die nur diesem Zweck dient, die Haushalts-ID, App-Version, App-Sprache und Plattform. Der Server speichert davon nur Hashwerte der beiden IDs zusammen mit Version, Sprache, Plattform, dem Tag des ersten und dem Zeitpunkt des letzten Starts – daraus ergeben sich die Zahlen aktiver Nutzer und Haushalte (pseudonym). Diese Einträge werden nach 400 Tagen ohne App-Start gelöscht und nicht für Inhalte oder Werbung genutzt. Du kannst das unter Mehr → Server & Sync → „Nutzungsstatistik senden“ jederzeit abschalten. Rechtsgrundlage: berechtigtes Interesse an der Weiterentwicklung der App (Art. 6 Abs. 1 lit. f DSGVO).
5. Standort
Wenn du in der Einkaufsliste den Markt-Wähler öffnest oder die Markt-Nähe prüfst, fragt die App nach der Standortberechtigung und ermittelt einmalig deine aktuelle Position, um den nächstgelegenen deiner Märkte vorzuschlagen. Legst du einen neuen Markt an, werden die Koordinaten dieses Markts gespeichert und (bei aktivem Sync) an den Haushalt übertragen – nicht deine laufende Position. Es findet kein Hintergrund-Tracking statt; die App fordert keine Hintergrund-Standortberechtigung an. Die Nutzung ist freiwillig: Ohne Berechtigung funktioniert die App vollständig, nur der automatische Markt-Vorschlag entfällt. Rechtsgrundlage: Einwilligung (Art. 6 Abs. 1 lit. a DSGVO), jederzeit in den Systemeinstellungen widerrufbar.
6. Kamera (QR-Code)
Zum Beitreten in einen Haushalt kannst du einen QR-Code scannen. Die Kamera wird nur während des Scans verwendet; die Bilder werden ausschließlich lokal ausgewertet und weder gespeichert noch übertragen. Auf Android nutzt die App dafür die ML-Kit-Barcode-Bibliothek von Google; das Erkennungsmodell wird ggf. einmalig über die Google Play-Dienste nachgeladen (dabei gelten die Datenschutzbestimmungen von Google für die Play-Dienste). Auf dem iPhone erfolgt die Erkennung mit den Bordmitteln von iOS (Apple Vision), ohne Nachladen. Die Kamerabilder selbst verlassen das Gerät nicht.
7. Alexa-Anbindung (optional)
Du kannst in der App eine persönliche Endpunkt-URL für einen eigenen Alexa-Skill erzeugen („Mehr → Mit Alexa verbinden"). Richtest du einen solchen Skill in deinem Amazon-Entwicklerkonto ein, sendet Amazon bei Sprachbefehlen Anfragen an unseren Server. Dabei verarbeiten wir den erkannten Artikeltext (z. B. „500 Gramm Nudeln"), Zeitstempel und technische Kennungen der Anfrage sowie die Skill-ID, um den Artikel in die Einkaufsliste deines Haushalts einzutragen. Der Endpunkt-Token wird zusammen mit Haushalts-ID und Haushaltsname gespeichert. Bei der älteren Kopplung per PIN speichern wir stattdessen die von Amazon übermittelte, skill-spezifische Nutzerkennung zusammen mit der Haushalts-ID. Für die Verarbeitung deiner Sprache durch Amazon gelten die Datenschutzbestimmungen von Amazon. Rechtsgrundlage: Vertragserfüllung (Art. 6 Abs. 1 lit. b DSGVO). Die Funktion ist vollständig optional.
8. Update-Prüfung (nur Version aus dem App-Portal)
Die außerhalb von Google Play verteilte Android-Version prüft beim Start auf neue Versionen bei apps.schiri.dev (derselbe Betreiber, gleicher Server). Dabei wird deine IP-Adresse übertragen; weitere Daten werden nicht gesendet. Die Versionen aus Google Play und dem Apple App Store enthalten diese Prüfung nicht.
9. Speicherdauer & Löschung
- Gelöschte Einträge (Speisen, Artikel, Märkte …) werden zunächst als gelöscht markiert, damit die Löschung auf alle Geräte des Haushalts gelangt, und nach 30 Tagen endgültig vom Server entfernt.
- Verlässt du einen Haushalt („Haushalt zurücksetzen"), erhält dein Gerät einen neuen Haushalt; die Daten des alten Haushalts bleiben für dessen übrige Mitglieder bestehen.
- Vollständige Löschung: Schreibe uns mit deinem Beitritts-Code (Mehr → Haushalt teilen) an contact@schiri.consulting. Wir löschen dann alle Datensätze des Haushalts vom Server (Art. 17 DSGVO). Lokale Daten entfernst du durch Deinstallation der App; die Android-Version ist von der Android-Datensicherung (Google-Backup, Gerätewechsel) ausgenommen. Auf dem iPhone können die lokalen App-Daten wie bei jeder App Teil deines iCloud- oder Geräte-Backups sein; diese Sicherung verwaltest du selbst bzw. Apple, wir haben darauf keinen Zugriff.
- Datensicherungen: Vor Wartungsarbeiten am Server wird eine Sicherung der Datenbank erstellt (verschlüsselt übertragen, nur für den Betreiber zugänglich). Sicherungen werden höchstens 30 Tage aufbewahrt und danach gelöscht; bis dahin können sie bereits gelöschte Einträge noch enthalten.
10. Empfänger & Hosting
Server und Datenbank werden bei der Hetzner Online GmbH, Industriestr. 25, 91710 Gunzenhausen, Deutschland, in einem Rechenzentrum innerhalb der EU betrieben (Auftragsverarbeitung nach Art. 28 DSGVO). Eine Weitergabe an sonstige Dritte findet nicht statt; die App verkauft keine Daten.
11. Deine Rechte
Du hast das Recht auf Auskunft (Art. 15), Berichtigung (Art. 16), Löschung (Art. 17), Einschränkung (Art. 18), Datenübertragbarkeit (Art. 20) und Widerspruch (Art. 21 DSGVO) sowie auf Beschwerde bei einer Aufsichtsbehörde – in Sachsen: Sächsische Datenschutz- und Transparenzbeauftragte. Da wir Haushalte keiner Person zuordnen können, benötigen wir zur Bearbeitung deinen Beitritts-Code.
12. Kinder
Die App richtet sich nicht gezielt an Kinder und erhebt keine personenbezogenen Daten, die eine Altersprüfung erfordern.
13. Änderungen
Wir passen diese Erklärung an, wenn sich die App oder die Rechtslage ändert. Die jeweils aktuelle Fassung findest du unter dieser Adresse.
Privacy Policy
Last updated: 7 November 2026 · Applies to the Recipe2Grocery app (Android, iPhone/iOS, plus web/desktop builds) and its sync server pb.schiri.dev.
1. Controller
Tony Schirmacher-RichterAugustusburger Str. 400, 09127 Chemnitz, Germany
E-mail: contact@schiri.consulting
2. In short
- No account, no sign-up. The app needs neither an e-mail address nor a name nor a password.
- No ads, no tracking, no analytics. No advertising or analytics SDKs are included.
- Offline-first. All data lives on your device first. The sync server only exists to share a household across several devices.
- Location in the foreground only and only for the store suggestion; no movement profiles.
- Servers in Germany (Hetzner, data centre inside the EU).
3. Data on your device
The app stores locally: your dishes, ingredients and recipes, the shopping list, categories, stores you created (name, coordinates, detection radius), the learned shopping order per store (“experience”), completed shopping trips (items, duration) and settings (language, appearance, server URL). On first launch the app generates a random device ID (UUID) and a household with a random join code. This data leaves your device only through sync (section 4).
4. Sync server (sharing a household)
By default the app syncs with our server pb.schiri.dev (PocketBase, hosted at Hetzner). In the settings under “Server & Sync” you can enter your own server URL or switch sync off entirely (clear the field) – then everything stays local.
Data transmitted and stored:
| Category | Content | Purpose |
|---|---|---|
| Household | Household ID, join code, household name | Assign devices to the same household |
| Members | Device ID, self-chosen display name, time of last activity | “Devices in this household” view |
| Content | Dishes, recipes, ingredients, categories, shopping list (incl. checked state), item tags, shopping history | Core feature: shared lists |
| Stores & experience | Store name, store coordinates, detection radius, learned item order | Store detection and sorting by walking route |
| Technical | Timestamps, deletion markers, app key in the request header | Conflict resolution, protecting the API from third-party access |
Legal basis: performance of the service you requested (Art. 6(1)(b) GDPR). All data is tied to the random household ID; we do not link it to a person. The server only releases household data to requests that know this ID – it can neither be listed nor viewed by other households. Transmission is always encrypted (TLS).
Server logs: When accessed, the server processes technically necessary connection data (IP address, time, requested path, status code) to provide, debug and secure the service (legitimate interest, Art. 6(1)(f) GDPR). These logs are deleted automatically after 14 days at the latest.
Usage statistics: To see how much the app is used, the server counts daily totals – such as new households, joined devices and finished shopping trips, each split by platform (Android/iOS, taken from a request header sent by the app). In addition, on start (at most every 30 minutes) the app reports a random statistics ID used only for this purpose, the household ID, app version, app language and platform. The server stores only hashes of both IDs together with version, language, platform, the day of the first and the time of the last start – this yields the number of active users and households (pseudonymous). These entries are deleted after 400 days without an app start and are not used for content or advertising. You can switch this off at any time under More → Server & Sync → “Send usage statistics”. Legal basis: legitimate interest in improving the app (Art. 6(1)(f) GDPR).
5. Location
When you open the store picker in the shopping list or check store proximity, the app asks for location permission and determines your current position once to suggest the nearest of your stores. When you create a new store, that store’s coordinates are saved and (with sync enabled) shared with the household – not your ongoing position. There is no background tracking; the app does not request background location permission. Use is voluntary: without the permission the app works fully, only the automatic store suggestion is unavailable. Legal basis: consent (Art. 6(1)(a) GDPR), revocable at any time in the system settings.
6. Camera (QR code)
To join a household you can scan a QR code. The camera is used only during the scan; frames are analysed locally and are neither stored nor transmitted. On Android the app uses Google’s ML Kit barcode library; the recognition model may be downloaded once via Google Play services (Google’s privacy policy for Play services applies). On iPhone, recognition uses the built-in iOS frameworks (Apple Vision), nothing is downloaded. The camera images themselves never leave the device.
7. Alexa integration (optional)
In the app you can generate a personal endpoint URL for your own Alexa skill (“More → Connect with Alexa”). If you set up such a skill in your Amazon developer account, Amazon sends requests to our server on voice commands. We then process the recognised item text (e.g. “500 grams of pasta”), timestamps and technical request identifiers as well as the skill ID in order to add the item to your household’s shopping list. The endpoint token is stored together with the household ID and household name. With the older PIN pairing we instead store the skill-specific user identifier sent by Amazon together with the household ID. Amazon’s privacy policy applies to Amazon’s processing of your voice. Legal basis: performance of the service (Art. 6(1)(b) GDPR). The feature is entirely optional.
8. Update check (app-portal version only)
The Android version distributed outside Google Play checks for new versions at apps.schiri.dev (same operator, same server) on start. Your IP address is transmitted in the process; no further data is sent. The versions from Google Play and the Apple App Store do not contain this check.
9. Retention & deletion
- Deleted entries (dishes, items, stores …) are first marked as deleted so that the deletion reaches all devices of the household, and are permanently removed after 30 days from the server.
- If you leave a household (“Reset household”), your device gets a new household; the old household’s data remains for its other members.
- Full deletion: Write to us with your join code (More → Share household) at contact@schiri.consulting. We will then delete all records of that household from the server (Art. 17 GDPR). Local data is removed by uninstalling the app; the Android version is excluded from Android data backup (Google backup, device transfer). On iPhone, local app data may – as with any app – be part of your iCloud or device backup; that backup is managed by you and Apple, we have no access to it.
- Backups: Before server maintenance a backup of the database is created (transferred encrypted, accessible only to the operator). Backups are kept for at most 30 days and then deleted; until then they may still contain entries that have already been deleted.
10. Recipients & hosting
Server and database are operated at Hetzner Online GmbH, Industriestr. 25, 91710 Gunzenhausen, Germany, in a data centre inside the EU (data processing agreement under Art. 28 GDPR). Data is not passed on to any other third parties; the app does not sell data.
11. Your rights
You have the right of access (Art. 15), rectification (Art. 16), erasure (Art. 17), restriction (Art. 18), data portability (Art. 20) and objection (Art. 21 GDPR), and the right to lodge a complaint with a supervisory authority – in Saxony: Sächsische Datenschutz- und Transparenzbeauftragte. Because we cannot link households to persons, we need your join code to process a request.
12. Children
The app is not directed at children and does not collect personal data that would require age verification.
13. Changes
We update this policy when the app or the legal situation changes. The current version is always available at this address.