Zen QR
Zen QRScan with calm.

About Zen QR

Zen QR is a free, browser-based tool to create and read QR codes. URL, WiFi, vCard, email, phone, SMS, location — eight content types, one short form per type, no signup, no tracking. We built it because the QR space had quietly become a mess of paywalls, watermarks, and trackers, and a tool this simple deserved better.

Why we built it

QR codes are a 30-year-old public standard

The format was published in 1994 by Denso Wave and released royalty-free. Anyone can generate them. The patents that ever existed are long expired. There is no legitimate technical reason a generator should require an email address or a paid plan to remove a watermark — yet most of the popular tools do exactly that.

The web filled the gap with ads, accounts, and tracking

Search "free QR code generator" and the top results are funnels: free with a watermark, premium to remove it, login to download SVG, monthly fee for batch, redirect-based "dynamic" codes that the provider can shut off whenever they like. The actual work — turning text into a 2D barcode — runs in milliseconds on any laptop.

We wanted a tool we'd happily use ourselves

Type your text, see the preview, download the file. That's the entire experience. No upsells in between. No "sign in to continue". No watermark in the corner of your final image. If we ever charge for anything, it'll be a clearly separate feature you can opt into — never a paywall around a basic capability.

How we approach this

Five rules we wrote on the wall before the first commit. They explain almost every design decision you'll find on the site.

  1. 1

    Local-first

    Your text, your preview, your downloaded image — all generated in the browser. The qrcode library runs client-side, the jsQR decoder runs client-side. Network requests happen only when you explicitly use the "save share link" feature, and even then only the resulting PNG goes to our S3 bucket, never your input form fields.

  2. 2

    No accounts, ever, for the free tier

    Creating and reading QR codes is a one-shot interaction. Forcing an account is friction for our benefit, not yours. The day a feature genuinely needs an account (think: editing the destination of a dynamic QR later), it'll be a separate, clearly paid feature — the free tier stays accountless.

  3. 3

    No watermarks

    The QR you download is the QR you saw. No "Made with X" badge, no logo overlay, no resolution cap on the free tier. If you generate a 2048×2048 PNG, you get 2048×2048 pixels. If you want SVG, you get clean vector output you can scale to a billboard.

  4. 4

    Calm interface

    No modals that pop up after 3 seconds. No cookie consent banner because we don't set tracking cookies. No newsletter ask. No "rate us!" prompt. The interface gets out of your way the moment you arrive and stays out of your way after you leave.

  5. 5

    Mirror Zen Convert

    Our sister product is a media converter built on the same principles. Same design language, same privacy posture, same stack. If you've used one, the other feels familiar — and we get to share infrastructure decisions instead of relearning them twice.

How it works under the hood

A short technical tour for the curious. None of this is required to use the site — but it's the kind of transparency we'd want from a tool that handles our content.

Generation

When you fill the create form, the browser uses the open-source `qrcode` library to encode your text into a QR matrix and rasterize it as a PNG (or render it as SVG on download). The matrix size, error-correction level, and color palette are exactly what you see in the UI. Nothing is sent to our servers during preview — there's nothing to send.

Reading

Dropping an image runs it through a canvas to extract RGBA pixel data, which is fed to the `jsQR` decoder. Camera mode does the same thing at ~5 fps on a `<video>` frame. Both modes return the decoded text + a detected payload kind (URL, WiFi, vCard, etc.) so the result panel can offer the right "open" action.

The save-share-link feature (optional)

If you tick "save share link" before downloading, the browser asks our API for a short, unguessable URL that serves your PNG back to anyone who has the link. The PNG lives in S3 (private bucket + presigned GET URL). Nothing else about your generation — the input text, your IP, the timestamp — is exposed to the recipient.

The infrastructure

A single Next.js app on a small EC2 instance in Paris (eu-west-3). Operations are logged to DynamoDB for our own debugging and capacity planning — never shared, never sold, and the row only contains coarse signals (operation type, success/failure, QR kind) plus a 256-char preview of the encoded text. Full schema is in the open source repo.

What we don't do (that other tools do)

An honest comparison. We're not the right tool for every job — but if any of these matter to you, this is the tool for you.

FeatureZen QRTypical competitors
Free PNG downloadYes, no capOften watermarked or low-res
Free SVG downloadYesFrequently paywalled
Account required to useNoOften yes
Email required to downloadNoOften yes
Tracks scans by defaultNo (static QR)Yes (via dynamic redirect)
Pixel size cap on free tierUp to 2048×2048Often capped at 500–1000
Custom colorsYesSometimes
Logo overlay built-inNot yet — export SVG and overlay yourselfOften, as a paid feature
Dynamic / editable QRNot yet (on roadmap)Yes, as paid feature
Stores your contentOnly if you click save-share-link, and only the rendered PNGOften the full payload, indefinitely

Our stack

Open source, modern, boring on purpose. We picked stable tools so we can focus on the product instead of dependency drift.

Who we are

Zen QR is built by the same small team behind Zen Convert — a free media converter for video, audio and image. We're a tiny shop based in France; we write the code, run the servers, answer the emails. If you contact us, a human reads it.

Also try Zen Convert

Ready to try it?

Pick a side. Both tools work entirely in your browser — no account, no install.

About Zen QR — A calm QR code generator | Zen QR