Privacy Policy

Last updated: 13 August 2026

This privacy policy explains how I, Samuel Liedtke, process your personal data when you use FindThatRecipe.eu ("the site"). I run the site as a personal hobby project from Berlin, Germany. It is not a commercial offering.

1. Who is the controller?

Samuel Liedtke
Kaiserdamm 83
14057 Berlin
Germany
Email: privacy@findthatrecipe.eu

I am the sole data controller. I am not obliged to appoint a Data Protection Officer (Art. 37 GDPR) and have not done so.

2. What data do I collect?

2.1 Data you give me (account holders only)

Creating an account requires an email address and a username; this is necessary to enter into the user agreement with you. Without an account, you can browse the site and use the recipe search without providing any further data.

2.2 Data collected automatically on every page view

When your browser loads a page, the following happens automatically:

On the signup page only, the browser additionally loads a Cloudflare Turnstile bot challenge:

The site does not set a session cookie on every page view. A session cookie is created only when the application's own functionality needs one — for example, when you log in, sign up, toggle a recipe filter, or trigger a flash message. See § 7.

3. Why do I process your data, and on what legal basis?

Purpose Data Legal basis
Provide your account (login, signup, password reset) Account data (§ 2.1) Art. 6(1)(b) GDPR — performance of a contract
Operate the site (CSRF protection, session continuity) Session cookie, server logs Art. 6(1)(f) GDPR — legitimate interest (site operation, security)
Send transactional email (verification, password reset) Email address Art. 6(1)(b) GDPR — performance of a contract
Analyse aggregate usage (which pages are popular, where traffic comes from, how fast the site feels) Page URL (pathname only), referrer, web-vitals performance metrics, PostHog's daily-rotating salted hash as a session identifier. IP and user agent are processed by PostHog only briefly to compute the hash, then stripped before the event is stored. Art. 6(1)(f) GDPR — legitimate interest (audience measurement and UX improvement)
Detect and debug errors Stack traces, request metadata Art. 6(1)(f) GDPR — legitimate interest (keeping the site working)
Detect automated signup abuse (bot challenge on the signup form) IP address, user agent, and browser characteristics received by Cloudflare when loading the Turnstile widget (§ 4.1); single-use cf-turnstile-response token redeemed server-side against Cloudflare's /siteverify endpoint Art. 6(1)(f) GDPR — legitimate interest (site security, prevention of signup abuse and unsolicited verification email)
Comply with legal obligations (e.g. tax, law enforcement requests) As required Art. 6(1)(c) GDPR — legal obligation

I do not perform any automated decision-making or profiling within the meaning of Art. 22 GDPR.

4. Who do I share your data with?

4.1 Sub-processors

I use the following service providers to operate the site. Each processes data only on my documented instructions and under a data processing agreement.

Provider What they receive Region Purpose
PostHog (via self-hosted proxy m.findthatrecipe.eu, forwarding to eu.posthog.com) Pageviews and pageleaves from the browser: URL pathname, referrer, web-vitals performance metrics. PostHog's servers briefly receive the IP address and user agent to compute a daily-rotating salted hash, then strip both before storage. No GeoIP, no user identifiers. EU Aggregate usage analytics
Sentry Exception stack traces, request metadata. No email or other PII is sent (send_default_pii is disabled). United States Error monitoring
Amazon Web Services — SES Email addresses (transactional email) EU (Frankfurt, eu-central-1) Sending verification and password reset emails
Amazon Web Services — S3 Book cover images and static site files EU (Frankfurt, eu-central-1) Static asset hosting
Fly.io Application code, database, request logs United Kingdom (London) Hosting and database
Cloudflare (Turnstile only — the site is not otherwise behind Cloudflare) When you load the signup page: your IP address, user agent, and browser characteristics (used by Cloudflare to decide whether to issue a challenge). When you submit the form: the single-use cf-turnstile-response token, redeemed server-side against /siteverify. Cloudflare does not set a cookie for Turnstile. Global (Cloudflare CDN; DPF-certified — see § 5) Bot detection on the signup form

5. International data transfers

Most of your data stays within the EU. Where data is transferred to the United States (Sentry, Cloudflare), I rely on the EU-US Data Privacy Framework (DPF) as the transfer mechanism under Art. 46(2)(c) GDPR. Both providers are DPF-certified. Data hosted by Fly.io is in the United Kingdom, which is covered by the current EU adequacy decision.

Risk note (August 2026): the EU-US DPF is currently the operative Art. 45 GDPR adequacy mechanism, but its legal basis is under pressure. A June 2026 US Supreme Court decision raised questions about the independence of the FTC — one of the framework's oversight bodies — and a legal challenge to the DPF has been announced. If the DPF were invalidated, I would rely on Art. 46(2)(c) GDPR Standard Contractual Clauses (SCCs) as the fallback transfer mechanism. You can request a copy of the relevant DPF certifications and any SCCs I hold with these providers by emailing privacy@findthatrecipe.eu.

6. How long do I keep your data?

7. Cookies

The site sets only cookies that are strictly necessary for it to function, and only when the application's own functionality needs them. These do not require consent under § 25 TDDDG (the German implementation of the ePrivacy Directive). No analytics, marketing, or third-party cookies are used at any time.

Name Purpose
sessionid Django session identifier. Set only when application functionality requires one (login, signup, filter toggle, flash message). Anonymous readers who only view recipes and never sign in or toggle a filter do not receive this cookie at all. Expires after 2 weeks of inactivity.
csrftoken Django CSRF token. Strictly necessary for form submissions. Set on the first form submission.
messages One-time flash messages from django.contrib.messages. Strictly necessary for UI feedback. Set only when a flash message is queued.
allauth account_* Signup, login, and email verification flows. Set only when one of those flows is initiated.

Because the site uses no analytics, marketing, or third-party cookies (PostHog runs in cookieless mode, which uses no cookies, localStorage, or sessionStorage; Cloudflare Turnstile does not set a cookie by design), no cookie consent banner is shown.

8. Your rights under the GDPR

You have the right to:

To exercise any of these rights, email privacy@findthatrecipe.eu. I respond within 30 days (Art. 12(3) GDPR). There is no fee.

9. Right to complain to a supervisory authority

If you believe I have not handled your data properly, you have the right to lodge a complaint with a data protection supervisory authority. As I am based in Berlin, the responsible authority is:

Berliner Beauftragte für Datenschutz und Informationsfreiheit
Friedrichstraße 219
10969 Berlin
Germany
datenschutz-berlin.de

10. Changes to this policy

I may update this policy as the site evolves. The "last updated" date at the top will reflect the current version. Material changes that affect your rights will be communicated to logged-in users by email where appropriate.