HomeText & GeneratorsQR Code Generator

any link. one scan.

generate QR codes with custom colors, rounded corners, and download as PNG or SVG. runs entirely in your browser.

#000000
#FFFFFF
preview

enter content to see preview

What this generates

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.

The thing nobody tells you about QR codes

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.

Error correction levels

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:

  • L (Low) — recovers from up to 7% damage. Smallest code, densest information.
  • M (Medium) — up to 15% damage. The default and a good general-purpose pick.
  • Q (Quartile) — up to 25% damage. Useful for codes printed on rough surfaces or on packaging that gets scuffed.
  • H (High) — up to 30% damage. The level you want if you are dropping a logo into the center of the code.

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?

Set error correction to H. The QR specification will recover the data around an obscuration of up to 30% of the code area, which is plenty for a centered logo at ~20% of the width.

PNG vs SVG: which to download

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.

Common scan failures and what causes them

The phone camera focuses on the table behind the code

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.

The code is too small for the scanning distance

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.

The code is on a curved surface

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.

The contrast is too low

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.

What “static” vs “dynamic” means

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.

What this generates

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.

The thing nobody tells you about QR codes

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.

Error correction levels

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:

  • L (Low) — recovers from up to 7% damage. Smallest code, densest information.
  • M (Medium) — up to 15% damage. The default and a good general-purpose pick.
  • Q (Quartile) — up to 25% damage. Useful for codes printed on rough surfaces or on packaging that gets scuffed.
  • H (High) — up to 30% damage. The level you want if you are dropping a logo into the center of the code.

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?

Set error correction to H. The QR specification will recover the data around an obscuration of up to 30% of the code area, which is plenty for a centered logo at ~20% of the width.

PNG vs SVG: which to download

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.

Common scan failures and what causes them

The phone camera focuses on the table behind the code

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.

The code is too small for the scanning distance

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.

The code is on a curved surface

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.

The contrast is too low

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.

What “static” vs “dynamic” means

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.

more free tools

PDF utilities, image tools, developer helpers — all free, no signup.

Something wrong?