Documentation
Welcome to the RECQR documentation. Learn how to instantly scan, decode, and generate QR codes at the edge using our platform and APIs.
Why RECQR?
Most QR code platforms are slow, littered with ads, and require a backend server just to decode an image. RECQR flips this paradigm.
- 100% Client-Side: QR scanning, image decoding, and generation all run in your browser with jsQR and the Canvas API. Your camera feed and images never touch a server.
- Rich Payloads: Automatically identifies URLs, Wi-Fi, vCards, calendar events, geo coordinates, email, SMS, and WhatsApp links.
- Private by Design: Scan history is stored in localStorage on your device only. There are no accounts, cookies, or analytics.
- Optional Edge API: A small Cloudflare Worker can generate QR SVGs over HTTP if you need server-side rendering - it is never required by the web app.
Quick Start
RECQR is a statically exported Next.js (App Router) application. It deploys to GitHub Pages, Vercel, Netlify, or any static host.
Scanner
- Camera: real-time scanning with throttled decoding (~12 frames/sec), front/rear switching, torch and zoom where supported.
- Image: upload, drag & drop, or Ctrl/⌘+V to paste a screenshot. All images are processed locally.
- Results: URLs are never opened automatically; the hostname is shown first, with warnings for suspicious links.
- History: scans are saved in localStorage on this device only, with favorites and per-item delete.
Generator
Build a QR code in four steps: choose a content preset, customize the design, optionally add a logo, then download.
- Presets for links, text, email, call, SMS, WhatsApp, Wi-Fi, vCard, events, geo, social/app/image/video links.
- Colors, size, quiet zone, error correction, dot/eye styles, and an optional label frame.
- Local-only logo embedding with automatic error-correction level H and size warnings.
- Export PNG, SVG, or WebP. Filenames use the
recqr-qrprefix.
Privacy & Security
- Camera frames and uploaded/pasted images never leave the browser.
- Dangerous protocols (javascript:, data:, file:, vbscript:) are blocked from "open" actions.
- Decoded content is rendered as text - never injected as HTML.
- No third-party analytics, trackers, or network calls in the client app.
Supported Formats
URL, plain text, email (mailto), telephone (tel), SMS, WhatsApp (wa.me / whatsapp://), Wi-Fi, vCard 3.0, iCalendar events, and geo coordinates.
Self-Hosting
npm install && npm run build produces a static export in out/. Deploy that folder to any static host. For GitHub Pages, set NEXT_PUBLIC_REPO_NAME to the repository name.
API Reference
The optional Cloudflare Worker exposes a single endpoint to generate QR codes as SVG over HTTP. The web app itself does not use it - generation happens in the browser. There is no server-side decoding.
Generate QR Code
/v1/qr/generate| Parameter | Type | Description |
|---|---|---|
| text | string | Required. The content to encode. |
| margin | number | Border margin. Default: 2 |
| format | string | Response type ('svg' | 'json'). Default: svg |