On this page
What this generator does
This tool builds a QR code from a short piece of text and draws it on a canvas element so you can preview it, scan it with a phone, and download it as a PNG file. Three formats are supported: a website URL, plain text, and Wi-Fi credentials. The code is generated by a small QR encoder that runs inside the page, so nothing is uploaded to any server, and the PNG is created by the browser's own canvas element.
Two things make the tool practical. First, the preview is live: it redraws as you edit the content, so you can see how the density changes when the payload gets longer. Second, the payload is shown as text beneath the preview, so you can confirm exactly what is encoded before you print the code. If the payload has a typo, the preview shows the typo, and you catch it before it goes onto a menu or a business card.
If the AI insight button is pressed, only anonymous details about the code are sent to a small serverless function that runs once and then stops. The format type, the character count, and the QR version are shared. The actual text, the URL, and the Wi-Fi password are never included.
What a QR code is
A QR code is a two-dimensional barcode that stores data in a grid of black and white squares. It was invented in 1994 by Denso Wave for tracking parts in car manufacturing, and it became a public standard so that any reader could decode any code. The pattern includes three large square markers called finder patterns in three of the four corners, which tell the scanner where the code begins and how it is oriented. Small alignment patterns in larger versions keep the grid readable when the code is printed on a curved surface or photographed at an angle.
Inside the grid, the data is stored in 8-bit bytes, along with error correction bytes that allow the code to be read even when part of it is damaged or obscured. The standard defines forty versions, from a 21 by 21 grid up to a 177 by 177 grid. Higher versions hold more data but are visually denser, which is why a long URL produces a busier code than a short one. The version used for a given payload is chosen automatically by the encoder so that the code fits the data with the required level of error correction.
Four error correction levels are defined in the standard: L, M, Q, and H. They trade data capacity for resilience. Level L recovers from about seven per cent damage, M from about fifteen per cent, Q from about twenty-five per cent, and H from about thirty per cent. This tool uses level M, which is a good default for printed codes and gives a balance between capacity and robustness.
Choosing the right format
The format you select determines what happens when someone scans the code. A URL opens a browser. Plain text shows the characters on screen. Wi-Fi credentials prompt the phone to join a network. The wrong format leads to the right data being shown in the wrong way, which is why it is worth getting right before you print.
| Format | What happens on scan | Best for |
|---|---|---|
| Website URL | Opens the link in the default browser | Menus, landing pages, social profiles, app installs, feedback forms |
| Plain text | Shows the characters on screen | Serial numbers, vouchers, event codes, classroom notes, short instructions |
| Wi-Fi | Prompts the phone to join the network | Guest networks, rentals, cafés, conference rooms, offices |
For a URL, always include the scheme. The tool adds https:// automatically if you leave it out, but the resulting payload is cleaner when you include it yourself, because you can see exactly what will be encoded. For plain text, keep the string short. A code that encodes one line of text scans almost instantly on any phone; a code that encodes a paragraph is denser, slower to read, and harder to print small. For Wi-Fi, use the standard format so that both Android and iOS recognise the code as a network invitation.
Wi-Fi QR codes in practice
The Wi-Fi format is defined by the same convention that most phone operating systems use. The payload looks like this.
The T value is the security type: WPA for modern networks, WEP for older ones, and nopass for an open network. The S value is the network name, sometimes called the SSID. The P value is the password. The H value is whether the network is hidden, which is false in almost every case. Double semicolons at the end of the string mark the end of the payload. If any of the values contain a semicolon, a comma, a backslash, or a double quote, they need to be escaped with a backslash, and this tool handles that escape for you.
Two practical notes. First, anyone who can see the printed code can read the password, so treat a Wi-Fi QR code as a public credential. That is fine for a guest network, but it is not the right choice for a router admin password or an internal corporate network. If you want visitors to join without exposing the main network, configure a separate guest network on the router and encode the guest credentials. Second, test the code with both an Android phone and an iPhone before you print a hundred copies, because the prompt behaves slightly differently on each platform. On Android, the Wi-Fi join dialog opens immediately. On iOS, the phone may ask the user to tap a banner first before joining.
Print sizing and contrast
A QR code that scans perfectly on a screen can fail on paper for two reasons: the print is too small for the viewing distance, or the contrast is too low. The rule of thumb for size is that the code should be at least one tenth as wide as the distance from which it will be scanned. At half a metre, five centimetres is enough. At one metre, ten centimetres. At three metres, thirty centimetres. For a business card or a table menu, two to three centimetres is a reasonable minimum. For a poster on a wall, five to ten centimetres or more.
Contrast matters just as much as size. The safest combination is pure black modules on a pure white background, which gives the highest possible contrast ratio. If you want to use a brand colour, keep the dark modules dark and the background light, and check that the contrast ratio is at least seven to one. Avoid inverting the code, which means light modules on a dark background; many scanners in older phones cannot read inverted codes reliably, even though some newer scanners can.
The quiet zone matters. Leave a border of at least four module widths of white space around all four sides of the code. If text, graphics, or a coloured background sit inside that border, the scanner may fail to locate the finder patterns and the code will not scan. This tool draws a four-module quiet zone by default, which is the ISO/IEC 18004 minimum.
Common use cases
Restaurant menus. Print a QR code on each table or on a table card, and link it to a PDF menu, an ordering page, or a mobile site. This lets you update prices and items without reprinting the menu itself. Test the code at the intended viewing distance and with the lighting the venue actually has, not just with the venue's brightest corner.
Guest Wi-Fi for short-term rentals and cafés. Print a small card with the network QR code and the network name underneath, in case the guest wants to connect manually. A laminated card survives spills and repeated handling. Put a fresh card out when the password changes.
Business cards. Encode a link to your portfolio, LinkedIn profile, WhatsApp chat, or a saved contact card. A code on the back of a card is a small way to give the recipient a working digital copy without asking them to type a URL. Keep the code on the back so the front stays clean.
Event and conference signage. Encode a link to the event schedule, the speaker bios, the feedback form, or the Wi-Fi network. A single signage print can carry two codes: one for the Wi-Fi network and one for the schedule.
Product packaging and labels. Encode a link to a manual, a warranty registration page, a video tutorial, or a support form. Use a durable print surface because packaging moves through distribution and handling before it reaches the customer.
Classrooms and training. Encode a link to a video, a quiz, a reference document, or a shared folder. A printed handout with a QR code can link to supplementary material without printing the material itself.
Common mistakes
Forgetting the scheme on a URL. A URL without https:// may still work on some phones, but it is safer to include it. This tool adds it automatically, so the generated code is treated as a web link.
Printing too small. A code that scans on a screen at twenty centimetres may fail on a printed page at two metres. Size the code for the viewing distance, not for the screen size that felt convenient.
Ignoring the quiet zone. A code surrounded by text or a decorative border will not scan. Leave at least four module widths of white space on every side.
Using low-contrast colours. Pale grey modules on a slightly off-white background look subtle in a design mock-up but fail in real light. Stick with black on white unless you have tested the alternative.
Using a long URL where a short one would do. Longer URLs produce denser codes. If the destination is a landing page you control, shorten it with a clean slug before encoding it.
Printing Wi-Fi credentials on a main network. A code that exposes the main network password is a security problem. Use a guest network for public Wi-Fi codes.
Not testing the printed version. Test the exact print, at the intended viewing distance, with more than one phone, before you commit to a print run.
Assuming the QR code expires. Static QR codes, which is what this tool produces, do not expire. If the code stops working, the destination URL has changed, the Wi-Fi password has changed, or the print has degraded, not the code itself.
Where this tool stops
This generator builds a QR code from the content you enter and draws it on a canvas element. It does not verify that the URL you enter resolves to a working page, that the Wi-Fi credentials you enter are correct, or that the printed code will scan on every phone in every lighting condition. It does not measure the destination page for speed, does not check whether the destination is mobile-friendly, and does not know whether the code will be placed on a flat surface or a curved one. Those checks belong to the person printing and distributing the code.
The encoder supports versions 1 through 7 at error correction level M, which covers URLs up to about one hundred characters, plain text up to about one hundred and twenty characters, and Wi-Fi payloads with a typical SSID and password. Longer content is rejected by the tool rather than silently truncated, which is the safer behaviour. If you need to encode a very long payload, the practical answer is to host the content at a short URL and encode the URL instead.
What the tool does give you is a fast, transparent, private way to build a QR code, preview it, confirm the payload, and download a print-ready PNG. Used together with a real phone test before you publish, it is a practical starting point for any QR code you need to place on a physical surface or a digital one.
Sources
- ISO/IEC. 18004 – QR Code bar code symbology specification. iso.org
- Denso Wave. QR Code essentials and history. qrcode.com
- W3C. HTML Living Standard – The canvas element. html.spec.whatwg.org
- Android Developers. Wi-Fi configuration and Wi-Fi Easy Connect. developer.android.com
- Apple Developer. NEHotspotConfiguration and Wi-Fi QR code support. developer.apple.com
- IETF. RFC 3986 – Uniform Resource Identifier (URI): Generic Syntax. rfc-editor.org