QR Web
Create

Free · No account · Works offline

Print it once.It keeps working.

Point a camera. Get the answer.

Twelve kinds of code, built in this browser and checked against the standard each one is supposed to follow. Put yours on an A4 or A5 page with your own heading and instructions, then print it.

No account. Nothing uploaded. Nothing that can be switched off.

↑ real code — try scanning it

Why the details matter

A wrong square fails silently.

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.

  1. Wrong

    WIFI:S:Rio;P:fl4t;22;;
  2. 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.

  1. Wrong

    upi://pay?pa=rio@ok&am=250
  2. 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.

The part nobody else does

A code on its own tells nobody what it is for.

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.

  1. 01

    Pick the code

    Any type. The studio opens on a layout written for that type.

  2. 02

    Write on it

    Your heading, your instructions, your opening hours. Nothing is fixed.

  3. 03

    Print it

    Straight to a printer, or a vector PDF that stays sharp at any size.

What this will always do

Nowhere. It goes nowhere.

Static QR codes are built entirely in this browser tab. The WiFi password, the UPI ID, the phone number none of it is sent anywhere, because there is no server to send it to.

  • No upload

    The encoder runs on your device — open the network tab: nothing you type is in a request.

  • No account

    Nothing to sign up for. History is saved on this device only.

  • No expiry

    A static code has the data inside it. It works after we are gone.

  1. What you type
  2. This browser tab
  3. Your finished code

A servernever reached

Open the network tab and type into any generator. Nothing appears.

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 about ten seconds.

No sign-up, no watermark, no trial. Pick a type, fill in one field, and take away the square — or the printable page it belongs on.