$ ./qr-code live
Free QR codes that never expire
For restaurants, shops, flyers and signs. Your link, WiFi or contact is written into the code itself: no redirect through someone else's server, no tracking, and nothing that stops working when a trial ends.

$ cat features.md
- Eight types: link, text, WiFi (guests join without typing the password), contact card, email, phone, SMS and GiroCode (EPC QR code) for SEPA transfers.
- GiroCode follows the EPC rules (version 002, error correction M) and checks the IBAN check digits before you print.
- Choose colours, error correction and the quiet zone; it warns when the contrast is too low or the colours are inverted.
- Optional logo in the middle: the covered area is cleared and error correction switches to H so the code still scans.
- After every change it decodes its own image and confirms the content matches byte for byte.
- Download PNG up to 4096 px, SVG and a print-ready A4 PDF in vector. Runs in your browser; nothing is uploaded.
$ cat why.md
Many "free" QR generators make dynamic codes: the printed code points to their own server, which can show an upgrade page or stop working when the free period ends, and every menu, flyer and sign has to be reprinted. A QR code does not need a server at all; the data can sit in the code itself. So I built a generator that only makes static codes, runs in the browser and has nothing that can be switched off later.
$ self-host-it
- Requirements
- Static files, no build step and no dependencies. Any web server works; tests run with Node.js 20+ (npm test).
- Built with
- HTML, JavaScript
- License
- MIT
The repository goes public on GitHub soon. Until then, ask me for the code and I'll send you access.
Get the source