betterpixels
Open Playground
Privacy Policy

What we collect, why we collect it, who processes it, and the control you keep.

Last updated: June 13, 2026

BetterPixels holds very little about you: an email to sign in, a session to keep you signed in, and — when you buy credits — payment metadata via Stripe. This page explains what we collect, the processors we rely on, how long we keep things, and the rights you have under the GDPR.

Our stance

Minimal by design

Accounts are keyed on email alone — no name, no username, no profile. We collect what the service needs to run and to bill, and not much else.

No surveillance, no data sales

We don't sell or rent your data, run ad trackers, or build advertising profiles. Our analytics are cookie-free and aggregate.

Your images are yours

Sources you supply and results we cache are processed to provide the service, not to train public models on your content.

What we collect

Account information

Your email address, used to authenticate you, send service email, and contact you about your account. We store a hash of your password, never the password itself.

Session data

A session cookie keeps you signed in. It's HttpOnly, Secure in production, and SameSite=Lax. The session record lives in our Redis store and is invalidated server-side on logout and on password reset.

Image content

Images you upload in the Playground, and the remote sources you supply to the serve API, along with the upscaled results we cache so repeat requests are cheap. Cached results are content-addressed and shared across identical requests.

Payment metadata

When you buy credits, Stripe processes the payment. We receive and store billing metadata — a customer reference, plan, and transaction records — but not your full card number.

Technical and security data

IP address and basic request metadata seen during signup, login, and other authenticated actions, used for rate limiting, abuse prevention, and debugging. We use Cloudflare Turnstile on the auth forms to block automated signups; it returns a pass/fail signal, not a tracking profile.

How we use data

Run the service

Authenticate you, process and cache upscales, deliver content-addressed results, and keep your presets and account working.

Bill accurately

Meter unique transforms and process credit purchases through Stripe.

Secure the platform

Detect and prevent abuse, rate-limit the auth and trigger paths, and protect infrastructure. Security-relevant logs may contain IP and request metadata; legal basis: legitimate interest under GDPR Article 6(1)(f).

Communicate

Send transactional email — verification links, password resets, billing notices, and service messages — through our email provider. These are not marketing.

Processors we rely on

Stripe — payments

Processes credit purchases. Stripe receives the payment details directly; we store only billing metadata.

Resend — email

Sends our transactional email (verification, password reset, billing and service notices). Receives the recipient address and message content.

Cloudflare — edge, storage, and bot protection

Cloudflare provides DNS, a Tunnel that fronts our origin, Turnstile bot protection on the auth forms, and R2 object storage for cached image assets, served through unguessable content-addressed URLs.

RunPod — GPU compute

Runs the upscaling models. The worker receives image bytes to process and returns the result; it's a stateless transform and doesn't retain your images beyond the job.

Coolify — hosting

Orchestrates our self-hosted application and database infrastructure.

Legal requirements

We may disclose data where the law requires it, and will tell you where we're permitted to.

Retention and deletion

While active

We keep your account data while your account is active and for a reasonable period afterward for legal and accounting purposes.

Cached assets

Content-addressed results are cached to make repeat requests free. They're tied to the source and preset that produced them and are removed when no longer needed or on account deletion.

Security logs

Logs containing IP and request metadata are retained for a limited period for abuse prevention and then removed.

Account deletion

You can request deletion of your account and associated data. We honor GDPR erasure requests, subject to records we're legally required to keep (such as billing records).

Security

In transit

All traffic is served over TLS. The origin sits behind a Cloudflare Tunnel rather than a directly exposed host.

Sessions and cookies

Session cookies are HttpOnly, Secure in production, and SameSite=Lax. Session IDs are rotated on login and signup to defend against fixation, and a password reset invalidates every one of that account's sessions server-side.

Passwords

Stored only as a hash. We never see or store your plaintext password.

Bot protection

Cloudflare Turnstile guards the auth forms against automated abuse.

Your rights

GDPR rights

If you're in the EEA you have the rights to access, rectify, erase, restrict, and port your data, and to object to certain processing. We respond to verified requests within the timeframe the law requires.

How to exercise them

Email [email protected] from the address on your account. We may need to verify your identity before acting.

Complaints

You have the right to lodge a complaint with your local data protection authority. In France that's the CNIL.

Children

BetterPixels isn't intended for anyone under 16, and we don't knowingly collect data from children.

Cookies and transfers

Strictly necessary cookies

We use cookies to keep you signed in and to protect against cross-site request forgery. We don't use advertising or cross-site tracking cookies.

International transfers

Core data is held on EU-based infrastructure. Some processing — GPU compute on RunPod, and CDN delivery of cached assets — can occur outside the EU when you use those features.

Policy updates

We may update this policy as the product or our obligations change. We'll communicate material changes by email or in-product notice.