QR Code Generator

Pick what the code should do, fill in the fields, and it appears as you type. Ten kinds: a link, plain text, a WiFi network someone can join by pointing a camera at it, a contact card, an email, an SMS, a phone number, WhatsApp, a map pin and a calendar event. Choose your own colours, corner style and a logo for the middle, then download a PNG or a vector SVG. Every code is built by your browser and contains the content itself, so it keeps working with nothing behind it and nobody able to switch it off.

1 · What should it do?

2 · Content

3 · Design

Dot style
Corner style
Code colour
Background
Logo in the middle
Advanced

Leave this alone unless you know you need it. Adding a logo raises it on its own.

4 · Your code

Frequently asked questions

Why is there no option to upload a PDF, a menu or a gallery?

Because those are not codes for your file: they are codes pointing at the vendor’s server, which then redirects. That is how they can offer scan statistics, and it is also why the vendor can switch your printed code off, move it behind a paywall, or take it down with the company. Every code here contains the content itself, so it works with nothing behind it and nobody able to turn it off. Doing the other kind properly needs hosting, which this site deliberately does not have.

My WiFi password has a semicolon in it. Will that work?

Yes. The WiFi format uses semicolons to separate its own fields, so a password containing one has to be escaped or it ends the field early. The resulting code still scans and still offers to join, with the wrong password, and nothing anywhere reports it. That escaping is handled here, along with commas, colons, quotes and backslashes.

Can I put a logo in the middle?

Yes. The middle of a QR code carries no special information, so a logo there destroys ordinary modules that the error correction rebuilds. Choosing a logo moves the error correction to H, and the logo is capped at a width measured by rendering codes with growing logos until they stopped scanning, then leaving margin below that. A bigger logo produces a code that reads on the phone you tested with and fails on a customer’s.

Which error correction level should I pick?

M is a sensible default. Go up to Q or H if the code will be printed small, put on something curved like a bottle, or carry a logo. The higher the level, the more of the code can be damaged and still read, at the cost of a denser grid for the same content.

PNG or SVG?

SVG for anything going to print or a large screen, because it is a vector and stays sharp at any size. PNG for the web, or for a program that will not take an SVG. A code carrying a logo offers PNG only: embedding the picture would put a raster inside the vector, which is neither.

Is my link or WiFi password sent anywhere?

No. The code is generated by your browser. The site’s security policy sets connect-src ‘none’, so the browser blocks network requests from these pages, meaning nothing could be sent even if the code tried. That matters more here than on most pages, because a WiFi code carries a password and a contact card carries a phone number.