Make a QR code for a website, a Wi-Fi network, a contact card, an email, a phone number or plain text. Pick colors, add your logo, and download it as PNG, JPG or a sharp SVG for print. The code is static: it holds your data directly, so it works forever, with no account, no tracking and no expiry.
Adding a logo switches error correction to High.
Many "free" QR code sites create dynamic codes: the square only holds a short link to their server, which then redirects to your page. When the trial ends or the subscription lapses, every printed code stops working. The codes made here are static: your link or text is encoded in the pattern itself, so any phone camera reads it directly, with no server in between. Nothing to renew, and nobody counts your scans. The trade-off: you can't change the destination after printing, so check it first (this page shows exactly what the code contains).
Size: printed codes should be at least 2 × 2 cm (0.8 in); as a rule of thumb, make the code a tenth of the scanning distance (a poster read from 3 m needs a 30 cm code). Quiet zone: keep the white border (4 modules is the standard); cropping it is the most common print mistake. Contrast: dark code on a light background. Less data, bigger squares: a short link makes a simpler code that scans from further away than a long one. Print: use the SVG, which stays sharp at any size; the PNG is fine for screens, slides and documents.
The code is generated in your browser with the open-source qrcode-generator library (MIT), using UTF-8 so accents, emoji and non-Latin scripts work. Nothing you type, and no logo you pick, is sent to a server, so it works offline once the page has loaded. The version (size of the grid) grows automatically with the amount of data. Where your browser supports it, the page also scans its own output with the built-in barcode reader to confirm it decodes to exactly what you typed.
See also: wi-fi qr code generator, qr code with logo, barcode generator (EAN, UPC, Code 128).
Need a QR code on every invoice, ticket or label your app produces? Put the code in your HTML (as an inline SVG or an <img>) and render the page with the Shotmint API, which prints it in real Chromium so the code comes out exactly as in the browser:
curl -X POST https://shotmint.creasework.com/v1/pdf -H "X-API-Key: YOUR_KEY" -H "Content-Type: application/json" \
-d '{"html":"<h1>Ticket #42</h1><img src=\"https://your-site.com/qr/42.svg\" width=\"160\">","format":"A4"}' -o ticket.pdf
Each PDF or screenshot is 1 credit. €5 buys 2,000 with no subscription, and credits never expire. Related free tools: invoice generator, HTML to PDF, HTML to image.
Get 25 free renders a month API docs
Do these QR codes expire? No. They are static: the data is in the pattern, not on a server, so they work as long as the destination does.
Can I change the link after printing? Not with a static code. If you need that, point the code at a page on your own site that you control and redirect from there.
Is there a scan limit or tracking? No limits and no tracking. Nobody sees when or where your code is scanned.
Can I use them commercially? Yes, on packaging, menus, business cards, flyers or anywhere else. No attribution needed. "QR Code" is a registered trademark of DENSO WAVE.
How much can one code hold? Up to about 2,900 bytes at Low error correction (fewer with accents or emoji, which take 2-4 bytes each). Long text makes a dense code that needs a good camera, so keep it short where you can.
Related: favicon generator, image to Base64, add logo to image, meta tag generator, OG image generator.
Wi-Fi QR code generator · QR code with logo · Code 128 barcode generator · Code to image · all free tools