QR codes that never expire

Quiet Zone

Your link is encoded directly into the pattern, so there's no shortener, no redirect, and no account anyone can switch off — a code made here keeps working for as long as the page it points to does. Every code is decode-checked before you save it, so you know it scans before it reaches a printer.

Encode

byte mode, UTF-8

Any URL or text works — this is a placeholder link. Replace it with your actual page, profile, or menu.

Higher levels survive more smudging, glare, or a small logo overlay, at the cost of a denser code.

#14181C
#FFFFFF
Contrast is strong enough to scan reliably.
compact12 px / moduleprint-quality

Higher settings export a larger, crisper file — push it up before saving anything you'll print.

Style

cosmetic only
none10 pxheavy
square26 pxround
tight4 pxroomy
#000000

Colors the border and the caption text.

Wraps the code in a line-art illustration that breaks up the square outline. Replaces the plain border while it's on.

Makes a shape emerge from the code itself. The grid stays square — it has to — but modules inside the shape stay full strength while the rest dim slightly. Uses two tones, so check with your printer before a single-colour run.

Pick a mark for the middle — no logo file needed. Drawn as vector shapes, so it stays sharp at any size.

Replaces the icon above. Either one locks error correction to H, since the code needs to survive losing that space.

Sits outside the border, never inside it.

Plate

exports at full resolution
Generated QR code
Checking…
Version
Modules
Payload
Correction

Batch

every code verified

Put a name first with a comma — Puzzle set, https://… — to label a code. Every row uses the styling above, and each one is decode-checked. Up to 60 at a time.

Why this one doesn't expire

A QR code isn't a link to anything — it's a black-and-white grid encoding the text itself, laid out with a quiet zone: the blank margin a scanner needs in order to find the pattern's three corner markers at all. That margin is this tool's namesake, and it's the part most people crop off by accident. Every code here is built the same way — your content baked directly into the modules, computed in your browser. There's no ID, no redirect, and no account for a company to close.

That last part is the difference worth knowing. Paid QR services mostly sell dynamic codes, which route through their servers so the destination can be changed later — genuinely useful, but it means the code stops working the moment you stop paying. These codes have nothing in the middle to switch off. And because every one is decode-checked against a real QR reader before you save it, you're not trusting that it scans — it already did.

The catch is the one thing this page can't control: if you encode a URL, the code only stays useful as long as that page stays up. Point it at a permanent home — your own domain, a page you control — rather than a free host or a dynamic short link, and the code you save today will still open the right thing in ten years.