MakeQR is a QR code generator that runs entirely inside the tab you already have open. You choose what the code should do, fill in a short form, and download a PNG or SVG. There is no upload step and no sign-up form standing between you and the file.
Eight types are free and unlimited: a web address, a WiFi network, a contact card, plain text, an email, a text message, a phone number, and a shortcut to a social profile. Menus, PDFs and link pages are the exception, because those are pages rather than strings and have to live on a server.
From an empty form to a printable file
Say what the code should do
The type decides the format written into the pattern, which is why it comes first. A phone number becomes tel:+47…, a network becomes a WIFI: string, a contact becomes a vCard. Picking the type is the difference between a phone acting on the code and a phone showing a wall of text.
Fill in what it needs
Most types ask for one thing. WiFi asks for the network name, the password and the security type; a contact card asks for a name, a number and an email. A web address missing its https:// gets it added, because without it a phone treats the whole thing as plain text.
Design it, within reason
Set the foreground and background colours, the dot shape and the corner style, and drop in a logo. A warning appears when the contrast falls below what print can carry, and adding a logo raises error correction to the highest level so the covered modules are still recoverable.
Download, after it has been read back
Every code is decoded from the rendered image and compared against what you typed before the download button does anything. A code that cannot be read back is a bug worth catching before a thousand copies are printed, not after.
The eight free types, and what each one is actually for
The list is short on purpose. These are the formats a phone can act on without anything in the middle.
Link
Any web address: a product page, a booking form, a Google review page, a shared album. The most flexible choice, because whatever sits at the other end can be changed without touching the code.
WiFi
Network name, password and security type. The phone offers to join, so nobody reads a twenty-character password across a room.
Contact card
A vCard with a name, phone, email and company. One scan writes it into the address book, which beats a typed phone number on a business card.
Text, email, SMS and phone
Plain words for a label, a pre-addressed email, a message with the recipient and body already filled in, or a number that starts a call. Small formats, and the ones people forget exist.
Social profile
A shortcut to Instagram, LinkedIn, Facebook, Snapchat, YouTube, TikTok, Spotify, WhatsApp or Google Maps, written as the address that opens the app rather than the web view.
Why it runs in the tab and not on a server
Encoding is arithmetic. A pattern is a mathematical function of the string it carries, and a browser is perfectly capable of doing that arithmetic, so there is no reason for your WiFi password or your client's phone number to travel to somebody else's computer first.
Two consequences follow, and they are the reason the free tier can be honest. Nothing is stored, so there is no database of what people encoded. And each code costs us nothing after it is made, so there is no quota to enforce, no scan ceiling, and no expiry date to sell you out of later.
Where a subscription starts to matter
Two things genuinely need a server, and those are the paid parts. An editable code points at a short MakeQR link, so changing the destination means changing a record we hold. A hosted menu, PDF or link page is a page we serve.
Everything else — every static type, every colour, logos, the browser scanner, the bulk generator — is free and stays free. Two editable codes are free forever with an account and a verified email address, and paid plans start at $7 a month when you need more of them or the full scan history.
What ends up inside the pattern
Exactly the string your type produces, in the standard every phone camera already understands. A contact card looks like the sample below: readable text, not a reference to a record somewhere else. Scan a downloaded file with the browser scanner and you will see the same characters you typed.
BEGIN:VCARD
VERSION:3.0
N:Berg;Ida
TEL:+47 912 34 567
EMAIL:ida@bergdesign.no
END:VCARDSizing it for the thing it goes on
One rule covers most of it: a phone needs to be about ten code widths away or closer. Twenty millimetres is fine on a card someone holds, a counter sign read from a metre wants five centimetres, and a poster read from across a room wants thirty. Leave a quiet margin of about four modules on every side and never place the code over a photo, a fold or a seam. Matte stock beats gloss under a ceiling light, and a long address makes a denser pattern that needs more room, so shortening the link is a print decision as much as a tidy one.
Print it at least 20 mm (2.0 cm) wide
Four ways a good code goes wrong
Testing on one phone only
The phone that made the code is the least useful test. Borrow an older Android and a camera app that is not the one you use, in the light the code will actually live in.
Sending a PNG to the printer
A 300-pixel PNG scaled up to poster width turns crisp module edges into grey mush that scanners hesitate over. Send the SVG.
Encoding a destination that is not live yet
A code made against a staging address, or a page published later at a different path, scans perfectly into an error. Confirm the address opens on a phone before anything is printed.
Brand colours that look good on screen
Pale gold on white and a dark pattern on a dark photo both read fine on a monitor and fail in a shop. Take the contrast warning seriously — it exists because that is the most common reason a printed code fails.
Static or editable?
Static is the right default. The pattern holds your content, so the code keeps working with no help from us, forever, at no cost.
Editable codes earn their keep in two situations: the destination might move after the code is printed, or you want to know how many people scanned. An account gives you two of those free for good, which is enough to test the idea before paying for anything.
How dynamic QR codes workWhat people come here to make
- A guest WiFi code on a laminated card in a holiday flat.
- A code on the back of a business card that writes a contact into the address book.
- A code on a delivery note that opens a pre-addressed email for returns.
- Three hundred label codes generated from a spreadsheet in one batch.