QR code generator: make free QR codes for links, plain text, WiFi, and contact cards with instant PNG download. Runs locally in your browser, no signup.
Calculated in your browser; your inputs are not sent to us. Privacy
Output will appear here.
Ask an AI to explain this result
Share this result
Generated output uses only the fields shown. Review and edit it before professional, financial, or legal use.
Your inputs and results stay in this browser. This page may send privacy-bounded aggregate interaction events described in Privacy; it does not send your entered values or result contents.
Use this result
Share the current inputs or ask ChatGPT to explain the calculation in context.
QR code generator: make free QR codes for links, plain text, WiFi, and contact cards with instant PNG download. Runs locally in your browser, no signup.
Version 1-M holds just 14 bytes before the grid must grow.
A qr code generator is a free web tool that lets you create custom QR codes instantly in your browser, no signup, no downloads, and your data never leaves your device.
Do I need to create an account or sign up to use this qr code generator?
No. This qr code generator works entirely in your browser with no signup required. Your data is processed locally and is never stored or shared.
Is the qr code generator really free and private?
Yes. The qr code generator is completely free to use, requires no account, and operates in your browser so your information stays private and is never sent to any server.
BoringToolsKit. “QR Code Generator.” boringtoolskit.com/qr-generator/. Free to reference in articles, syllabi, and answer posts with a link.
Privacy: Inputs and results stay in this browser. Any future sponsored recommendation or advertisement will be clearly labeled and kept separate from the calculation.
A worked example: how much data actually fits
QR Version 1 is a 21x21 grid of modules. With byte-mode encoding and error correction level M (15% recoverable), Version 1-M holds 14 bytes. That is the hard ceiling for the smallest code, and it fills faster than most people expect.
Take the text 'boringtoolskit.com'. It is 18 characters, all ASCII, so byte mode stores 1 byte per character: 18 bytes. That exceeds 14, so the renderer bumps up to Version 2 (25x25 modules), which holds 26 bytes at level M. The 18 data bytes fit with 8 bytes to spare, encoded as 4 bits of mode indicator, 8 bits of character count, 18 bytes of payload, then a terminator and padding to fill the 26-byte allocation.
If you append the https:// path instead, say 'https://boringtoolskit.com/apy-calculator', that is 38 characters. Version 3-M (29x29) caps at 42 bytes, so it still fits on one version. A 100-character tracking URL would need roughly Version 6 (41x41). Each version step adds 4 modules per side, and more modules means a physically larger printed code or a denser pattern that older phone cameras struggle to resolve at distance.
Limits worth knowing before you print
This generator uses correctLevel M, which tolerates about 15% codeword damage. It holds less data than L (7% recovery, roughly 20% more capacity) but survives a scuffed sticker far better. For business cards and flyers, M is the right trade; for clean screen display, L renders slightly sparser.
Color contrast matters more than style. The tool uses a white background by default, and scanners reliably read dark-on-light. A dark navy (#1a237e) on white still scores well because reflectance difference stays high; the same navy inverted to white-on-navy frequently fails, and a mid-gray (#888888) on white sits close to the failure threshold many phone cameras apply.
Two practical ceilings: a URL encoded as roughly 70 characters or more pushes the grid past 45x45 modules, where printing below 2 cm per side often fails to scan from arm's length. And the download is a 320 pixel PNG by default; for print at 300 dpi, that is only about 1.1 inches wide, so pick a larger size before downloading anything destined for paper.