← Zurück zu zweitaps

Datenschutzerklärung

Diese Erklärung gilt für die Website zweitaps.com und für die App zweitaps für iPhone und Android. Sie erklärt, welche Daten wo verarbeitet werden, warum, wie lange, und welche Rechte du hast.

Kurzfassung: Ein Konto ist freiwillig. Ohne Konto bleibt dein Tagebuch auf deinem Gerät bzw. im Speicher deines Browsers, und wir haben es nicht. Mit Konto liegt eine Kopie deiner Lebensmittel, Einträge und Ziele hinter deiner E-Mail-Adresse auf unserem eigenen Server in der EU (eine gemietete Maschine bei Hetzner, Rechenzentrum Helsinki), damit sie auf allen deinen Geräten gleich sind; angemeldet wird mit einem Link per Mail, ohne Passwort (Abschnitt 5a). Nach außen geht sonst nur, was du selbst auslöst: Suchbegriffe und Barcodes an Open Food Facts, Fotos, Sprachaufnahmen und diktierte Sätze an unseren Server und die KI-Anbieter; dazu meldet die App nach jeder Barcode-Suche an unseren Server, ob der Code gefunden wurde – ohne jede Kennung (Abschnitt 6). Auf unserem Server speichern wir die Fotos nicht; auf deinem Gerät behält die App das Bild bei den Einträgen der Schätzung, bis du sie löschst, und synchronisiert wird es nicht. Wenn du magst, schreibt die App deine Einträge zusätzlich in Apple Health bzw. Health Connect auf demselben Gerät; der Schalter dafür ist aus, bis du ihn einschaltest, gelesen wird dort nichts, und zu uns gelangt davon nichts. Die Bilderkennung (Foto, Nährwerttabelle, Diktat) kaufst du über den Store; unser Server prüft nur den Kaufnachweis und speichert ihn nicht (Abschnitt 10). Im Browser (zweitaps.com/app) liegt das Tagebuch im Speicher deines Browsers; nach außen geht dasselbe wie in der App, dazu einmal am Tag vor der ersten Bilderkennung die Bot-Prüfung von Cloudflare, und die Bilderkennung kostet dort zurzeit nichts (Abschnitt 4a). Besuche zählen wir mit Google Analytics: ohne dein „Okay“ cookielos, also ohne Cookie und ohne Kennung in deinem Browser; sagst du in der Zeile unten „Okay“, kommt ein Cookie dieser Seite dazu, das wiederkehrende Besuche erkennt (bis zu 14 Monate, jederzeit widerrufbar). Sendet dein Browser „Do Not Track“ oder Global Privacy Control, laden wir Google Analytics gar nicht erst (Abschnitt 4). In der App fragen wir einmal nach deinem ersten Eintrag, ob wir messen dürfen: wie oft die App geöffnet und ob etwas eingetragen wird (Google Analytics für Firebase, Abschnitt 11a) und welche Anzeige dich hergebracht hat (TikTok, Abschnitt 11b). Ohne dein Ja läuft keine von beiden, und abschalten kannst du sie jederzeit in den Einstellungen unter „Messung“.

1. Verantwortlicher

Dmytro Boguslavskyy, Einzelunternehmer, Amsterdamer Str. 13, 13347 Berlin, Deutschland. E-Mail: hello@zweitaps.com. Ein Datenschutzbeauftragter ist nicht bestellt, weil die gesetzlichen Voraussetzungen dafür nicht vorliegen.

A. Die Website

2. Hosting und Server-Logs

Die Website wird bei Cloudflare, Inc., 101 Townsend St, San Francisco, CA 94107, USA, betrieben (Cloudflare Workers, Workers Assets und Workers AI). Wenn du die Seite aufrufst, verarbeitet Cloudflare technisch bedingt deine IP-Adresse, Zeitpunkt, aufgerufene URL, Browser- und Betriebssystemkennung sowie die Seite, von der du kommst, um die Seite auszuliefern und Angriffe abzuwehren. Unsere eigenen Protokolle enthalten Zeitpunkt, URL, Methode, Statuscode und Fehlermeldungen einer Anfrage; Cloudflare bewahrt sie wenige Tage auf (derzeit höchstens 7 Tage). Zum Schutz des Wartelisten-Formulars zählen wir Anfragen je IP-Adresse kurzzeitig im Arbeitsspeicher (höchstens zehn Minuten, nicht dauerhaft gespeichert).

Rechtsgrundlage ist Art. 6 Abs. 1 lit. f DSGVO (berechtigtes Interesse an einem sicheren, stabilen Betrieb). Cloudflare ist als Auftragsverarbeiter nach Art. 28 DSGVO vertraglich gebunden und nach dem EU-US Data Privacy Framework zertifiziert.

3. zweitaps im Browser (zweitaps.com/app)

Unter zweitaps.com/app läuft das Tagebuch als Web-App in deinem Browser. Es gilt derselbe Grundsatz wie für die App (Abschnitt 5): Ein Konto ist freiwillig. Alles, was du einträgst (Lebensmittel, Mengen, Kalorien, Zeitpunkte, Tagesziel, eigene Lebensmittel, Fotos vom Teller, Einstellungen), liegt im Speicher deines Browsers auf deinem Gerät (IndexedDB und localStorage der Seite zweitaps.com). Ohne Konto haben wir darauf keinen Zugriff, und wir gleichen nichts davon mit unseren Servern ab. Etwas anderes ist die Bilderkennung: Das Foto vom Teller, die Nährwerttabelle und der diktierte oder getippte Satz gehen an unseren Server und weiter an den KI-Anbieter (Abschnitt 7). Mit Konto gleicht die Seite Lebensmittel, Einträge und Ziele mit unserem Server ab (Abschnitt 5a); die Fotos bleiben auch dann im Browser.

Der Browser kann diesen Speicher nach seinen eigenen Regeln aufräumen. Safari löscht die Daten einer Seite, wenn du sieben Tage lang in Safari unterwegs bist, ohne die Seite zu besuchen; für eine Seite auf dem Home-Bildschirm gilt das nicht. Darauf weist die Seite nach dem ersten Eintrag mit einer Karte auf „Heute“ hin, nach „Später“ noch einmal nach sieben Tagen, auf dem Home-Bildschirm gar nicht. Außerdem bittet die Seite den Browser nach dem ersten Eintrag, den Speicher zu behalten (navigator.storage.persist); das läuft ohne Abfrage. Die Seite selbst, ihr Code und der Produktkatalog (Abschnitt 6) werden beim ersten Aufruf in den Cache deines Browsers geladen, damit Tagebuch, Suche und Barcode-Eingabe ohne Verbindung funktionieren.

Was den Browser verlässt, und wann:

  • Beim Aufruf und bei jedem Start: Seite, Code und Katalog kommen von Cloudflare (Hosting und Server-Logs wie in Abschnitt 2).
  • Suche und Barcode: erst in deinen Lebensmitteln und im Katalog auf dem Gerät. Was dort nicht ist, geht als Suchbegriff bzw. Barcode direkt aus deinem Browser an Open Food Facts (Abschnitt 6), ohne Absenderkennung. Produktbilder lädt der Browser von images.openfoodfacts.org.
  • Bilderkennung (Foto vom Teller, Nährwerttabelle, diktierter oder getippter Satz): an unseren Server und weiter an den KI-Anbieter, genau wie in der App (Abschnitt 7). Im Browser kostet sie zurzeit nichts.
  • Vor der ersten Bilderkennung eines Tages: die Prüfung, ob ein Mensch dahintersteht, bei Cloudflare (nächster Absatz).
  • Nur mit Konto: beim Anmelden deine E-Mail-Adresse, danach deine Lebensmittel, Einträge und Ziele an unseren Server (Abschnitt 5a).
  • Bei jedem Seitenaufruf: der Zählimpuls an Google Analytics (Abschnitt 4) – ohne dein „Okay“ cookielos –, außer dein Browser sendet „Do Not Track“ oder Global Privacy Control.

Sonst nichts. Keine Werbung, und außer dem Analytics-Cookie nach deinem „Okay“ (Abschnitt 4) kein Cookie.

Prüfung, ob ein Mensch dahintersteht: Weil die Web-App keinen Kauf und keinen App-Schlüssel hat, prüft die Seite vor der ersten Bilderkennung eines Tages einmal, ob ein Mensch dahintersteht. Sie lädt dafür das Widget Cloudflare Turnstile von challenges.cloudflare.com. Cloudflare verarbeitet dabei deine IP-Adresse, Merkmale deines Browsers und die Interaktion mit dem Widget, um automatisierte Anfragen zu erkennen, und kann dafür ein Cookie unter challenges.cloudflare.com setzen; über den Inhalt deines Tagebuchs erfährt Cloudflare dabei nichts. Das Ergebnis der Prüfung tauscht die Seite bei unserem Server (api.zweitaps.com) gegen ein Sitzungs-Token, das 24 Stunden gilt und danach still, wieder mit der Prüfung, erneuert wird. Dazu gehört eine zufällige Gerätekennung: Unser Server erzeugt sie beim ersten Mal, die Seite bewahrt sie zusammen mit dem Token im localStorage deines Browsers auf, schickt sie bei jeder Erneuerung mit, und bei jeder Bilderkennungs-Anfrage steckt sie im Token. Sie dient wie in der App nur dem Tageszähler: je Kennung, Art (Foto, Nährwerttabelle, Satz) und Tag höchstens 30 Anfragen, gezählt bei Cloudflare (Workers KV), die Zähler löschen sich nach 48 Stunden. In unseren Protokollen (höchstens 7 Tage, Abschnitt 2) stehen beim Ausstellen des Tokens die ersten acht Zeichen der Kennung, das Ergebnis der Prüfung, der Hostname der Seite und die Ablaufzeit, weder das Token noch das Prüfergebnis von Cloudflare selbst; die Protokolle der Bilderkennung sind dieselben wie in Abschnitt 7. Die Kennung ist mit keinem Namen und keiner E-Mail-Adresse verknüpft; wir können sie keiner Person zuordnen. „Alle Daten löschen“ in den Einstellungen entfernt Token und Kennung mit, beim nächsten Mal entsteht eine neue. Rechtsgrundlage: Art. 6 Abs. 1 lit. f DSGVO (Schutz des Servers vor automatisiertem Missbrauch) für die Prüfung, Art. 6 Abs. 1 lit. b DSGVO für die Bilderkennung selbst. Datenschutzhinweise von Cloudflare: cloudflare.com/privacypolicy.

Diktieren nutzt die Spracherkennung deines Browsers (Web Speech API), soweit er sie anbietet. Was mit dem gesprochenen Ton passiert, richtet sich nach deinem Browser und dessen Anbieter (Apple bei Safari, Google bei Chrome); die Seite bekommt nur den erkannten Text und schickt ihn, wenn er wie ein Satz über eine Mahlzeit aussieht, an die Bilderkennung (Abschnitt 7).

Löschen: „Alle Daten löschen“ in den Einstellungen der Web-App, oder die Website-Daten von zweitaps.com in deinem Browser löschen; Schritt für Schritt auf zweitaps.com/daten-loeschen. Sichern: „Sicherung als Datei speichern“ erzeugt eine JSON-Datei mit Lebensmitteln und Einträgen auf deinem Gerät; wir erhalten davon nichts.

B. Die App

5. Grundsatz: Ohne Konto bleiben deine Daten auf dem Gerät

Die App braucht kein Konto. Alles, was du einträgst (Lebensmittel, Mengen, Kalorien, Zeitpunkte, dein Tagesziel, die „Zuletzt“-Liste, eigene Lebensmittel, Fotos vom Teller, Einstellungen), wird im Speicher der App auf deinem Gerät abgelegt. Ohne Konto haben wir darauf keinen Zugriff, und wir gleichen nichts davon mit unseren Servern ab. Etwas anderes ist die Bilderkennung: Das Foto vom Teller, die Nährwerttabelle und der diktierte oder getippte Satz gehen an unseren Server und weiter an den KI-Anbieter (Abschnitt 7). Legst du in den Einstellungen ein Konto an, liegt zusätzlich eine Kopie deiner Lebensmittel, Einträge und Ziele auf unserem Server, damit sie auf allen deinen Geräten gleich sind (Abschnitt 5a); Fotos, die „Zuletzt“-Liste und die Einstellungen des Geräts bleiben auch dann nur auf dem Gerät. Eine Ausnahme vom Speicher der App gibt es auf dem Gerät selbst: Schaltest du den Schalter in den Einstellungen ein, schreibt die App jeden Eintrag zusätzlich in Apple Health bzw. Health Connect (Abschnitt 8). Auch das bleibt auf deinem Gerät. Ob deine App-Daten in der Gerätesicherung (iCloud, Google) landen, hängt von den Einstellungen deines Geräts ab und läuft zwischen dir und Apple bzw. Google.

Löschen: Einträge löschst du in der App; alles auf einmal löschst du mit „Alle Daten löschen“ in den Einstellungen oder indem du die App deinstallierst. Was der Health-Schalter nach außen geschrieben hat, folgt eigenen Regeln, siehe Abschnitt 8. Ohne Konto können wir nichts wiederherstellen, weil wir nichts haben; mit Konto holt sich ein neues Gerät die Kopie vom Server, sobald du dich dort anmeldest.

5a. Konto und Synchronisierung

Ein Konto ist freiwillig und in den Einstellungen der App und der Browser-Version anzulegen: Du gibst deine E-Mail-Adresse ein, wir schicken dir eine Mail mit einem Link und einem sechsstelligen Code, du öffnest den Link (oder tippst den Code ein), fertig. Ein Passwort gibt es nicht. Link und Code gelten 15 Minuten und nur einmal; wir speichern beide nur als Prüfsumme (SHA-256), und nach dem sechsten falschen Code ist der Link ungültig. Sobald ein Link abgelaufen ist, löschen wir innerhalb einer Minute deine Adresse, die Prüfsumme des Codes und die Kennung der Mail aus dieser Zeile; übrig bleibt für 30 Tage nur die Prüfsumme des Links, damit ein später geöffneter Link sagen kann, dass er abgelaufen ist, und nicht bloß „ungültig“. Danach ist auch sie weg. Damit niemand dein Postfach mit Mails flutet, zählen wir Link-Anfragen zweifach: höchstens drei je E-Mail-Adresse in 15 Minuten und höchstens zehn je IP-Adresse in einer Stunde. Beide Zähler enthalten Adresse bzw. IP-Adresse nur als Prüfsumme (SHA-256), nie im Klartext. Der Zähler je E-Mail-Adresse steht in derselben Datenbank auf unserem Server; ein Auftrag dort löscht abgelaufene Zähler jede Minute. Der Zähler je IP-Adresse steht bei Cloudflare (Workers KV), weil nur die Weiterleitung dort deine echte IP-Adresse sieht; er löscht sich spätestens zwei Stunden nach der letzten Anfrage von selbst.

Die Mail versendet für uns Resend, Inc., 2261 Market Street #5039, San Francisco, CA 94114, USA, über Server in der EU (Region Irland), als Auftragsverarbeiter nach Art. 28 DSGVO. Resend sieht dabei deine Adresse, den Betreff und den Inhalt der Mail (Link und Code) und behält nach eigenen Regeln kurzzeitig ein Zustellprotokoll; wir schicken keine anderen Mails über diesen Weg, keinen Newsletter und nichts mit Tracking. Absender ist hello@zweitaps.com.

Was mit Konto auf unserem Server liegt: deine E-Mail-Adresse und der Zeitpunkt der Kontoerstellung; je Anmeldung eine Sitzung mit Plattform (iPhone, Android, Browser), dem Gerätenamen, den die App mitschickt (etwa „iPhone von Anna“ oder „Chrome auf Android“), dem Zeitpunkt der Anmeldung und dem der letzten Nutzung (höchstens einmal je Stunde aktualisiert); deine Lebensmittel (Name, Marke, Nährwerte je 100 g, Portionsgröße, Barcode, die Adresse des Produktbilds bei Open Food Facts, wie oft und wann zuletzt verwendet); deine Einträge (Datum, Mahlzeit, Lebensmittel, Gramm, Kalorien, Zeitpunkt) und deine Ziele (Tagesziel und Nährstoff-Ziele). Nicht auf dem Server: die Fotos vom Teller, was in Apple Health bzw. Health Connect steht, der Kaufnachweis der Bilderkennung. Jede Zeile trägt eine zufällige Kennung und einen Zeitstempel der letzten Änderung; damit gleicht der Server die Geräte ab (die jüngere Änderung gewinnt), merkt sich, welche Sitzung eine Änderung geschrieben hat, und markiert Gelöschtes zunächst nur, damit es auch auf deinen anderen Geräten verschwindet; endgültig entfernt wird es nach 90 Tagen.

Wo: Konto, Anmeldungen und die Kopie deiner Daten liegen auf einem Server, den wir selbst betreiben – eine gemietete Maschine bei der Hetzner Online GmbH, Industriestr. 25, 91710 Gunzenhausen, Deutschland, in deren Rechenzentrum in Helsinki (Finnland), also in der EU. Die Datenbank ist eine Datei auf dieser Maschine (SQLite). Hetzner stellt Maschine und Rechenzentrum und ist dafür unser Auftragsverarbeiter nach Art. 28 DSGVO. App und Browser-Version sprechen weiterhin nur mit api.zweitaps.com: Das ist unser Cloudflare Worker, der die Konto- und Synchronisierungs-Anfragen an diesen Server weiterreicht und wie bisher als Schutzschicht davor steht (Abschnitt 2). Bei Cloudflare liegen deine Konto-Daten nicht, sie gehen dort nur durch; das Einzige, was dort bleibt, ist der Zähler für Link-Anfragen mit der Prüfsumme deiner IP-Adresse (oben).

Sicherung: Damit ein Fehler dein Konto nicht mitnimmt, schreibt Litestream jede Änderung der Datenbank laufend in eine zweite Kopie. Diese Kopie liegt auf derselben Maschine in Helsinki, in einem Verzeichnis, das nur Konten mit Verwaltungsrechten auf dieser Maschine öffnen können – also im selben Zugriffsbereich wie die Datenbank selbst –, und ist nicht zusätzlich verschlüsselt; ältere Stände bleiben dort höchstens 30 Tage. Damit auch der Verlust der Maschine dein Konto nicht mitnimmt, holen wir einmal pro Nacht eine vollständige, gepackte Kopie der Datenbank über eine verschlüsselte Verbindung (SSH) auf den Rechner des Verantwortlichen in Berlin; dort liegt sie auf einer verschlüsselten Festplatte und wird nach 30 Tagen gelöscht. Beide Kopien enthalten dasselbe wie die Datenbank und nichts darüber hinaus. An einen anderen Anbieter, in eine Cloud oder in ein Rechenzentrum außerhalb der EU geht keine Sicherung.

Protokolle: Auf unserem Server schreiben zwei Stellen mit. Der Webserver davor (Caddy) hält je Anfrage eine Zeile mit Zeitpunkt, Methode und Route, Statuscode, Dauer und Größe der Antwort, dazu die Adresse, von der die Anfrage bei ihm ankommt – das ist der Cloudflare-Knoten, der sie weiterreicht, nicht dein Gerät. Deine eigene IP-Adresse steht seit dem 08.09.2026 nicht mehr in dieser Zeile, und die Kopfzeilen der Anfrage stehen gar nicht mehr darin: weder die Kennung deines Browsers bzw. deiner App (User-Agent) noch die IP-Adresse, die Cloudflare in einer Kopfzeile mitschickt. Diese Zeilen halten wir höchstens sieben Tage. Der Konto-Dienst selbst schreibt eine kürzere Zeile ohne IP-Adresse: Zeitpunkt, Route, Statuscode, Plattform, die Zahl der abgeglichenen Zeilen und die ersten acht Zeichen der Prüfsumme deiner E-Mail-Adresse; dieses Protokoll läuft nicht nach Zeit um, sondern nach Größe (höchstens 50 MB, dann werden die ältesten Zeilen gelöscht). In keinem von beiden stehen der Link, der Code oder dein Sitzungs-Token, und kein Inhalt deines Tagebuchs. Bei Cloudflare, wo die Anfrage vorbeikommt, gelten die 7 Tage aus Abschnitt 2. Das Sitzungs-Token, mit dem sich dein Gerät ausweist, liegt nur auf dem Gerät (Schlüsselbund bzw. localStorage) und bei uns als Prüfsumme; es gilt, bis du dich abmeldest oder das Konto löschst. Was Konto-Ereignisse an Google Analytics melden, steht in Abschnitt 4.

Wann synchronisiert wird: beim Öffnen der App, kurz nach jeder Änderung, vor einem Export und wenn du „Jetzt synchronisieren“ tippst. Ohne Verbindung arbeitet die App weiter und schickt die Änderungen beim nächsten Mal. Beim ersten Anmelden auf einem Gerät, das schon Einträge hat, werden diese an das Konto gebunden und mit dem Server zusammengeführt.

Abmelden und Löschen: „Abmelden“ beendet die Sitzung auf diesem Gerät und löscht das Tagebuch dort — Einträge, Lebensmittel und die Fotos vom Teller. Die Kopie im Konto bleibt, und beim nächsten Anmelden kommen Einträge und Lebensmittel von dort zurück; die Fotos nicht, weil sie nie hochgeladen werden. „Konto löschen“ in den Einstellungen löscht sofort und endgültig dein Konto, alle Sitzungen und die Kopie deiner Daten auf unserem Server; was auf deinen Geräten liegt, bleibt dort. Ohne Zugang zur App oder zum Postfach: Mail an hello@zweitaps.com, siehe zweitaps.com/daten-loeschen. Wie lange: bis du das Konto löschst; Links und Codes 15 Minuten; gelöschte Zeilen 90 Tage als Markierung.

Rechtsgrundlage: Art. 6 Abs. 1 lit. b DSGVO (das Konto und der Abgleich sind Funktionen, die du gezielt einschaltest).

6. Lebensmittelsuche und Barcode (Open Food Facts)

Wenn du ein Lebensmittel suchst oder einen Barcode scannst, schickt die App den Suchbegriff bzw. den Barcode direkt von deinem Gerät an die freie Lebensmitteldatenbank Open Food Facts (Open Food Facts, association loi 1901, 21 rue des Iles, 94100 Saint-Maur-des-Fossés, Frankreich). Technisch bedingt sieht Open Food Facts dabei deine IP-Adresse und eine Kennung, die die App als Absender ausweist. Wir senden keinen Namen, keine Kennung und keine Tagebuchdaten mit, und Open Food Facts erfährt nicht, was du davon einträgst. Die Datenschutzhinweise von Open Food Facts findest du unter world.openfoodfacts.org/privacy. Gefundene Produkte werden in der App lokal zwischengespeichert, damit die „Zuletzt“-Liste ohne Verbindung funktioniert.

Die Produktdaten stehen unter der Open Database License (ODbL) und werden in der App als Daten von Open Food Facts gekennzeichnet. Rechtsgrundlage für die Übermittlung: Art. 6 Abs. 1 lit. b DSGVO (die Suche ist eine Funktion, die du gezielt auslöst).

Ob ein Barcode gefunden wurde, melden App und Browser an unseren Server (api.zweitaps.com, weitergereicht an unseren Server in Helsinki): nach jeder abgeschlossenen Suche eine Zeile mit dem Barcode, dem Ausgang (auf dem Gerät gefunden, bei Open Food Facts gefunden oder nirgends gefunden), der Plattform (iOS, Android, Browser) und dem Markt (DE, AT, CH oder keiner) – und sonst nichts: keine Kennung, keine Sitzung, kein Konto, kein Name eines Lebensmittels, kein Tagebucheintrag und keine Uhrzeit. Cloudflare sieht dabei technisch bedingt deine IP-Adresse (Abschnitt 2); an unseren eigenen Server wird sie nicht weitergegeben, und gespeichert wird sie nirgends. Bei uns bleiben nur Tageszähler je Ausgang und – allein für Barcodes, die nirgends gefunden wurden – der Barcode selbst mit der Zahl der Versuche und dem Tag des ersten und letzten Mals, damit wir fehlende Produkte nachtragen können. Barcodes, die gefunden wurden, speichern wir nicht. Ein Konto brauchen wir dafür nicht und benutzen auch keins; auf dich zurückführen lässt sich die Meldung nicht. Rechtsgrundlage: Art. 6 Abs. 1 lit. f DSGVO (berechtigtes Interesse daran zu erkennen, welche Produkte in der App fehlen).

Wenn du der Reichweitenmessung zustimmst, meldet die Web-Version beim Öffnen einmal am Tag, dass sie geöffnet wurde: eine Zufallskennung aus dem Speicher deines Browsers, der Tag und die Plattform – und sonst nichts. Kein Konto, keine Sitzung, kein Eintrag, keine Uhrzeit. Daraus sehen wir, wie viele Geräte neu sind und wie viele wiederkommen, mehr nicht. Ohne deine Zustimmung wird die Kennung nicht angelegt und nichts gemeldet; nimmst du die Zustimmung zurück, löschen wir sie in deinem Browser. Rechtsgrundlage: § 25 Abs. 1 TDDDG und Art. 6 Abs. 1 lit. a DSGVO (Einwilligung).

7. Bilderkennung: Foto vom Teller, Nährwerttabelle, Diktat

Wenn du einen Teller fotografierst oder ein vorhandenes Bild aus deiner Mediathek wählst, um eine Schätzung zu bekommen, schickt die App das Foto (verkleinert auf höchstens 1024 Pixel Kantenlänge), einen optionalen Hinweistext, den du eintippst, und die App-Sprache an unseren Server. Der Server ist ein Cloudflare Worker (api.zweitaps.com). Er leitet Foto und Hinweis an unseren KI-Anbieter Anthropic, PBC, 548 Market St, San Francisco, CA 94104, USA, weiter, dessen Modell die Speisen erkennt und Menge und Nährwerte schätzt. Das Ergebnis kommt zurück in die App, wo du es korrigierst oder verwirfst. Für „Aus Mediathek“ öffnet die App die Fotoauswahl deines Systems und bekommt nur das eine Bild, das du aussuchst; auf deine übrige Mediathek hat sie keinen Zugriff.

Denselben Weg gehen das Foto einer Nährwerttabelle (verkleinert auf höchstens 1600 Pixel Kantenlänge; die gelesenen Werte landen im Formular, dieses Bild behält die App nicht) und ein Satz, den du ins Suchfeld diktierst oder tippst, etwa „zwei Brötchen mit Käse“. Diktierst du, nimmt die App den Ton auf, solange du sprichst (höchstens 45 Sekunden), und schickt die Aufnahme an unseren Server; dort wandelt ein Spracherkennungsmodell (Whisper, ausgeführt bei Cloudflare, Workers AI) sie in Text um – in der Sprache, die du gesprochen hast. Die Aufnahme wird weder bei uns noch bei Cloudflare gespeichert; zurück kommt nur der Text, und der steht im Suchfeld, wo du ihn änderst oder verwirfst. Ein einzelnes Wort geht nicht an den KI-Anbieter, sondern in die Suche.

Auf unserem Server speichern wir das Foto nicht. Es wird im Arbeitsspeicher verarbeitet und nach der Antwort verworfen; unsere Protokolle enthalten Zeitpunkt, Statuscode, Antwortzeit, Fehlercode, die Zahl der geschätzten Zeilen und die ersten acht Zeichen der Gerätekennung, nicht das Bild und nicht den Satz. Anthropic verarbeitet Foto und Satz in unserem Auftrag als Auftragsverarbeiter, nutzt es nicht zum Training seiner Modelle und bewahrt Eingaben nach eigenen Angaben nur kurzzeitig (bis zu 30 Tage) zur Missbrauchskontrolle auf.

Auf deinem Gerät bleibt das Foto: Trägst du die Schätzung ein, legt die App das verkleinerte Bild zu den Einträgen dieser Schätzung in ihren Speicher, damit du später siehst, woher die Zahlen kommen. Diese Kopie verlässt dein Gerät nicht, und wir haben keinen Zugriff darauf. Sie wird gelöscht, sobald du den letzten Eintrag löschst, der zu ihr gehört, außerdem mit „Alle Daten löschen“ und mit dem Deinstallieren der App.

Gerätekennung: Beim ersten Start erzeugt die App eine zufällige Kennung (UUID) und schickt sie bei jeder Anfrage an die Bilderkennung und bei der Kaufprüfung (Abschnitt 10) mit. Sie dient dazu, die Zahl der Anfragen je Gerät und Tag zu begrenzen (als Zähler 48 Stunden bei Cloudflare, Workers KV) und das Freischalt-Token an dein Gerät zu binden. Die Kennung ist mit keinem Namen und keiner E-Mail-Adresse verknüpft; bei der Kaufprüfung steht sie neben der Transaktionsnummer des Stores. Wir können sie keiner Person zuordnen. Nach einer Neuinstallation entsteht eine neue Kennung.

Die Schätzung wird von einem KI-Modell erzeugt und von keinem Menschen geprüft. Sie ist eine Schätzung, keine Messung. Schick nur Bilder vom Essen; Fotos, auf denen Personen zu sehen sind, solltest du weder aufnehmen noch auswählen.

Rechtsgrundlage: Art. 6 Abs. 1 lit. b DSGVO (Funktion, die du gezielt auslöst). Zur Übermittlung in die USA siehe Abschnitt 13.

8. Apple Health und Health Connect

In den Einstellungen der App gibt es einen Schalter, der deine Einträge zusätzlich in Apple Health (iPhone) bzw. in Health Connect (Android) schreibt. Er ist aus. Solange er aus ist, passiert nichts davon.

Schaltest du ihn ein, fragt dich dein System um Erlaubnis. Erlaubst du es, schreibt die App die Einträge der letzten 30 Tage in einem Rutsch dorthin und danach jeden neuen Eintrag, sobald du ihn speicherst. Ein Eintrag steht dort als Mahlzeit mit Datum und Uhrzeit, dem Namen des Lebensmittels, den Kalorien und, soweit das Lebensmittel sie hat und du den jeweiligen Wert in der Abfrage deines Systems erlaubt hast, Eiweiß, Kohlenhydraten und Fett; auf dem iPhone kannst du dort jeden Wert einzeln erlauben oder ablehnen, und was du ablehnst, schreibt die App auch nicht. Auf Android steht zusätzlich die Mahlzeit dabei (Frühstück, Mittag, Snack, Abend). Trägst du etwas für einen vergangenen Tag nach, steht es dort zur üblichen Zeit dieser Mahlzeit an jenem Tag. Jeder Eintrag trägt eine Kennung aus seiner Nummer in der App, damit eine Änderung den alten Stand ersetzt und ein in der App gelöschter Eintrag auch dort verschwindet.

Gelesen wird nichts. Die App bittet nur um die Erlaubnis zu schreiben; sie sieht weder dein Gewicht noch deine Schritte noch sonst etwas, was in Health bzw. Health Connect steht, und auch nichts, was eine andere App dort abgelegt hat.

Zu uns gelangt davon nichts. Der Weg geht von der App in den Gesundheitsspeicher deines Geräts und nicht über unseren Server; wir haben auf diese Daten keinen Zugriff und erfahren nicht einmal, ob der Schalter an ist. Apple bzw. Google sind dafür nicht unsere Auftragsverarbeiter, weil diese Daten uns nie erreichen. Was danach dort mit ihnen geschieht – ob sie etwa in deine Gerätesicherung wandern und welche andere App du dafür freischaltest –, läuft zwischen dir und Apple bzw. Google.

Ausschalten: Der Schalter stoppt das Schreiben sofort. Was schon in Health bzw. Health Connect steht, bleibt dort stehen; wir können es nicht wegnehmen. Du löschst es in der Health-App bzw. in Health Connect selbst, dort bei den Daten von zweitaps. „Alle Daten löschen“ in den Einstellungen der App räumt auch dort auf, solange die Schreib-Erlaubnis noch gilt. Nimmst du die Erlaubnis in den Systemeinstellungen zurück, schreibt die App nichts mehr dorthin.

Rechtsgrundlage: Art. 6 Abs. 1 lit. a DSGVO (Einwilligung durch das Einschalten des Schalters, jederzeit widerrufbar durch Ausschalten).

9. CSV-Export

Du kannst deine Einträge jederzeit als CSV-Datei exportieren. Die App erzeugt die Datei auf deinem Gerät und übergibt sie an das Teilen-Menü deines Systems; du entscheidest, wo sie landet (Dateien, Mail, AirDrop, Drive). Wir erhalten davon nichts.

In der Datei stehen Datum, Mahlzeit, Name, Marke, Gramm, Kalorien, Eiweiß, Kohlenhydrate, Fett, Barcode und der Zeitpunkt der Erfassung. Die Fotos vom Teller sind nicht darin: Die CSV hat keine Spalte dafür, und die Bilder liegen weiter im Speicher der App (Abschnitt 7). Einen Export der Bilder gibt es zurzeit nicht.

10. App Stores, Kauf und Kaufprüfung

Download und Kauf laufen über den Apple App Store (Apple Distribution International Ltd., Hollyhill Industrial Estate, Cork, Irland) bzw. Google Play (Google Ireland Ltd., Gordon House, Barrow Street, Dublin 4, Irland). Auf dem iPhone kaufst du Guthaben für die Bilderkennung, auf Android bis zur Umstellung noch ein Abo oder einen Einmalkauf. Zahlung, Beleg, Probezeit, Verlängerung, Kündigung und eine etwaige Erstattung wickelt der Store ab; wir sehen keine Zahlungsdaten und keinen Namen, nur zusammengefasste Verkaufszahlen.

Guthaben auf dem iPhone: Kaufst du Guthaben, schickt die App die von Apple signierte Transaktion zusammen mit der Gerätekennung (Abschnitt 7) an unseren Server (api.zweitaps.com). Der Server prüft die Signatur gegen Apples Wurzelzertifikat, ohne Rückfrage bei Apple, und schreibt das Guthaben gut. Anders als beim Abo speichern wir hier etwas dauerhaft, sonst wäre ein Guthaben nicht führbar: die Gerätekennung mit dem aktuellen Stand, und je eingelöstem Kauf die Transaktionsnummer des Stores, die Produktkennung, die Zahl der Bilder und den Zeitpunkt. Die Transaktionsnummer brauchen wir, damit dieselbe Quittung nicht zweimal gutgeschrieben wird. Die Quittung selbst speichern wir nicht; sie wird im Arbeitsspeicher geprüft und danach verworfen. Meldest du dich an, hängen wir das Guthaben zusätzlich an deine Konto-Kennung, damit es eine Neuinstallation übersteht; „Konto löschen“ löscht diese Verknüpfung und den Stand mit. Namen, E-Mail-Adresse oder Zahlungsdaten stehen in keiner dieser Zeilen. Rechtsgrundlage: Art. 6 Abs. 1 lit. b DSGVO (Erfüllung des Kaufs).

Abo auf Android: Damit die App weiß, dass die Bilderkennung freigeschaltet ist, schickt sie das Kauf-Token von Google Play zusammen mit der Gerätekennung an unseren Server. Der Server fragt bei Google Play, ob der Kauf gültig ist, und antwortet mit einem Freischalt-Token. Das Token gilt höchstens 24 Stunden, bei einem Abo höchstens bis zu dessen Ende, und wird von der App still erneuert; es liegt nur auf deinem Gerät. Den Kaufnachweis speichern wir nicht: Er wird im Arbeitsspeicher geprüft und nach der Antwort verworfen. In unseren Protokollen (höchstens 7 Tage, Abschnitt 2) stehen die ersten acht Zeichen der Gerätekennung, die Plattform, der gewählte Tarif, das Ergebnis und die Bestellnummer des Stores, weder der Nachweis noch das Token. Ein Konto bei uns entsteht dabei nicht; der Kauf bleibt in deinem Store-Konto, und „Käufe wiederherstellen“ in der App holt ihn von dort zurück.

Rechtsgrundlage: Art. 6 Abs. 1 lit. b DSGVO (die Prüfung ist nötig, um den Kauf in der App freizuschalten). Absturzberichte und Nutzungsstatistiken erhalten wir nur in der anonymisierten Form, die Apple bzw. Google bereitstellen, und nur, wenn du das in den Einstellungen deines Geräts erlaubt hast. Es gelten die Datenschutzhinweise der Stores.

11. Messung in der App

Die App fragt einmal, nach deinem ersten Eintrag, ob wir messen dürfen. Sagst du ja, laufen zwei Messungen; sagst du nein, läuft keine davon. Beide schaltest du jederzeit in den Einstellungen der App unter „Messung“ wieder ab.

11a. Nutzungsstatistik (Google Analytics für Firebase)

Seit Version 1.1.1 liegt Google Analytics für Firebase in der App. Damit sehen wir, ob die App im Alltag ankommt: wie oft sie geöffnet wird, ob nach der Installation noch einmal etwas eingetragen wird und in welcher Fassung und auf welchem Gerätetyp das passiert. Übermittelt werden eine zufällige Kennung der App-Installation („App Instance ID“), Angaben zu Gerät, Betriebssystem, App-Fassung und ungefährem Ort (Land), dazu die Ereignisse „App geöffnet“, „erste Öffnung“, „Sitzung“ und „Eintrag gemacht“. Nicht übermittelt werden dein Name, deine E-Mail-Adresse und nichts aus deinem Tagebuch – weder Lebensmittel noch Mengen, Kalorien oder Fotos. Eine Werbekennung (IDFA) benutzt diese Messung nicht, und personalisierte Werbung ist abgeschaltet.

Empfänger ist Google Ireland Limited, Gordon House, Barrow Street, Dublin 4, Irland, mit Weitergabe an Google LLC in den USA (Abschnitt 13). Rechtsgrundlage: deine Einwilligung, Art. 6 Abs. 1 lit. a DSGVO; für das Ablegen und Auslesen der Kennung auf deinem Gerät § 25 Abs. 1 TDDDG. Vor deiner Einwilligung sammelt das SDK nichts: es wird beim Start nur bereitgelegt und zählt erst, wenn du zugestimmt hast.

11b. Messung für Anzeigen (TikTok)

Wir schalten Anzeigen auf TikTok. Damit wir sehen, welche Anzeige zu einer Installation geführt hat, liegt seit Version 1.1 das TikTok App Events SDK in der App. Es meldet an TikTok, dass die App nach einer Anzeige installiert und geöffnet wurde.

Das SDK startet erst, wenn du zugestimmt hast — bei uns beim ersten Start, und zusätzlich über die Abfrage von iOS („App-Tracking-Transparenz“).

Übermittelt werden dann die Werbekennung deines Geräts (IDFA), deine IP-Adresse, Angaben zu Gerät und App-Fassung sowie Installation und Start der App. Empfänger ist TikTok Technology Limited, 10 Earlsfort Terrace, Dublin 2, D02 T380, Irland, mit Weitergabe im TikTok-Konzern auch außerhalb der EU (Abschnitt 13). Rechtsgrundlage: deine Einwilligung, Art. 6 Abs. 1 lit. a DSGVO; für das Ablegen und Auslesen der Kennung auf deinem Gerät § 25 Abs. 1 TDDDG.

Widerrufen kannst du jederzeit in den Einstellungen der App unter „Messung“, und die iOS-Abfrage in den iOS-Einstellungen unter Datenschutz & Sicherheit › Tracking.

Zusätzlich meldet Apples SKAdNetwork an TikTok, dass eine Installation auf eine Anzeige folgte. Diese Meldung läuft zwischen Apple und TikTok und ist so gebaut, dass sie sich keiner Person zuordnen lässt.

Nach außen verbindet sich die App mit Open Food Facts (Abschnitt 6), mit unserem Server für Bilderkennung, Kaufprüfung und Konto (Abschnitte 5a, 7 und 10), mit dem Store für Updates und Käufe und, nach deiner Einwilligung, mit TikTok.

C. Für Website und App

12. Empfänger

  • Cloudflare, Inc. (USA): Hosting der Website, Server für Bilderkennung und Kaufprüfung (Workers), Weiterleitung der Konto- und Synchronisierungs-Anfragen an unseren Server samt dem Zähler der Link-Anfragen je IP-Adresse (KV, nur als Prüfsumme; Abschnitt 5a), Tageszähler der Bilderkennung (KV), Weiterleitung der Barcode-Meldungen (Abschnitt 6) und das Prüf-Widget Turnstile in „zweitaps im Browser“ (Abschnitt 4a). Auftragsverarbeiter, Vertrag nach Art. 28 DSGVO.
  • Hetzner Online GmbH (Deutschland, Rechenzentrum in Helsinki/Finnland): Server für Konto und Synchronisierung samt Datenbank (Abschnitt 5a). Auftragsverarbeiter, Vertrag nach Art. 28 DSGVO.
  • Resend, Inc. (USA, Versand über Server in der EU): Versand der Anmelde-Mail mit Link und Code (Abschnitt 5a). Auftragsverarbeiter, Vertrag nach Art. 28 DSGVO.
  • Google Ireland Ltd. (Irland): Google Analytics 4 für die Reichweitenmessung der Website, der Browser-Version und der Konto-Ereignisse (Abschnitt 4) sowie, nach deiner Einwilligung, Google Analytics für Firebase in der App (Abschnitt 11a). Auftragsverarbeiter, Vertrag nach Art. 28 DSGVO.
  • Anthropic, PBC (USA): Schätzung bei Foto, Nährwerttabelle und Diktat. Auftragsverarbeiter, Vertrag nach Art. 28 DSGVO.
  • Open Food Facts (Frankreich): erhält Suchbegriffe und Barcodes direkt von deinem Gerät. Eigener Verantwortlicher, kein Auftragsverarbeiter.
  • Apple und Google (Irland): Vertrieb, Guthabenkauf bzw. Abo und Einmalkauf, Updates; Google beantwortet außerdem die Anfrage unseres Servers, ob ein Play-Kauf gültig ist. Eigene Verantwortliche.
  • TikTok Technology Limited (Irland): Messung, welche Anzeige zu einer Installation geführt hat, nach deiner Einwilligung (Abschnitt 11). Eigener Verantwortlicher.

Apple Health und Health Connect stehen nicht in dieser Liste: Was die App dorthin schreibt, bleibt auf deinem Gerät und geht nicht durch unsere Hände. Wir geben diese Daten also niemandem weiter, und Apple bzw. Google sind dafür nicht unsere Auftragsverarbeiter (Abschnitt 8).

Wir verkaufen keine Daten und geben sie sonst niemandem weiter, außer wir sind gesetzlich dazu verpflichtet.

13. Übermittlung in Drittländer

Cloudflare, Anthropic, Google und Resend verarbeiten Daten auch in den USA; TikTok gibt die Daten aus Abschnitt 11 im Konzern auch außerhalb der EU weiter. Der Konto-Server samt Datenbank steht in der EU (Hetzner, Helsinki), die Wartelisten-Datenbank liegt in der EU, Resend versendet über Server in der EU, aber die Auslieferung der Website, die Weiterleitung der Konto-Anfragen über Cloudflare, die Fotofunktion und die Reichweitenmessung laufen auch über Server außerhalb der EU. Die Sicherungen der Konto-Datenbank verlassen die EU nicht und gehen an keinen Anbieter: die laufende Kopie liegt auf derselben Maschine in Helsinki, die nächtliche auf dem Rechner des Verantwortlichen in Berlin (Abschnitt 5a). Die Übermittlung stützt sich auf das EU-US Data Privacy Framework, soweit der Anbieter dort zertifiziert ist (Cloudflare und Google LLC sind es), andernfalls auf die Standardvertragsklauseln der EU-Kommission (Art. 46 Abs. 2 lit. c DSGVO).

14. Speicherdauer im Überblick

  • Konto (E-Mail-Adresse, Sitzungen, Kopie von Lebensmitteln, Einträgen und Zielen): bis du das Konto löschst, dann sofort; Anmelde-Link und Code 15 Minuten, danach bleibt nur die Prüfsumme des Links 30 Tage; als gelöscht markierte Zeilen 90 Tage, gerechnet ab dem Zeitpunkt, an dem die Löschung bei uns ankommt; Zähler für Link-Anfragen (nur Prüfsummen): je E-Mail-Adresse 15 Minuten auf unserem Server, je IP-Adresse höchstens zwei Stunden bei Cloudflare.
  • Google Analytics: ereignisbezogene Daten bei Google höchstens 14 Monate, zusammengefasste Berichte ohne Personenbezug unbefristet; in deinem Browser ohne dein „Okay“ nichts, mit „Okay“ das Cookie „_ga“ bis zu 14 Monate (der Browser kürzt auf höchstens 400 Tage), löschbar mit „Analytics-Einstellung zurücksetzen“ (Abschnitt 4).
  • Guthaben: der Stand je Gerätekennung und die eingelösten Transaktionsnummern bleiben, solange du Guthaben hast oder haben könntest — sie sind der Nachweis des Kaufs und die Sperre gegen doppeltes Einlösen. „Konto löschen“ bzw. „Alle Daten löschen“ entfernt den Stand deines Geräts (Abschnitt 8).
  • Server-Protokolle: höchstens 7 Tage – bei Cloudflare für Website, Bilderkennung und Kaufprüfung, auf unserem Server die Zugriffszeilen des Webservers vor dem Konto-Dienst (ohne deine IP-Adresse und ohne Kopfzeilen, Abschnitt 5a). Das eigene Protokoll des Konto-Dienstes, das keine IP-Adresse enthält, läuft nach Größe um statt nach Zeit: höchstens 50 MB, dann werden die ältesten Zeilen gelöscht (Abschnitt 5a).
  • Sicherung der Konto-Datenbank: eine laufende zweite Kopie auf derselben Maschine und eine nächtliche Kopie auf dem Rechner des Verantwortlichen, beide höchstens 30 Tage (Abschnitt 5a).
  • Anfragezähler je IP-Adresse (Website): höchstens 10 Minuten im Arbeitsspeicher.
  • Sprachaufnahmen: weder auf unserem Server noch bei Cloudflare gespeichert, nur in Text umgewandelt.
  • Fotos und diktierte Sätze: auf unserem Server nicht gespeichert; beim KI-Anbieter bis zu 30 Tage zur Missbrauchskontrolle; das Teller-Foto auf deinem Gerät bei den Einträgen der Schätzung, bis du sie löschst.
  • Kaufnachweis: auf unserem Server nicht gespeichert, nur geprüft. Freischalt-Token: auf deinem Gerät, höchstens 24 Stunden gültig, dann erneuert.
  • Gerätekennung mit Tageszähler: 48 Stunden.
  • Barcode-Meldungen (Abschnitt 6): Tageszähler je Ausgang und die Liste der nirgends gefundenen Barcodes – Barcode, Zahl der Versuche, Tag des ersten und letzten Mals – unbefristet, weil ohne Personenbezug; die gefundenen Barcodes speichern wir gar nicht.
  • Tagebuch und Einstellungen: auf deinem Gerät, bis du sie löschst. Im Browser: im Speicher deines Browsers, bis du sie löschst oder der Browser die Website-Daten aufräumt (Abschnitt 4a).
  • Web-Sitzungs-Token und Gerätekennung für die Bilderkennung im Browser: im localStorage deines Browsers; das Token 24 Stunden gültig, dann erneuert; die Kennung, bis du „Alle Daten löschen“ tippst oder die Website-Daten löschst.
  • Einträge in Apple Health bzw. Health Connect (nur mit eingeschaltetem Schalter): dort, bis du sie löschst – in der Health-App bzw. in Health Connect oder mit „Alle Daten löschen“ in der App. Ausschalten allein löscht sie nicht.
  • Anfragen per E-Mail an uns: bis die Anfrage erledigt ist, danach löschen wir sie, sofern keine gesetzliche Aufbewahrungspflicht besteht.

15. Deine Rechte

Du hast das Recht auf Auskunft (Art. 15 DSGVO), Berichtigung (Art. 16), Löschung (Art. 17), Einschränkung der Verarbeitung (Art. 18), Datenübertragbarkeit (Art. 20) und Widerspruch gegen Verarbeitungen, die auf Art. 6 Abs. 1 lit. f DSGVO beruhen (Art. 21). Eine erteilte Einwilligung kannst du jederzeit mit Wirkung für die Zukunft widerrufen (Art. 7 Abs. 3). Schreib dafür an hello@zweitaps.com. Für die Daten in der App und im Browser gilt ohne Konto: Wir haben sie nicht, du hast sie; Auskunft und Übertragbarkeit erfüllst du dir mit dem CSV-Export (und im Browser mit der JSON-Sicherung) selbst. Der deckt deine Einträge ab, nicht die Fotos vom Teller – für die gibt es zurzeit keinen Export (Abschnitt 9); löschen kannst du sie in der App. Mit Konto enthält derselbe Export alles, was auch auf unserem Server liegt; auf Wunsch schicken wir dir die Server-Kopie außerdem als Datei, und „Konto löschen“ in den Einstellungen ist die Löschung nach Art. 17, sofort und ohne Rückfrage bei uns.

Außerdem kannst du dich bei einer Datenschutz-Aufsichtsbehörde beschweren, zum Beispiel bei der Berliner Beauftragten für Datenschutz und Informationsfreiheit, Alt-Moabit 59–61, 10555 Berlin.

16. Keine automatisierten Entscheidungen, keine Profile

Wir treffen keine automatisierten Entscheidungen mit rechtlicher Wirkung und erstellen keine Profile. Die App richtet sich an Personen ab 16 Jahren.

17. Änderungen

Wenn sich an der App oder der Website etwas ändert, das die Datenverarbeitung betrifft, aktualisieren wir diese Erklärung. Die jeweils gültige Fassung steht unter zweitaps.com/datenschutz und in der App.

Stand: 16. September 2026

© 2026 zweitaps.com
Blog Impressum Datenschutz Nutzungsbedingungen