Privacy Policy
Last updated:
This page says what Pretty QR stores when you design a code, create an account, join the Pro waitlist, or buy Pro. We do not sell personal data.
Who we are
Pretty QR is operated by Ozan Tunca in Berlin, Germany. For access, correction, or deletion requests, email [email protected]. You can also complain to the Berliner Beauftragte für Datenschutz und Informationsfreiheit (datenschutz-berlin.de), or to the authority in your own country.
Designs
Changing a design in the editor stores it on our server: the content you encode (a URL, plain text, Wi-Fi details, a contact card, an email, or a phone number), colours, shapes, frame text, and any logo file you upload. We store it so the design URL reloads the same code.
That URL is not private. Anyone with the link can view the design. Treat it like a share link. A single download (PNG, JPG, or SVG) is produced in your browser.
Batch generation is different. The list or CSV is rendered in your browser. We record that a batch ran: the account, how many rows, the file format, and the time. We do not receive the row contents.
Hosted files
If you upload a file for a QR code (Pro), we store the file, its name, type, and size, and the account it belongs to. Photos are rewritten when you upload them, which removes their metadata, including the location where they were taken. Files are kept in a private Cloudflare R2 bucket. A person who opens the code gets a link to the file that works for one hour.
A hosted file is visible to anyone who has the code or its link. When you delete it, we delete the file from storage and keep only a record that it existed, so the link is never given to someone else's file.
If you report a hosted file, we store the reason, any details you write, and a one-way hash made from your IP address and the file. The hash lets us count reports from different people without keeping the address.
Accounts
If you create an account we store your name and email address. For email sign-up we store a one-way hash of the password, not the password itself. If the name field is left blank, we store the email address as the name. If you choose Google, Google sends us your name, email, and profile image. We do not receive your Google password.
A signed-in session is a cookie. The session record can include your IP address and browser type, so the session stays valid and we can spot abuse. Designs created while you are signed in are tied to the account and listed on My designs. Private templates you save are visible only to that account.
Pro waitlist
If you ask to be told about Pro, we store the email address, which prompt you used, and when we sent you a message. If you tell us what you want Pro to include, we store that too and use it to decide what to build. We use the address for one email. That email can include a code for a lower Pro price. Brevo delivers it, and receives the address only for that send. We do not add you to a newsletter, and we do not sell the address. The waitlist form does not take payment. Ask us to delete the row at any time.
Payments
If you buy Pro, Paddle is the merchant of record. They process the card, add any tax, and send the receipt. We do not store your card number. Paddle tells us the transaction id, the Pretty QR account id on the purchase, and whether the payment completed or was refunded. When Pro is active, we send one email to the account address to say so. Brevo delivers it. Their privacy notice is at paddle.com/legal/privacy. What a refund does to Pro is in the refund policy.
Analytics
In production we use PostHog, hosted in the European Union (eu.posthog.com), to see which pages and features people use, including downloads. The browser sends those reports to t.pretty-qr.com, which forwards them to PostHog. PostHog may set a cookie or a similar identifier. If a page fails to load, a short report (the page, the error, and a build id) goes the same way so we can fix it. Our server sends its own logs straight to PostHog (errors, and notes such as whether an email was sent), with email addresses removed and without query strings. Analytics is off in our development environment. You can block requests to t.pretty-qr.com in your browser, or email us and we will treat that as an objection to this use.
On your device
We use local storage for preferences, such as hiding a review prompt. We use session storage for a short-lived flag while a new design is created, and to remember that you were buying Pro so the dialog can reopen after you sign in. A discount code is typed into Paddle's checkout. We do not store that code. You can clear both stores in your browser settings.
Why we process it
We store designs, templates, and account data to provide the service you asked for. We store a waitlist email because you asked us to write to you. Payment records exist so we can turn Pro on and off for the right account. Analytics and security logs are our legitimate interest in keeping the product working. You can object to analytics as described above.
How long we keep it
We keep a design until it is deleted or you ask us to delete it. We keep an account, and the private templates on it, until you ask us to close it. Waitlist addresses stay until you ask us to remove them. Session records expire. A refunded purchase stays in our payment log so we do not grant Pro for that transaction again. Database backups can hold a copy after a deletion until they roll off. We use backups only to restore the service.
Who else sees it
We do not sell personal data. PostHog processes analytics and server logs in the EU. Browser analytics reach PostHog through t.pretty-qr.com; that hop is PostHog's proxy and runs on Cloudflare. Google processes a sign-in only if you choose Google. Paddle processes a payment only if you buy Pro. Brevo delivers the waitlist email and the email that confirms Pro. The database lives on the server that runs pretty-qr.com. Anyone you send a design link to can open that design, and so can anyone they pass it to.
Your rights
If the GDPR applies to you, you can ask us to access, correct, delete, or export your personal data, and you can object to or restrict some processing. Email [email protected]. We may need to confirm you control the address. There is no in-app button that closes an account. We will delete the account, the designs tied to it, private templates, and any waitlist row when you ask.
Pretty QR is not directed at children under 16. Do not create an account if you are under 16.