keptlocal
Files never leave your browser

QR Code Generator

Create QR codes free in your browser — no signup, no account, no upload. Enter any URL or text and download a PNG instantly. Nothing is sent to a server.

QR code preview

Type or paste text above to generate a QR code.

How to generate a QR code

  1. Type or paste the text you want to encode — a URL, a plain text message, an email address, a phone number, or Wi-Fi credentials. The QR code updates automatically as you type.
  2. Choose a size. For digital use (presentations, emails), 300px is sufficient. For print (posters, business cards), choose 400px or 600px — more pixels mean sharper output at larger print sizes.
  3. Select an error correction level. Medium (M) works for most cases. Use High (H) if the QR code will be printed on a surface that might be scratched, worn, or if you plan to overlay a logo.
  4. Click Download PNG to save the QR code to your device.

Everything runs locally in your browser using qrcode.js. The text you enter is never sent to a server — open DevTools → Network while generating to confirm zero outbound requests.

When to use a QR code

  • Sharing a website URL: The most common use. Instead of asking people to type a long URL, a QR code lets them scan and open it instantly. Works on printed materials, presentations, posters, and packaging.
  • Business cards: Encode your website, LinkedIn profile, or vCard contact information. A single scan saves a contact or opens a profile — more reliable than typing a URL by hand.
  • Wi-Fi sharing: Encode Wi-Fi credentials in the format WIFI:T:WPA;S:YourNetworkName;P:YourPassword;; so guests can scan to connect without reading out the password.
  • Product packaging: Link to user manuals, warranty registration, or promotional pages without cluttering the packaging with a long URL.
  • Event check-in: Each ticket or attendee gets a unique QR code that a scanner app reads at the door — faster and more reliable than typing reference numbers.
  • Restaurant menus: Post-2020, QR codes linking to digital menus became standard in hospitality. They reduce printing costs and allow menu updates without reprinting.

Understanding error correction levels

QR codes are designed to be readable even when partially damaged. The error correction level controls how much redundancy is built in — higher redundancy means the code can scan even if part of it is obscured or damaged, but at the cost of a denser, more complex pattern.

  • Low (L, 7%): The code can be read even if 7% of it is damaged. Produces the simplest pattern — use for clean digital displays where the code will always appear intact.
  • Medium (M, 15%): The default. Good balance of density and resilience. Works for most print and digital uses.
  • Quartile (Q, 25%): Use when printing on materials that may wear — outdoor signs, product labels, stickers.
  • High (H, 30%): Up to 30% of the code can be damaged and it will still scan. Required if you plan to overlay a logo in the center of the code, since the logo covers part of the pattern.

How QR codes work

A QR code (Quick Response code) encodes data as a matrix of black and white squares. A scanner reads the pattern and decodes it back to text. The three large square markers in the corners orient the scanner — it reads the code from any angle and at any rotation. Error correction data is distributed across the pattern, allowing partial reconstruction if some squares are unreadable.

The maximum data capacity varies by error correction level and version (size of the matrix). A Version 1 QR code (21×21 squares) can encode up to 41 alphanumeric characters at Low error correction. A Version 40 code (177×177 squares) can encode up to 4,296 alphanumeric characters at Low — though QR codes this dense require a high-quality scanner to read reliably. For URLs, staying under 200 characters produces reliable scans in all conditions.

Privacy: what happens to your text

The text you enter into this tool is processed entirely in your browser using qrcode.js. It is not sent to a server, not logged, and not stored. The QR code is generated locally and the PNG downloads to your device directly from browser memory.

This matters if you are encoding sensitive information — a private URL, an internal document link, or Wi-Fi credentials. The generation process is local and verifiable: open the Network tab in DevTools while generating to confirm zero outbound requests.

Frequently asked questions

Is anything sent to a server?
No. QR codes are generated entirely in your browser using the qrcode.js library. No data leaves your device.
What can I encode in a QR code?
Any text: URLs, plain text, email addresses (mailto:), phone numbers (tel:), Wi-Fi credentials, or vCard contact data. The most common use is a website URL.
What size should I choose?
For screens: 200–300px. For print materials like business cards: use 400px+ and test that it scans reliably at the intended print size. A 1-inch QR code printed at 300 DPI works well down to 2cm.
What error correction level should I use?
Medium (M) is the default and works for most uses. High (H) adds redundancy so the code scans even if up to 30% of it is covered or damaged — useful when printing on surfaces that may wear or if you plan to add a logo in the center.
Can I add a logo to the QR code?
The tool generates a clean QR code PNG. Adding a logo requires an image editor — place the logo in the center and test that the code still scans (use High error correction level to allow for the covered area).
Can I download as SVG instead of PNG?
Currently the tool exports PNG only. SVG export is on the roadmap.