generate QR codes with custom colors, rounded corners, and download as PNG or SVG. runs entirely in your browser.
enter content to see preview
A scannable QR code from any text or URL you paste in. Downloadable as PNG (raster) or SVG (vector). Generated client-side using qrcode, so whatever you encode never leaves your machine — relevant when the data is a personal phone number, a Wi-Fi password, or a single-use auth link.
Every QR code has a fixed size measured in modules (the little square dots). The smallest version is 21×21 modules; the largest is 177×177. The size is not chosen by you — it is forced by the amount of data you encode. A short URL like https://wymzy.ai fits in a tiny 21×21 grid. A 200-character URL with tracking parameters needs a much denser grid, with smaller modules at the same physical print size, which is harder to scan from across a room.
This is why the “why doesn't my QR code scan from the back of the conference room?” question almost always answers itself: the URL is too long. Run it through a link shortener first. The QR code that comes out of a 15-character shortened URL is dramatically easier to read than the one for the full 200-character link with all your UTM parameters.
QR codes are designed to survive being partially obscured. Smudges, scratches, a logo dropped in the middle — the code keeps working as long as the unreadable area stays under a threshold. The threshold is set by the error correction level:
Higher correction means a denser grid for the same data, which means smaller modules at a fixed physical size. There is a real trade-off: too low and a small smudge breaks the code, too high and the code becomes hard to scan because each module is too tiny.
Logo in the middle?
PNG is the right pick for almost everything you put on a screen — slack messages, social posts, web pages, dashboards. Pixel-accurate at the resolution you export.
SVGis the right pick for anything you are printing, embedding in a vector design tool, or scaling beyond ~512px. The QR code is fundamentally a grid of squares, which means it vectorizes perfectly and stays sharp at any size. If you are sending the code to a printer, SVG avoids the “why does it look blurry on the rack cards” conversation later.
Sometimes a glossy print of a QR code reflects the room light and the camera autofocuses on the reflection rather than the print. Tilt the surface a few degrees or move into softer lighting.
A general rule that works for most phones: the code's printed width should be at least 1/10th of the distance from which you expect it to be scanned. A code printed at 1 inch wide is fine from 10 inches; at 5 feet, you want it at least 6 inches wide.
QR codes need to be roughly flat for the corner-detection squares to align. Cylindrical packaging tolerates a slight curve; a code wrapped around a coffee mug usually does not scan reliably without cropping.
Light grey on white, or any pair below roughly 3:1 contrast, causes camera scanners to fail. The classic black-on-white works for a reason. If you must color the code, keep the dark squares dark and the background bright.
QR codes are static. Whatever URL you encode is baked into the squares forever. The only way to change the destination after printing is to make the URL itself a redirect — that is, encode something like links.example.com/menu and then reconfigure that endpoint server-side to point wherever you want.
Services that advertise “dynamic QR codes” are always doing this — the QR code itself is static, but it points at a redirect they control. You can do the same thing yourself with a $10/year domain and any URL shortener. For one-off codes, the QR you generate here is the simpler answer.
A scannable QR code from any text or URL you paste in. Downloadable as PNG (raster) or SVG (vector). Generated client-side using qrcode, so whatever you encode never leaves your machine — relevant when the data is a personal phone number, a Wi-Fi password, or a single-use auth link.
Every QR code has a fixed size measured in modules (the little square dots). The smallest version is 21×21 modules; the largest is 177×177. The size is not chosen by you — it is forced by the amount of data you encode. A short URL like https://wymzy.ai fits in a tiny 21×21 grid. A 200-character URL with tracking parameters needs a much denser grid, with smaller modules at the same physical print size, which is harder to scan from across a room.
This is why the “why doesn't my QR code scan from the back of the conference room?” question almost always answers itself: the URL is too long. Run it through a link shortener first. The QR code that comes out of a 15-character shortened URL is dramatically easier to read than the one for the full 200-character link with all your UTM parameters.
QR codes are designed to survive being partially obscured. Smudges, scratches, a logo dropped in the middle — the code keeps working as long as the unreadable area stays under a threshold. The threshold is set by the error correction level:
Higher correction means a denser grid for the same data, which means smaller modules at a fixed physical size. There is a real trade-off: too low and a small smudge breaks the code, too high and the code becomes hard to scan because each module is too tiny.
Logo in the middle?
PNG is the right pick for almost everything you put on a screen — slack messages, social posts, web pages, dashboards. Pixel-accurate at the resolution you export.
SVGis the right pick for anything you are printing, embedding in a vector design tool, or scaling beyond ~512px. The QR code is fundamentally a grid of squares, which means it vectorizes perfectly and stays sharp at any size. If you are sending the code to a printer, SVG avoids the “why does it look blurry on the rack cards” conversation later.
Sometimes a glossy print of a QR code reflects the room light and the camera autofocuses on the reflection rather than the print. Tilt the surface a few degrees or move into softer lighting.
A general rule that works for most phones: the code's printed width should be at least 1/10th of the distance from which you expect it to be scanned. A code printed at 1 inch wide is fine from 10 inches; at 5 feet, you want it at least 6 inches wide.
QR codes need to be roughly flat for the corner-detection squares to align. Cylindrical packaging tolerates a slight curve; a code wrapped around a coffee mug usually does not scan reliably without cropping.
Light grey on white, or any pair below roughly 3:1 contrast, causes camera scanners to fail. The classic black-on-white works for a reason. If you must color the code, keep the dark squares dark and the background bright.
QR codes are static. Whatever URL you encode is baked into the squares forever. The only way to change the destination after printing is to make the URL itself a redirect — that is, encode something like links.example.com/menu and then reconfigure that endpoint server-side to point wherever you want.
Services that advertise “dynamic QR codes” are always doing this — the QR code itself is static, but it points at a redirect they control. You can do the same thing yourself with a $10/year domain and any URL shortener. For one-off codes, the QR you generate here is the simpler answer.
PDF utilities, image tools, developer helpers — all free, no signup.
Compare two texts side by side with line-by-line diff highlighting.
Generate SEO meta tags, Open Graph, and Twitter Card HTML.
Encode or decode URL strings in real time.
Convert between Unix timestamps and human-readable dates.
Build linear and radial CSS gradients visually.
Preview how your link appears on Facebook, Twitter, LinkedIn, Discord, and Slack.