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-Richter
Augustusburger Str. 400, 09127 Chemnitz, Deutschland
E-Mail: contact@schiri.consulting

2. Das Wichtigste in Kürze

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:

DatenkategorieInhaltZweck
HaushaltHaushalts-ID, Beitritts-Code, HaushaltsnameGeräte demselben Haushalt zuordnen
MitgliederGeräte-ID, selbst gewählter Anzeigename, Zeitpunkt der letzten AktivitätAnzeige „Geräte im Haushalt"
InhalteSpeisen, Rezepte, Zutaten, Kategorien, Einkaufsliste (inkl. Abhak-Status), Artikel-Tags, Einkaufs-HistorieKernfunktion: gemeinsame Listen
Märkte & ErfahrungMarktname, Koordinaten des Markts, Erkennungsradius, gelernte Artikel-ReihenfolgeMarkt-Erkennung und Sortierung nach Laufweg
TechnischZeitstempel, Lösch-Markierungen, App-Schlüssel im Request-HeaderKonfliktauflö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

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-Richter
Augustusburger Str. 400, 09127 Chemnitz, Germany
E-mail: contact@schiri.consulting

2. In short

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:

CategoryContentPurpose
HouseholdHousehold ID, join code, household nameAssign devices to the same household
MembersDevice ID, self-chosen display name, time of last activity“Devices in this household” view
ContentDishes, recipes, ingredients, categories, shopping list (incl. checked state), item tags, shopping historyCore feature: shared lists
Stores & experienceStore name, store coordinates, detection radius, learned item orderStore detection and sorting by walking route
TechnicalTimestamps, deletion markers, app key in the request headerConflict 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

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.