Zero uploads · Zero tracking · Works offline

Forge Flawless QR Codes in Seconds

A complete QR studio that runs entirely inside your browser. Encode links, Wi-Fi logins, contact cards and social profiles, style every pixel, then export lossless SVG or 4K PNG. Nothing you type is ever sent to a server.

  • 100% Client-Side Private
  • No Data Stored
  • 4K & Vector Export
  • AdSense Safe

The QR Code Studio

Pick a content type, fill in the fields, and watch the preview update on every keystroke. Every control below is rendered live with the HTML5 Canvas API.

Type the domain without the protocol — we add it for you and validate the result.

Live preview

Version
—
Modules
—
Recovery
—
Payload
—

Design

Dark modules colour.
Light modules colour.

Corner eye style
Error correction level

Higher levels survive more damage but need a denser grid. Level H is forced automatically when a logo is stamped.

Up to 4096 px for ultra-HD print. The on-screen preview always renders at your display's device pixel ratio.

Logo stamp

Backing plate

Built for Designers, Trusted by Printers

Nine capabilities that normally live behind a paywall, assembled into one static page you can host anywhere for free.

Truly Offline Encoding

The Reed-Solomon encoder, mask optimiser and renderer are all bundled in one small script. Load the page once, pull the Ethernet cable, and it keeps working.

4K and Vector Output

Export a 4096 px PNG for photo-grade print workflows, or a razor-thin SVG whose file size does not change whether it lands on a sticker or a stadium banner.

Brand-Accurate Styling

Dial in exact hex colours, switch the three corner eyes between square, rounded and dot geometry, and preview a live contrast ratio so scanners never struggle.

Safe Logo Stamping

Drop in your mark or pick a preset. The error-correction level jumps to H automatically and a clean backing plate protects the modules underneath.

Every Modern Payload

Links, long-form text, Wi-Fi handshakes, vCard 3.0 contact cards, mailto drafts, SMS templates and fourteen social deep links, all validated as you type.

Eight Languages, Real RTL

Arabic and Urdu flip the entire layout through CSS logical properties — not a mirrored hack — so menus, sliders and labels all read naturally right to left.

Instant, Debounced Preview

Encoding runs in well under a frame budget, so the canvas repaints as fast as you can type without blocking scroll or animation.

Accessible by Construction

Semantic landmarks, labelled controls, visible focus rings, AA-or-better contrast in both themes, and full keyboard operation of the tab strip and drawer.

Print-Ready Sheets

One click opens a clean print layout with the payload printed underneath, so production teams can verify the code before it reaches the press.

How to Use QR Forge

A complete walkthrough, from choosing a payload to handing files to a commercial printer.

Step 1 — Selecting your QR code content type

Everything starts with the tab strip at the top of the studio. A QR code is not a picture of a link; it is a container for a short string of text, and the tab you choose decides how that string is formatted so phones know what to do with it. URL is the right choice for landing pages, menus and app-store listings — pick the protocol from the dropdown and type the bare domain, because a missing https:// is the single most common reason a scan opens a search engine instead of your site. Text stores raw characters with no action attached, which is ideal for coupon codes, serial numbers and museum labels. Wi-Fi writes the handshake descriptor that lets a guest join your network without ever seeing the password. vCard builds a complete contact record for business cards and conference badges. Email and SMS pre-compose a message so the visitor only has to press send. Social loads the exact deep-link shape each platform expects, including the wa.me format WhatsApp requires for click-to-chat. Shorter payloads always win: fewer characters means a lower QR version, fatter modules and a code that scans from further away in worse light.

Step 2 — Customising colours, eyes and brand logos

Scanners do not look for black and white; they look for contrast. Keep the foreground dark and the background light, and watch the live contrast readout under the colour pickers — anything below roughly 4.5:1 starts failing on cheap sensors and in dim venues. The one inversion rule you must never break is a light foreground on a dark background, because most decoders assume dark modules on a light field. The three corner eyes are the first thing a decoder locates, so treat them with care: Square is the safest and matches the specification exactly, Rounded softens the look while keeping the 1:1:3:1:1 proportion a reader expects, and Dot is the most decorative and should always be tested on at least two handsets before it goes to print. Logos are added in the stamp panel, either from the preset grid or by uploading your own PNG, SVG, JPG or WebP file. The size slider is capped at 30 percent for a reason, and 15 to 22 percent is the sweet spot where the mark stays recognisable and the code stays readable. The circular or square backing plate is not decoration — it gives the decoder a clean, predictable blank region instead of a ragged collision between your artwork and the data modules.

Step 3 — Verifying error correction for scannability

QR codes survive damage because every symbol carries Reed-Solomon parity data alongside your payload. Level L recovers about 7 percent of the symbol, M about 15 percent, Q about 25 percent and H about 30 percent. That redundancy costs space, so raising the level either lengthens the grid or shortens the payload you can fit. Use M for clean digital placements such as a slide deck or an email signature. Step up to Q for anything that will be handled, folded or laminated — packaging, loyalty cards, table tents. Reserve H for logo stamps, outdoor signage, vehicle wraps and any surface likely to be scratched or partially obscured. QR Forge forces level H the moment you add a logo, because the stamp is functionally identical to physical damage and the parity data is what reconstructs the modules hidden beneath it. Keep an eye on the version and module readouts beside the preview: if the grid suddenly jumps from 33×33 to 49×49, you have crossed a capacity threshold and should either trim the payload or print the code larger.

Step 4 — Exporting in high-definition 4K and vector formats

Choose the format by destination, not by habit. SVG is a mathematical description of the pattern, so it is infinitely scalable and should be your default for anything going to a professional printer, a cutting plotter or an embroidery machine. PNG is lossless raster and the universal safe bet for web pages, decks and office software; use the resolution slider to match the job, remembering that print at 300 DPI needs about 1200 pixels for a 100 mm code. 4K PNG jumps straight to 4096 pixels for large-format work. WebP produces the smallest file for web delivery and is supported by every current browser. Transparent backgrounds are available for PNG, SVG and WebP so the code can sit on a coloured panel — just make sure whatever shows through is genuinely light. Copy to clipboard drops a PNG straight into Figma, Slack or Google Docs, and Print opens a clean sheet with the decoded payload typed underneath so a production manager can proofread it before approving the run.

Best practices for printing: contrast, quiet zones and minimum sizing

Three field rules prevent almost every real-world scan failure. First, respect the quiet zone: the specification asks for four empty modules of margin on all sides, which is exactly what the slider defaults to. Crop into that border and nearby text or a page edge will be read as data. Second, use the 10:1 distance ratio to pick a size — maximum reliable scan distance is roughly ten times the printed width of the symbol, so a 30 mm code on a flyer works from about 300 mm, while a code read from 10 metres across a car park needs to be a full metre wide. Never print a code below about 20 mm regardless of distance. Third, mind the substrate: glossy stock throws specular highlights that blind a camera, so prefer matte or satin finishes, and avoid placing codes on curved bottles, deep fabric folds or anywhere a shadow falls across the middle. Before any run of more than a handful of pieces, print one proof and scan it with an old low-end Android, a current iPhone, and a native camera app rather than a dedicated reader. If all three succeed from your intended distance in the actual lighting of the venue, the artwork is ready to go to press.

Privacy & Data Disclaimer

Zero local or server-side data storage

QR Forge never stores, transmits, logs or sells the content you encode. There is no account system, no upload endpoint, no database and no server-side image renderer anywhere in this product. The Wi-Fi password you type, the phone number on your vCard and the private URL you are testing exist only as JavaScript variables inside your own browser tab, and they are destroyed the instant you close or reload that tab. Because the entire encoder ships with the page, you can verify this claim yourself: open your browser's network panel, generate as many codes as you like, and you will not see a single outbound request.

How the processing actually works

When you type, the text is converted to UTF-8 bytes, wrapped in a byte-mode segment header, padded, and passed through a Reed-Solomon encoder that computes the parity codewords. The result is interleaved, written into a module matrix, scored against all eight standard mask patterns, and the best-scoring candidate is painted to an HTML5 <canvas> element. Exports are produced locally through canvas.toBlob() for raster formats and by assembling an SVG path string in memory for vectors. Custom logo uploads are read with the FileReader API into a temporary data URL that lives in page memory and is likewise discarded on reload — your image file is never copied off your device. Nothing in this pipeline requires or contacts a network.

GDPR, CCPA and COPPA alignment

Because we never collect personal data, there is nothing to process under the GDPR, nothing to sell or share under the CCPA and CPRA, and nothing to knowingly collect from a child under COPPA. The only data written to your device is a small set of interface preferences — your chosen theme, your chosen language, and any site configuration saved from the administration panel — all kept in your browser's own localStorage and readable by nobody but you. Clearing your site data in browser settings removes them permanently and immediately. For the complete legal text, including how third-party advertising may behave if it is enabled on a deployment of this page, read the full Privacy Policy.

Frequently Asked Questions

The questions our users send most often, answered with the detail a working designer actually needs.

A static code holds your payload inside the pattern itself. Nothing can revoke it, no subscription can lapse, and it keeps working if this website vanishes tomorrow — but the destination is permanent, so reprint is the only way to change it. A dynamic code instead stores a short redirect address owned by a tracking provider; you gain editable destinations and scan analytics, and you accept that every scan depends on that provider staying online and that they see who scanned, when and roughly where. QR Forge deliberately generates static codes only, because that is the only way to honour the promise that nothing you type ever leaves your device.