Design a QR code you'd actually print.
Live preview, gradients, dot styles, logo overlays, and shareable links —
running entirely in your browser. No backend, no accounts, no tracking.
Your designs never leave your machine.
- Five content types: URL, Email, Phone, Text, vCard
- Live preview: the code redraws as you type, with a capacity guard instead of silent failures
- Styling: solid or gradient foregrounds (linear/radial), background colors (or none, for a transparent export), 6 dot styles, corner styles, and logo overlays with a scannability warning
- History: every download is saved locally with a live thumbnail — restore, share, or delete any past design
- Sharing: designs encode into self-sufficient URLs; the recipient's browser rebuilds the design with nothing stored server-side
- Export: PNG at 2× resolution or SVG
- Workspace UI: three-pane desktop layout on an engineering-grid canvas; mobile gets a history drawer and a sticky export bar
- React 19 + TypeScript
- Vite+ (dev server, build, lint, format, type checks)
- Bun (package manager)
- Tailwind CSS v4
- Playwright (E2E testing)
- qr-code-styling
- Vite+ (
vpCLI; manages Node.js and the package manager) - Bun 1.3+
- just (optional, for convenience commands)
vp installvp devOpen http://localhost:5173 in your browser.
vp buildThe built files will be in the dist/ directory. Preview with vp preview.
This project uses just as a command runner. See available commands:
just --listjust lint # Format, lint, and type-check with auto-fix
just lint-ci # Check-only mode (what CI runs)just test # Full Playwright suite
bun run test:ui # Playwright UI mode
bun run test:headed # Visible browserGitHub Actions runs on every push/PR to master/main: install, lint & type-check, test, build.
Developed and maintained by FrontSail AI.
MIT
