Create a styled QR code in one step

Pick a type, style every module, download PNG or SVG. No account, nothing leaves your browser.

Unicode, emoji, and international characters supported
International format — scanning opens a chat with this number via wa.me
Scanning opens a chat via t.me
Compact contact format — denser than vCard, ideal for print
Find it with Google's Place ID finder — scanning opens your review form directly
One code per store — a single code for both stores would need a redirect server, which breaks our no-server privacy promise
EPC069-12 format — European banking apps scan it to pre-fill a transfer
Modules
Eye ring
Eye ball
#000000
Ball color
Transparent
Logo preview
Centred — error correction H preserves scan reliability
Or pick an icon:
Size
22%
Ring
Weight
Animated GIF logos animate in the GIF and SVG downloads — PNG uses the first frame.
90%
400px

Your QR code will appear here

Modules
Bytes
Shape
Data density 0%
Advertisement
Advertisement
Best practices
  • High contrast between QR and background is essential
  • Use SVG export for print — it scales without pixelation
  • Test with multiple scanners before publishing
  • Heart and star shapes clip corners — always scan-test

Free, no account

Every feature, every export format. Nothing to sign up for.

Private by design

QR codes are generated in your browser. Your content never touches a server.

PNG and SVG

Crisp raster for screens, true vector for print at any size.

Style every module

Dots, rounded modules, custom finder eyes, gradients and SCAN ME frames — with a built-in scan check.

How it works

Whatever you type — a link, WiFi details, a contact card — is first turned into a payload string in the exact format phone cameras expect, then encoded into a QR matrix with the level of error correction you choose. The matrix is drawn onto a canvas in your browser, where the styling happens: module shapes, eye styles, colours, gradients, frames and an optional logo are all rendering choices layered on top of the same underlying code.

That layering is why styled codes still scan. The data lives in the matrix, not in the decoration — and error correction means a reader can reconstruct the full message even when a logo covers part of the pattern. The PNG you download is that canvas at your chosen size; the SVG is the same code rebuilt as vector shapes, so it prints sharp at any scale.

Nothing is generated on a server. The encoding library, the fonts and every icon in the logo picker are part of this page, which is why the generator keeps working even if your connection drops after loading.

Common questions

Is Free QR Pro really free?

Yes. Every content type, every shape, PNG and SVG export, and the logo overlay are free with no account and no watermark. The site is funded by ads.

Do my QR codes ever expire?

No. We generate static QR codes, which encode your content directly into the pattern. There is no redirect through our servers, so a code you print today keeps working even if this site disappears. The trade-off is that you can't change where a static code points after printing it.

Is my data sent to your server?

No. The QR code is generated entirely in your browser using JavaScript. The text, WiFi password, or contact details you enter never leave your device.

Can I use these QR codes commercially?

Yes. Codes you generate are yours to use on products, packaging, menus, business cards, or anywhere else, including commercial projects. No attribution required.

Why does my QR code fail to scan?

The three usual causes are low contrast between the code and its background, printing too small, and shape clipping. Heart and star shapes crop the corner finder patterns that scanners look for. Try a square or circle, raise the contrast, and print at least 3 cm across.

Should I download PNG or SVG?

PNG for screens, email, and social posts. SVG for anything printed, because it's vector-based and stays sharp at any size, from a business card to a billboard.

Will styled modules and eyes still scan?

Yes, within limits. Scanners read the contrast pattern, not exact square shapes, so rounded modules, dots, and custom finder eyes decode normally. The built-in scan check warns you when contrast or module size drops below safe thresholds — and every code uses error correction level H for extra headroom.

How do I make a WhatsApp QR code?

Choose the WhatsApp type, enter your number in international format and an optional pre-filled message. Scanning opens a chat with you instantly through WhatsApp's official wa.me link — no app-store detour, no expiry.

Will adding a logo break the code?

Usually not. We generate every code at error correction level H, which lets roughly 30% of the pattern be obscured and still decode. Keep the logo centred and under about a quarter of the code's width, then scan-test before publishing.