Free forever · No sign-up · Works offline

Create a QR code that actually looks good.

Sixteen content types, full control over colours, shapes, logos and frames. Everything runs in your browser — your data never leaves this device.

  • 16QR types
  • 4export formats
  • 100%client-side

QR code generator

Pick a type, fill in the details, style it, download it.

1

Choose a type

What should happen when someone scans it?

2

Add your content

Enter the details to encode.

3

Design it

Presets to start, then fine-tune anything.

Foreground
Background
Corner colours
Corner frame
Corner centre
Pattern style
Corner frame
Corner centre

Drop a logo here or click to browse

PNG, JPG, SVG or WEBP · stays on your device
Frame style
Quiet zone 4 modules
Background rounding 0%
Version
Modules
Correction
Characters
Encoded payload

              
            

One generator, sixteen jobs

Every type below builds a standards-compliant payload that any phone camera understands.

Built for real-world printing

The details that decide whether a code scans on a poster at three metres.

Nothing leaves your browser

Encoding, styling and export all happen locally. No account, no upload, no tracking pixel — open the page offline and it still works.

Vector-first output

Every code is generated as SVG, so raster exports up to 4000 px are resampled from clean geometry rather than upscaled pixels.

Automatic error correction

Add a logo and the correction level is raised for you, so the covered modules stay recoverable instead of quietly breaking the code.

Frames that earn their space

Five call-to-action frames with auto-fitting text. A framed code with the words “scan me” measurably beats a bare square on a flyer.

Contrast checking

Pick a foreground too close to your background and you get a warning before you waste a print run, not after.

Static codes, permanently yours

The data lives in the pattern itself. Nothing to renew, no redirect service to go dark and take your printed codes with it.

Questions, answered

Do these QR codes ever expire?

No. These are static codes — the destination is encoded directly into the pattern. There is no server in the loop, so there is nothing that can expire, rate-limit or shut down. The trade-off is that you cannot change where a printed code points afterwards; that requires a dynamic code and a redirect service.

Can I use them commercially?

Yes. QR Code is a registered trademark of Denso Wave, but the underlying specification is open and free to use. Codes you generate here are yours to print on packaging, menus, business cards or billboards.

How small can I print a QR code?

A practical floor is about 2 × 2 cm for a short URL at typical scanning distance. The rule of thumb is that scanning distance should be roughly ten times the code’s width. Keep the quiet zone — the empty margin — at four modules or more, and shorten your URL to reduce the module count.

Why did my code stop scanning after I added a logo?

A logo hides modules. Error correction can reconstruct a limited share of them: level H recovers about 30%. Keep the logo under roughly a quarter of the code’s width, leave the correction level at H, and re-test. This tool raises the level automatically when a logo is present.

Can I invert the colours — light code on a dark background?

You can, and most modern phone cameras handle it. Older and industrial scanners often do not, because the specification assumes dark modules on a light field. If the code is going somewhere high-stakes, keep it dark-on-light.

Is my data uploaded anywhere?

No. The encoder, renderer and export pipeline are all JavaScript running in your browser. Saved codes go to this browser’s local storage and nowhere else. You can disconnect from the network and the page keeps working.