QR code generator browser extension — side panel UI, share links, embed snippets and offline preview.
- Side panel UI — always accessible, doesn't block the page
- Instant preview — QR generated locally via
uqr, no network needed - ~5 KB SVGs — run-length encoded, single
<path>, integer coordinates - Share links — canonical URLs at
qr.qrcgen.comwith CDN edge caching - Embed snippets — HTML, Markdown, React, Vue formats
- History — recent QR codes stored locally
- Dark & light theme — with auto-detection
- 2 languages — English, Russian
- Fully local — no accounts, no tracking, no data leaves your browser
| Browser | Link |
|---|---|
| Chrome | Coming soon |
| Edge | Coming soon |
- Click the extension icon — side panel opens with a QR code for the current page
- QR matrix generated locally with
uqr— instant, offline - SHA-256 hash computed locally (same algorithm as the API worker)
- Canonical URL built deterministically — no API call needed
- Background worker warms the CDN edge cache (fire-and-forget)
- Copy share link, download SVG, or grab an embed snippet
git clone https://github.com/investblog/qrgen.git
cd qrgen
npm install
npm run dev # Chrome dev build with HMR
npm run dev:edge # Edge dev build
npm run build # Chrome production
npm run build:all # Chrome + Edge production
npm run zip:all # Distribution archives
npm run check # typecheck + lint + test- WXT ^0.19 — web extension framework with HMR
- TypeScript ^5.7
- uqr — QR matrix generation (zero deps)
- Vanilla DOM — no React/Vue runtime
- Biome — linter & formatter
- Vitest — test runner (32 tests)
- Chrome MV3 + Edge MV3 builds
QRCGen runs entirely in your browser. QR codes are generated locally — no data is sent for preview. The only network request is an optional cache-warming fetch to qr.qrcgen.com so share links load instantly for recipients. No accounts, no tracking, no analytics.
- qr-generator — Cloudflare Worker API at
qr.qrcgen.com - qrcgen.com — web UI & documentation
- API docs — endpoint reference
- Extension guide — user documentation
Built by investblog with Claude