Turn any URL or text into a scannable QR code, rendered as SVG entirely in your browser - nothing is uploaded.
Matrix size
Anything that fits on a scan: a URL, a Wi-Fi string, a phone number, or a plain note
A QR code is a grid of black and white squares - modules - arranged so a camera can decode them back into whatever text you started with: a URL, a Wi-Fi password, a phone number. Nothing about that process needs a server, so this tool builds the grid directly in your browser and never sends what you type anywhere. The error correction level controls a trade-off: higher levels duplicate more of the data across the grid, so the code still scans even if part of it is torn, scratched, or covered by a logo, but that redundancy pads out the symbol into a larger grid. Pick L or M for something that will only ever be a clean image on a screen, and Q or H if the code is heading to a print run, a sticker that will pick up wear, or a design with a logo overlaid on the center.
The URL https://toolbera.com, encoded at error correction M, produces a version 2 symbol - a 25 × 25 module grid. That is the smallest version this library will use once the built-in finder patterns, timing strips, and format bits are accounted for at this data length and EC level.
Encode that exact same URL again but switch error correction to H, and the symbol grows to version 3 (29 × 29 modules) even though the text did not change. The extra rows and columns are pure redundancy - reed-Solomon error-correction data - bought at the cost of a bigger, denser-looking code.
Paste in something longer, like a blog post URL with a slug and a few path segments, and the version climbs further still - a URL of roughly 80 characters at level M lands at version 5 (37 × 37 modules). Version scales with how much data has to fit, independent of error correction.
Do QR codes expire?
No. A QR code is just a static encoding of whatever text you gave it - there is no server, timer, or account behind it. If the code points to a URL and that page later goes offline, the QR code still scans fine; it is the destination that failed, not the code.
Does this tool store or send my text anywhere?
No. The grid is computed locally in your browser and rendered as an SVG string - your text never leaves the page, is not logged, and is not sent to any server for the encoding step.
Should I download the SVG or the PNG?
SVG scales to any size without blurring, so it is the better pick for print, signage, or anything a designer will resize later. PNG is a fixed-resolution snapshot, which is fine for a quick share in a chat or a document where you will not be resizing it.
Can a scratched or partly covered QR code still scan?
Often, yes - that is what error correction is for. At level H, roughly 30% of the symbol can be damaged or obscured (a logo in the center, a torn corner) and a scanner can still reconstruct the original data from what remains. Level L has almost none of that headroom.
Why is my QR code bigger than one someone else generated for a similar link?
Symbol size (the "version") is driven by two things: how much text you are encoding and which error correction level you picked. A longer URL or a higher EC setting both push the encoder to the next version up, which adds a ring of modules on every side - so two codes for similar-looking links can land at different sizes if one has more query parameters or a stricter EC level.