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.

Terminal
git clone https://github.com/flessan/RECQR.git cd RECQR npm install npm run dev

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-qr prefix.

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

GET/v1/qr/generate
ParameterTypeDescription
textstringRequired. The content to encode.
marginnumberBorder margin. Default: 2
formatstringResponse type ('svg' | 'json'). Default: svg
Example Request
curl -X GET "https://api.yourdomain.com/v1/qr/generate?text=https://example.com"