Free QR Code Generator, Designer and Debugger

URL content

Inside the matrix

About the QR Code Generator

This free, browser-based QR code generator is built for quick everyday codes and unusually deep inspection. Paste a URL and leave, or control encoding, version, masks, artwork, print size, file chunks and the path of individual bits.

What you can create

Generate QR codes for websites, plain text, number sequences, Wi-Fi credentials, email, phone calls, SMS messages, calendar events, geographic coordinates, vCards and small files. Batch controls can produce numbered sets or a random-order series of file chunks, while frame captions make printed codes easier to identify.

Style modules, finder eyes, gradients, transparency, background images, logos, emoji and pixel art. Export the current code as PNG, JPEG, GIF, SVG or PDF; export multi-code projects as ZIP, PDF sheets, animated GIF or MP4.

How QR codes work

40 versionsVersion 1 is 21 by 21 modules. Every version adds four modules per side, ending at 177 by 177 for version 40.
Four data modesNumeric, alphanumeric, byte and Kanji modes trade character flexibility for storage efficiency. Automatic segmentation usually creates the shortest stream.
Four recovery levelsL, M, Q and H add increasing Reed-Solomon redundancy. Rough damage-recovery targets are about 7%, 15%, 25% and 30%, with higher recovery reducing payload capacity.
Eight masksA required mask breaks up scanner-hostile patterns. Auto evaluates every mask and chooses the lowest penalty score; Debug can reveal the unmasked data.

The three finder patterns establish position. Timing and alignment patterns correct sampling and distortion. Format information records error correction and mask choice, while version information appears in versions 7 and higher. The remaining path carries mode and character-count headers, payload bits, terminator and padding, error-correction codewords and occasional remainder bits.

Design without losing reliability

Scanners need contrast, a clear quiet zone and recognizable functional patterns. Rounded modules, gradients and center artwork can work well, but every customization spends part of the code's scanning tolerance. Use stronger error correction for artwork, avoid covering finder patterns, print modules large enough for the expected distance and test the final physical result with several devices.

Developer and file tools

The Debug workspace separates functional regions, metadata, payload, padding, error correction and remainder bits with configurable colors. It can outline codewords or stream bytes, trace read paths, show metadata order and reverse the selected mask for a raw-data view.

File transport supports data URLs, browser blob URLs and a documented FILE:1 chunk protocol. Chunked transfers use a compact identifier, byte offsets, optional gzip compression, metadata and SHA-256 verification so frames can be collected out of order and checked before assembly. Blob URLs only work in the browser session that created them; ordinary phone cameras generally need an HTTPS link or a compatible receiving app for file workflows.

Privacy and network use

QR rendering, artwork, file processing and downloads happen in your browser; this application does not upload entered payloads or selected files to its own server. Opening the Geo format requests visible map tiles directly from OpenStreetMap. That service receives normal web request information such as an IP address, referrer and browser headers; it is not contacted unless Geo is opened.

Technology inventory

Technology, standards and licenses

A transparent inventory of first-party modules, browser platform features, standards, patents, development tools and network services used by this application.

First-party QR implementation

Project source

Canonical repository

The first-party application and QR encoder source is hosted by Lewis Moten at git.lewismoten.com. The browser URL is intended for reading the project; the .git URL is the canonical HTTPS clone endpoint.

QR debugger and renderer

First-party

Draws styled modules, finder eyes, paths, codeword boundaries, metadata regions and unmasked data directly to Canvas. DENSO WAVE states that its patent rights are not exercised against standardized QR Codes; QR Code is also a registered trademark of DENSO WAVE.

Reed-Solomon error correction

First-party algorithm

Generates QR error-correction codewords over GF(256), splits them into the block structure required by the selected QR version and recovery level, and interleaves them with data codewords. Reed-Solomon is an error-correcting-code family, not a bundled software library, so it has no separate software license here; this implementation is part of the repository's first-party source. The original code family was published by Irving Reed and Gustave Solomon in 1960, while the exact QR parameters are governed by ISO/IEC 18004. Later specialized Reed-Solomon implementation and decoding techniques have had their own patents, so this inventory should not be read as a general patent-clearance opinion.

Payload and transfer formats

Raw text, numbers, URLs and data URLs

QR text payloads

Text and number formats place their resulting characters directly into one or more QR data segments without an additional wrapper. Website codes carry an absolute HTTP or HTTPS URL. Single-file Data mode uses a data: URL with standard Base64, while the first-party chunk protocol uses unpadded Base64url for compact binary transport.

Contacts and calendar events

IETF formats

Contact codes use a deliberately small vCard 3.0-style subset containing FN and optional organization, title, telephone, email and URL properties. It targets common scanner behavior but does not implement every RFC 2426 escaping, folding or property rule; RFC 6350 defines the newer vCard 4.0 format. Calendar codes are iCalendar 2.0 objects containing a VEVENT, UID, timestamp, dates or floating local date-times, summary and optional details under RFC 5545. These are text payload conventions, not alternate QR symbol types.

Web, email, phone and location

URI standards

Email uses the mailto: URI scheme, phone numbers use tel:, and geographic coordinates use geo: with WGS 84 latitude and longitude. A Geo label is added through the commonly recognized q query convention rather than a dedicated RFC 5870 label field. Recognition and the action offered after scanning still depend on the receiving application.

Wi-Fi and SMS scanner payloads

De facto conventions

Wi-Fi credentials use the widely implemented WIFI:T:...;S:...;P:...;; text convention cataloged by ZXing, including escaping and the hidden-network flag. SMS uses the commonly recognized SMSTO: form. Neither wrapper is defined by ISO/IEC 18004 or by an IETF QR payload standard, and scanner support can vary by platform.

Comma-separated values (CSV)

RFC 4180-style

Bulk Import uses a first-party CSV parser modeled on the common format documented by RFC 4180 and the registered text/csv media type; RFC 4180 is informational rather than an Internet Standard. Files are read as UTF-8 and use commas, a required format-specific header row, optional quoted fields, doubled quotes for embedded quote characters, and CRLF, LF or CR record endings. Quoted fields may contain commas and line breaks. Blank header cells cause their columns to be ignored, fully blank data rows are ignored, and imports are limited to 5 MiB and 10,000 populated rows. No third-party CSV parser is bundled.

FILE:1 binary transport

First-party protocol

The application-defined FILE:1 format carries a single file or random-order chunks. Its readable header identifies single/chunk mode, manifest presence, a 128-bit random transfer ID encoded as 22 Base64url characters, extension hint, byte offset and total transfer length. An optional typed manifest can include filename, MIME type, modified time, original size, JSON metadata and SHA-256 validation; a flag records optional gzip transfer encoding. This is not an ISO, IETF or established scanner standard, so receiving it requires compatible software.

Built-in export formats

Raster and vector images

First-party + Canvas

PNG and JPEG use the browser's canvas encoders: PNG preserves lossless pixels and transparency, while JPEG is lossy, honors the selected quality, and flattens transparency onto white. The first-party GIF89a encoder quantizes colors to a fixed 216-color RGB cube plus transparency and writes a valid, literal-oriented Lempel-Ziv-Welch (LZW) image stream; it favors a small implementation over strong compression. Animated GIFs use the Netscape looping extension, loop continuously, and express frame delays in hundredths of a second. SVG export traces the final raster canvas into merged same-color rectangular paths, including rasterized text and artwork, rather than retaining semantic text or using an SVG library.

PDF documents

PDF 1.4 + JPEG

The first-party PDF writer embeds each QR image as an 8-bit RGB JPEG image using PDF's DCTDecode filter. Transparency is flattened onto white and the selected JPEG quality applies, so PDF image content is lossy even when the source canvas is not. A current-image PDF uses the selected printed width; multi-image documents arrange frames on US Letter pages with half-inch margins.

ZIP archives

ZIP 2.0 stored entries

The first-party ZIP writer creates local headers, a central directory and UTF-8 file names. Entries deliberately use compression method 0, so the archive is a broadly compatible container with no ZIP-level compression. Each local and central-directory entry includes the CRC-32 checksum described below.

CRC-32 checksums

First-party

ZIP integrity fields use a directly implemented, table-driven CRC-32 with the reflected 0xEDB88320 polynomial and standard initial and final XOR values. CRC-32 detects common accidental transmission or storage errors, but it is not collision-resistant and must not be treated as a cryptographic hash, digital signature or proof of authenticity.

Browser platform features

HTML, CSS, JavaScript and text encoding

Web platform

The interface uses native HTML forms and dialogs, CSS layout and media queries, Canvas 2D drawing, ECMAScript modules on hosted pages, and a bundled fallback for file: use. TextEncoder produces UTF-8 bytes throughout the encoder and export code. Opt-in Kanji mode builds its Shift JIS mapping with the browser's TextDecoder; it reports an error when that encoding is unavailable.

Files, URLs and downloads

Web platform

File selection and reading, Blob storage, object URLs, data URLs and client-side downloads use browser APIs. Object URLs are session-local references and do not embed file bytes in the QR payload; the custom FILE transport described above is a separate first-party format.

Integrity and compression

Web platform

SHA-256 verification and cryptographically strong 128-bit transfer identifiers use Web Crypto. Optional gzip transfer compression uses Compression Streams when the browser provides it; the underlying hash and gzip formats follow FIPS 180-4 and RFC 1952. SHA-256 detects changed transfer content but is not a signature and does not prove who created a file.

Animation and media recording

First-party + Web API

Animated GIF frames are encoded directly. MP4 export draws frames to a Canvas capture stream and records through MediaRecorder; it is offered only when the browser reports support for an MP4 MIME type, and the exact AVC codec and timing behavior depend on that browser.

Raster tile map

First-party + OSM

The Geo preview directly implements Web Mercator projection, visible-tile selection, longitude wrapping, pointer and keyboard panning, zoom controls, click-to-coordinate conversion, and marker/label placement. It requests only raster tiles intersecting the active viewport and does not bundle or load a third-party mapping library.

Development and test software

esbuild

0.28.1 build-only

Bundles and minifies the modular JavaScript and CSS, creates source maps, splits lazy-loaded hosted chunks and emits the self-contained file: fallback. It is a development dependency under the MIT License and is not a browser runtime library or network request made by the deployed application.

Node.js

Development platform

Runs the local build script, automated tests, favicon generator and static development server. The project does not pin a Node.js release or ship Node.js to visitors; deployed application code runs in the browser.

node-qrcode reference bundle

1.5.0 test-only

The optional parity test can load manually downloaded browser bundles from the MIT-licensed qrcode package and compare the first-party encoder against 1,287 reference matrices. These files stay outside the repository, are not npm dependencies, and are never included in production builds.

Data and delivery services

OpenStreetMap

Live data

Serves standard raster map tiles directly to the first-party Geo preview. The underlying geographic database is licensed under ODbL; hosted tiles are governed by the separate tile usage policy and include the required contributor attribution in the map.

Licensing note: "First-party" identifies code implemented in this application; it does not replace or modify the licenses, patents, trademarks or specifications governing the algorithms, formats and platform technologies listed above. Technical standards and RFCs describe interoperability; they are not software licenses for this application's source. The deployed application has no third-party browser runtime library; esbuild is build-only, node-qrcode is optional test-only, and no separate package performs production QR generation, mapping or exports. This repository currently has no project-wide LICENSE file, so redistribution rights for its first-party source should not be assumed. Patent references are informational and are not a legal opinion or freedom-to-operate analysis.