A free, private, fully offline, single-file QR code generator. Everything happens in your browser — no server, no accounts, no tracking, and nothing leaves the page.
"QR" officially stands for Quick Response. This one is quiet about it.
| Tab | What it encodes |
|---|---|
| Link / Text | Any URL or free text |
| Wi-Fi | SSID, password, WPA/WEP/open, hidden-network flag |
mailto: with optional subject & body |
|
| SMS | Phone number with optional pre-filled message |
| Contact | vCard 3.0 — name, organisation, phone, email, website |
- 🎨 Custom colors — foreground & background pickers, plus one-click preset pairs
- 🌈 Gradient foreground — optional two-color diagonal gradient
- 🫥 Transparent background — with a checkerboard preview so you can see the see-through
- ⬛ Module shapes — square, rounded, or dots
- 👁️ Corner eyes — styled independently: square, rounded, or circle
- 🖼️ Center logo — click or drag-and-drop an image, size it 12–30%, optional cleared pad behind it
- 📐 Export size from 256 to 2048 px
- 🔲 Adjustable quiet zone (the blank border scanners rely on)
- 🛡️ All four error-correction levels (L / M / Q / H)
- 💾 Download as PNG or SVG — the SVG mirrors every style choice, gradient and logo included
- 📋 Copy to clipboard as an image
- 📤 Native sharing on supported phones and tablets
- 💾 Privacy-safe preferences — design choices are remembered, but entered content and Wi-Fi passwords are not
Quiet Response keeps a gentle watch while you design:
⚠️ Warns when foreground/background contrast is too low to scan reliably⚠️ Warns when the quiet zone is thinner than recommended⚠️ Auto-raises error correction to H when you add a logo (a logo covers data — high correction wins it back)⚠️ Tells you when content is too long for the chosen correction level- 🚦 Summarises contrast, spacing, shape, logo, and output-size checks as a clear scan reliability status
- 🔍 Uses the browser's local QR detector for an additional decode check when the browser provides one
Download index.html and double-click it. That's the whole installation.
- Fork or clone this repo
- Go to Settings → Pages
- Under Build and deployment, choose Deploy from a branch, select
mainand/ (root) - Your generator is live at
https://<your-username>.github.io/<repo-name>/
- Pick a content tab and type your URL, Wi-Fi details, or contact info — the code redraws live as you type
- Open the optional appearance, logo, or frame sections when you want to customise it
- Use the recommended export settings, or open Advanced export for precise control
- Download PNG for print/social, Download SVG for infinite-resolution vector, or copy straight to your clipboard
Before you print 5,000 stickers: always test the final code with a real phone camera. Fancy styling is delightful; scanning is the point.
- One HTML file: markup, styles, and logic together — easy to read, fork, and remix
- QR matrices generated by the MIT-licensed
qrcode-generator, embedded directly in the HTML - All rendering is hand-rolled on Canvas 2D (PNG) and mirrored as hand-built SVG, which is what makes the custom module shapes, styled finder eyes, gradients, and logo compositing possible
- System fonts keep the file fast and ensure it works without network access
There is very little to disclose, which is rather the point:
- No analytics, no cookies, no fingerprinting
- No form submissions — there is no server to submit to
- Logos you upload are read locally via
FileReaderand never transmitted anywhere - Appearance and export preferences are stored locally; entered QR content and Wi-Fi passwords are deliberately not stored
Issues and pull requests are welcome. Some directions that would fit the spirit of the project:
- More payload types (calendar events, geo links, crypto addresses)
- Batch generation from a CSV
MIT — do what you like, attribution appreciated. See LICENSE.
Made of little squares, arranged with care. ⬛⬜⬛