Turn any text or URL into a scannable QR code generated entirely in your browser by a from-scratch encoder. Choose an error-correction level and pixel size, then download a crisp PNG for print or screen.

How to use it

  • Type or paste the text, URL, or other payload you want to encode.
  • Pick an error-correction level and a size.
  • Download the PNG, and always test the result with a real phone camera before sending it to print.

Inside the symbol

A QR code is a grid of modules with a rigid structure. The three large squares at the corners are finder patterns that let a scanner locate and orient the symbol from any angle, which is why QR codes read upside down. The dotted lines between them are timing patterns that establish the module grid, and larger versions add alignment patterns so the decoder can correct for perspective distortion when the code is photographed at a slant. A version number sets the grid size, from 21 by 21 modules upward, and grows as your payload does.

Data is encoded in one of several modes. This generator uses byte mode, which accepts any UTF-8 text, and appends Reed-Solomon error-correction codewords as specified in ISO/IEC 18004. A mask pattern is then applied to avoid large blank areas or accidental imitations of the finder patterns, both of which confuse scanners.

Error correction and the quiet zone

Reed-Solomon coding is why a QR code still scans with a logo over the middle or a coffee ring across a corner. Four levels are available: L recovers about 7% of the symbol, M about 15%, Q about 25% and H about 30%. Higher correction costs capacity, so the same payload needs a denser grid. Use M for screens, and Q or H for anything printed, curved, or likely to be scuffed.

The other requirement people forget is the quiet zone, a blank margin of four modules on every side. Without it a scanner cannot tell where the symbol ends, and a code that reads perfectly on a white slide fails once it is pasted onto a coloured background flush to the edge. Keep the contrast high and the dark modules genuinely dark. Encoding happens entirely in your browser, so the content you encode is never transmitted.

Frequently asked questions

Do QR codes expire or need an account?

Codes generated here are static: the payload is encoded directly into the pattern, so they work forever and involve no service. Codes that expire are dynamic ones that encode a redirect through a third-party tracker, which also means that provider sees every scan.

How much text can one hold?

Capacity depends on version, mode and error-correction level, but shorter is always better. A long URL forces a denser grid that is harder to scan from a distance or on a small print. Shorten the destination rather than raising the version.

Can a QR code be malicious?

The symbol is only data, but the payload usually resolves to a URL, and quishing attacks paste hostile codes over legitimate ones on posters, parking meters and invoices. Always read the decoded URL your phone previews before opening it.

Related tools: URL Scanner, Base64 Encoder / Decoder, Hex / Binary Converter.