52 tools across five families, all running in this tab.
Started as twelve kinds of QR code, checked against the standard each one is supposed to follow. It has grown into five families since — images, PDFs, a shareable note and developer tools too — built the same way: entirely in this browser tab.
No account. Nothing uploaded. Nothing that can be switched off.
A malformed code still looks like a QR code. You only find out it is broken when someone is standing in front of it, trying.
Escaping
A WiFi password containing ; or , corrupts the payload unless it is escaped. Most generators do not.
Wrong
WIFI:S:Rio;P:fl4t;22;;
Right
WIFI:S:Rio;P:fl4t\;22;;
Unescaped, the password reads as fl4t — and the code still scans.
Currency
Several UPI apps reject a payment code with no cu= field. Ours always sets it.
Wrong
upi://pay?pa=rio@ok&am=250
Right
upi://pay?pa=rio@ok&am=250&cu=INR
Without cu=, several UPI apps refuse the payment outright.
Android and iOS
sms:?body= is an iOS convention. Android scanners need SMSTO: — so that is what we emit.
Calendar
RFC 5545 requires UID and DTSTAMP. Without them, some calendar apps refuse the import.
Four more families
QR is where this started.It is not where it stopped.
The same test applies to all five: open your network inspector, use the tool, and watch that nothing you gave it appears in a request. Here is what each family does instead of uploading.
EXIF comes off at the byte level — the pixels are never touched.
A phone writes where you were standing into the file. Stripping it re-encodes nothing: the JPEG's APP1 and COM segments are dropped and the entropy-coded scan data is copied through, so the result is bit-identical and the colour profile survives.
Pages are copied as objects, not flattened into pictures.
Merging, splitting, extracting and reordering move the original page objects between documents with pdf-lib. Most free PDF sites rasterise each page on a server instead, which is why their output is larger, blurs when you zoom, and cannot be searched.
The note is the link. There is no database behind it.
What you write is compressed into the URL fragment — the part after the #, which browsers never send to a server. That is not a policy we are keeping; it is how fragments work. Nothing is stored, so nothing can expire or leak.
A pasted token never leaves the tab it was pasted into.
These are the tools people paste secrets into — an access token to decode, a signing key to test. Every one of them computes in the page, using primitives the browser already ships.
A downloaded square is not a sign. Put it on an A4 or A5 page with your own heading and instructions, then print it or save a vector PDF — for any of the twelve types, not just the one someone built a template for.
WiFi card
Taped by the door. Nobody spells the password out loud again.
Menu card
On the table, with the three steps people actually need.
WhatsApp card
By the till. Scanning opens a chat with the message already typed.
01
Pick the code
Any type. The studio opens on a layout written for that type.
02
Write on it
Your heading, your instructions, your opening hours. Nothing is fixed.
03
Print it
Straight to a printer, or a vector PDF that stays sharp at any size.
Each type encodes a different standard, and getting that standard exactly right is what decides whether a code scans on a cheap phone in bad light. WhatsApp and UPI are the two that carry a whole conversation, or a whole payment, inside one square.
Every tool, every export, at full quality. No watermark, no page cap, no trial that lapses — there is no paid tier to be moved onto.
No upload
Nothing is sent because there is nothing to send it to. Open the network tab and use any tool: your file never appears in a request.
No account
Nothing to sign up for, so nothing to delete later. What history there is sits in this browser, on this device.
Offline
Installed to a home screen, the tools keep working with the network off. There is no call left to fail.
Not training data
Your files never train anything. They were never in anyone's hands to train on — they are decoded, edited and re-encoded inside this tab.
Nothing crippled
No tool is held back to sell an upgrade. If a feature is on the page it is on the page, at full quality, for everyone.
What you give it
This browser tab
Your result
A servernever reached
Open the network tab and use any tool. Nothing appears.
Where the limits are
Where the limits are.
Device memory sets the ceiling
A long PDF or a 50-megapixel photo is held in this tab's memory while it is worked on. Files are queued one at a time for that reason, files above 50 MB are refused before decoding, and iOS Safari will not allocate a canvas past about 16.7 megapixels — so a very large image is scaled down and told so, rather than coming back blank.
A big job is slower here than on a server
A server has more cores than a phone, and on a large batch you will feel that. What you get for it is that the file never left.
Offline needs one online visit first, and one tool needs two
The pages and the code that runs them are cached when the app installs. The one exception is the scanner's decoder, a WebAssembly binary fetched quietly in the background after your first visit rather than on install, because taxing every visitor with it for a tool most never open would be worse. Open the scanner offline before that has happened and it will want a connection once.
What this will never do
What we will not build.
ROADMAP.md keeps a list of things that would need a server, and therefore need trusting. It is published here so that it is a commitment rather than an internal note.
Nothing that holds your files
File and PDF hosting, public file URLs, cloud storage, cloud OCR.
Every one of these needs your file on someone else's disk. That is the promise, not a gap in it.
Nothing that watches a code
URL shortener, dynamic QR, scan analytics.
A scan can only be counted if the code points at a redirect that resolves somewhere — which is also why such a code stops working the day the service does.
Nothing that needs an identity
Accounts, cloud history, collaborative documents.
There is nothing to sign into, which is the whole reason there is nothing to delete.
Nothing that calls out on your behalf
Email sending, web scraping, website screenshots, AI API tools.
Each one turns this tab into a client for a server that then sees whatever you gave it.
Later, maybe
What might come later.
Everything above is finished and free, and none of it is waiting on anything. These are the things being considered next — nothing is promised, and no date is being offered.
Syncing across devices
An optional account, so saved codes and pages follow you to a second device. Accounts will stay optional — the tool will always work fully without one.
Counting scans
This one needs a server, and that is not a policy choice: a scan can only be counted if the code points at a redirect that resolves somewhere. Such a code stops working when the service does — so if it is ever built it will be a separate, clearly-labelled option, never the default, and never applied to a code you already printed.
There is no paid tier today and nothing is being collected to sell. If anything is ever charged for it will be an added service, not the part you are already using.
It takes aboutten seconds.
No sign-up, no watermark, no trial. Pick a tool, do the thing, and take away the result — a QR code, a compressed photo, a merged PDF, whatever you came for.
We use privacy-friendly analytics to see which pages get used — never what is inside a code you generate, which stays on this device either way. Read the privacy policy.