QR Code Generator & Reader

Make a code for a link, a short text, your Wi-Fi, or a contact card. Or read a code from an image further down. No sign-up, and nothing is uploaded: the work happens on your device.

Free · No uploads · On-device

A bare address such as example.com/menu is treated as https. Check the address before printing: a static code cannot be changed later.

Options

Higher error correction makes the pattern denser. Pick High only if part of the code may be covered or worn.

Preview

Fill in the details and your code appears here.

Created on this device: 0 · Uploaded: 0

Download

PNG is a picture up to the size picked in Options, fitted to the code pattern. SVG stays sharp at any print size.

Read a code from an image

Drop an image here, click to choose, or paste one

Screenshots and photos both work. The image stays on your device.

Nothing read yet. Add an image with a QR code and its contents show here.

How it works

Drawn and read on your device

Making a code uses an open-source library (@paulmillr/qr, MIT licensed, stored on this site) to turn your text into the black and white pattern. Reading a code tries your browser's built-in BarcodeDetector where it exists, and otherwise uses the same stored library to find the pattern in your image. There is no server involved at any step, and the page still works offline once loaded.

Guide

Picking the right code

Questions

Do QR codes made here expire?

No. Codes made here are static: the code itself holds your link or text, with no redirect through any server and no account behind it. A static code never expires and keeps working for as long as it stays readable in print. The trade-off is that it cannot be edited or tracked after printing, so check the contents before you print it.

Are my files or details uploaded anywhere?

No. Codes are drawn and read in your browser, on your device. The Wi-Fi passwords and contact details you type are turned into a code locally and are never sent anywhere. Reading a code from an image also happens on your device: the image is not uploaded.

Can I change the link after printing?

No. With a static code the destination is fixed inside the pattern. Services that let you change a destination later use dynamic codes, which route through their server, usually need an account, and can stop working if the service or your plan ends. If the destination might change, point the code at a page you control and change that page instead.

Why will my code not scan?

Most failures come from low contrast, a code printed too small, or damage. Keep dark modules on a light background, print at least 2 cm wide for close-up scanning, and pick the High error correction option if a logo or wear might cover part of the code. Colours are fine as long as the contrast stays strong: this page warns you when a colour pair is too close.

Can this page scan a code with my camera?

Not in this version. Reading works from an image file: drop a screenshot or a photo of a code and the contents show here. Blurry or heavily tilted photos can fail, so a straight, well-lit photo or a screenshot works best.

Only Trusted Finds · ToolsExplainersAboutPrivacy