✶Free tool
WhatsApp link and branded QR maker
Turn your number into a link that opens a chat with the first message already written — and into a QR code in your own colours that a phone can still read. Both are built here, in this browser, on your device. Nothing you type is sent anywhere, because there is nowhere for it to be sent.
The tool
Your link
Enter a number to build your link.
What your customer sees when they tap the link or scan the code. They press send; you get the message.
Paste these into WhatsApp Business
In WhatsApp Business: Settings → Business tools → Away message. Turn it on, paste, and set the schedule to “Outside of business hours” so it only fires when you are actually shut.
Nothing you type here is sent anywhere. Your number, your message and your opening hours are turned into a link, a code and some text by scripts running on your own device, and there is no server behind this tool to receive them. The page counts that a code was made, the way every page here counts a visit — it never sends what you put in it. Open the Network tab in your browser's developer tools and watch.
✶What to do with it
Three places this earns its keep
- 01The link goes where people already look Your Instagram bio, your Google Business Profile, the signature on your quotes, the footer of your invoices. Anywhere a customer might be holding a phone and thinking about buying. The message being pre-written is the whole trick: it removes the sentence they would otherwise have to compose, and that sentence is where most enquiries die.
- 02The code goes on the things you print The counter, the shop window, the van, the delivery note, the product itself. Pick a palette, download the PNG for anything digital and the SVG for anything a printer is going to handle — SVG has no resolution to run out of, so it stays sharp at any size.
- 03The away message answers when you cannot A message that arrives at 9pm on a Thursday and gets nothing back until Sunday is a customer deciding you are not interested. Two lines saying when you open and when you will reply keeps them. In both languages, because your customers are not all reading the same one.
✶Before you print it
How big the code has to be
A QR code that is too small does not scan, and you find out after the flyers are printed. Two rules of thumb, and the tool applies both to the code you have actually made.
The first: a code should be about a tenth as wide as the distance it is read from. The second: a printed module — one of the little squares — should not fall below about half a millimetre on ordinary printing. Take whichever is larger. The last column updates as you build your code, because the answer depends on how much you put in it.
| Where it goes | For example | Read from | Print it at least |
|---|---|---|---|
| In the hand | A business card, a receipt, a product label | 25 cm | — |
| On a counter | A table talker or a till-side sticker | 50 cm | — |
| On a wall | A shop window or a door | 1.5 m | — |
| Across a room | A pull-up banner or a wall poster | 4 m | — |
Add the quiet margin — the empty border around the code — to those numbers, or rather, do not remove it: it is already in every file this page gives you, and a designer cropping it off is the single most common way a working code stops working.
✶Why it looks like that
A brand asset, not a barcode — and still readable
The mark is sized by measurement, not taste
Putting a logo in the middle of a QR code destroys part of it. That is survivable, because QR codes carry error correction, but only up to a point — and past that point the code looks perfect and does not scan.
So the plate is not a fixed size. The page grows it, renders the artwork, reads the pixels back the way a scanner would and decodes them, then keeps the largest mark that still leaves most of the error-correction budget unspent. That reserve is what a real scan spends on blur, glare and angle.
The corners round, the eyes do not
The modules are rounded because it softens the field without losing any dark area. The three big squares in the corners are left alone on purpose.
A scanner finds a code by hunting a 1:1:3:1:1 run of dark and light across those corners. Rounding them skews that ratio on every scan line that does not cross dead centre. Tested, and even a slight radius stopped the code decoding — so the brand lives in the colour of the eyes, not their shape.
Gold, but only where gold still reads as dark
A scanner does not see colour. It turns the picture into black and white on a threshold, so every coloured part has to land on the correct side of that threshold.
Our gold is dark enough to pass for a dark module on cream. On the dark palette it is not, which is why that one uses a pale gold instead. A mid-tone on a mid-tone reads as neither, and that is how most “branded” QR codes quietly stop working.
Inverted codes are a real risk, so we say so
The Cream on ink palette is an inverted code: light modules on a dark ground. Modern phone cameras generally read them. Plenty of ordinary barcode apps cannot — we tested it against OpenCV, which many of them are built on, and it failed on every inverted code while reading the same code perfectly the moment the image was flipped.
So it is offered, because a dark flyer wants a dark code, and it is labelled. If the public is going to scan it, use Ink on cream.
✶One thing this will never do
There is no short link, and there never will be
Most QR generators hand you a code that points at their domain, which then redirects to yours. It is a good business for them: they see every scan, and they can charge you later for a code you have already printed on two thousand flyers.
It is a bad deal for you and a worse one for us. For you, because your code now depends on somebody else's company still existing and still being free. For us, because a redirect service on this domain would be found and used for phishing within weeks, and the blocklisting that followed would take our search results and our email with it.
So the code contains your link. Not ours. Nothing of ours sits between your customer and your chat, this page could vanish tomorrow, and every code it ever made would carry on working.
✶Questions
The ones worth answering
Does anything I type get sent to you?
No. The link and the code are both built by JavaScript running on your own device. There is no server behind this page, no form submission and no upload.
Check it rather than believe it: open your browser's developer tools, watch the Network tab and use the whole tool. The page's own files load at the start, and after that the only thing that leaves is the same anonymous visit counting that runs on every page of this site, plus one ping saying a code was made and which palette it used. Your number and your message are in neither, because nothing in this tool ever hands them to anything that could send them.
Is the QR code linked to your website in any way?
No, and deliberately so. The code contains your wa.me link and nothing else. We do not run a redirect, a short link or a tracking hop, so there is nothing of ours between your customer and your chat — nothing that can break, expire, start counting your scans, or stop working if this website ever disappears.
Will the code still work if I change my mind about the message?
No — and this is the one thing to get right before you print. The message is baked into the code, so a new message means a new code. The phone number is baked in too. Print a code with a message you are happy to keep, or leave the message empty so the code just opens a blank chat with you.
Why does the code get bigger when I write a longer message?
Because the message is stored inside the code itself, not fetched from anywhere. More text means more modules — the little squares — which means the code has to be printed larger to stay scannable. The page tells you the module count and the minimum print size as you type. If the code is getting dense, shorten the message: the customer can always type the rest themselves.
What does the “checked” line under the code mean?
That the code you are looking at was decoded before the download was unlocked. The page renders the artwork, reads the pixels back the way a scanner would, and runs a decoder over them. Putting a logo in the middle of a QR code destroys some of it — that is fine, because QR codes carry error correction, but only up to a point. The percentage is how much of that error-correction budget is still unspent after the logo. We keep most of it in reserve, because a real scan adds blur, glare and angle that a clean render does not.
Can I use my own colours or my own logo?
Not on this page. The three palettes here are the ones that were checked by actually decoding them, and the mark in the middle is ours. Arbitrary colours are how branded QR codes stop scanning — a mid-tone on a mid-tone reads as neither dark nor light. Your own mark, in your own colours, checked the same way, is part of what we build.
Do I need WhatsApp Business for this?
Not for the link or the code — they work with any WhatsApp account. The away message in the second tab does need WhatsApp Business, which is free: it is under Settings, Business tools, Away message. The greeting message and quick replies live in the same place.
Is this an official WhatsApp tool?
No. WhatsApp is a Meta product and we are not affiliated with them. wa.me is WhatsApp's own public link format, documented by them, and this page just assembles one correctly — including getting the percent-encoding right for Arabic, which is where hand-made links usually break.
✶Where this came from
This is one button of the thing I actually build
A link that opens a chat with the message already written is a small piece of a larger idea: that the distance between someone being interested and someone being in touch with you should be as close to nothing as it can be. The Smart Website is that idea applied to the whole path — the pages, the enquiry, the follow-up, and the part where the message gets answered rather than just received.
This page is free and stays free. It is also a fair sample: it was built the way the paid work is built, and it is doing the same job — getting the customer to the message.