Text QR Code Generator

Encode a message, not an action.

Type your text below. Scanning simply displays it on screen. Nothing opens, nothing is dialed, no network is contacted. It is the only type here that works with no signal whatsoever.

Customize

Type
Encodes a website URL. Opens in the phone's browser when scanned. Encodes plain text. Displays as-is when scanned. No link, no app needed. Encodes a contact card. Phones can save it directly as a new contact. Encodes Wi-Fi credentials. Phones can join the network directly by scanning, with no password to type. Encodes an email address. Opens a pre-filled draft in the phone's mail app when scanned. Encodes a phone number. Opens the phone's dialer, pre-filled, when scanned. Encodes a text message, pre-addressed. The message itself may not always pre-fill depending on the recipient's phone, which varies by device. Opens a WhatsApp chat with the number pre-filled, and the message too if you add one. Requires WhatsApp installed (or web.whatsapp.com). Encodes a map coordinate. Opens the phone's default maps app, centered on that point, when scanned. Encodes a calendar event. Phones can add it directly to their calendar app when scanned.
Colors Templates, code and background, eyes
Quick color templatesReady-made pairs that fill in the code and background colors below. A starting point, not a limit; change either afterwards. 30 ready-made pairs

Pick a preset to fill in the dot and background colors below, or skip this and choose your own.

Light backgrounds
Dark backgrounds

Light dots read fine on dark backgrounds on screen, but most scanners are tuned for dark-on-light -- test before printing at volume. Scan reliability tips.

Dot colorThe color of the pattern itself. Dark on light scans most reliably; a gradient is available on the paid plans.
BackgroundThe color behind the pattern, or none at all. Keep it well clear of the code's own color, because scanners read contrast, not hue.
Eye frame colorThe three large squares' outer rings. “Match code” follows the code color, so it keeps up if you change your mind later.
Eye center colorThe solid centers of the three large squares. Coloring these differently is the smallest change that makes a code look designed.
Shape & style Dots, corners, eyes, roundness
Eye center shapeThe solid center inside each of those three squares.
ShapeFits the whole code inside a circle instead of a square. The pattern shrinks to stay inside it, so it can be harder to scan from a distance.
Fits the whole code inside a circle. The pattern shrinks slightly to stay inside it, so it may be a little harder to scan from a distance.
Advanced Frames and captions, minimum size, download size

Preview

Generated QR code. Press and hold to save or share.

Log in to save QR codes to your account. Sign up free to get 2 dynamic QR codes you can edit after printing.

Made in your browser. Nothing is sent to us unless you save it to your account. Check it yourself

Open your browser's developer tools and switch to the Network tab, then build a code.

You will see this page load its own files: a stylesheet, two typefaces from Google Fonts, and our analytics. Like most sites, this one loads those. What you will not see is a request carrying the link you typed, the contents of your code, or the image itself, because the code is drawn here on your device and there is nowhere for it to be sent.

More about how this works

Its real advantage is that it needs nothing

Every other type here ends in something happening: a browser opens, a dialler fills, a network prompt appears. This one ends with words on a screen, and that constraint is the feature.

No connection, no app, no server, no dependency on this site continuing to exist. A text code printed today reads identically in twenty years in a basement plant room with no reception. That is a genuinely different reliability class from anything that resolves a URL.

Where that matters:

  • Equipment and asset labels. Serial numbers, model numbers, service dates, calibration records.
  • Field instructions. A short procedure on a machine, a valve, a breaker panel.
  • Inventory and warehouse tags, where a scanner app captures the value straight into a system.
  • Places with no signal. Plant rooms, cellars, shipping containers, remote sites, underground.

If you want someone to do something, use another type

A text code puts the burden of acting back on the reader. Show a phone number as text and they have to memorize it and switch apps; a phone code puts it in the dialler. Show a web address as text and they have to type it; a link code opens it.

Choose text when the message genuinely is the point: a reference, a value, a caution, a set of words someone needs to read or copy. Choose a purpose-built type whenever there is an action attached, because those produce a tappable prompt and this does not.

Length is the constraint, and it is measured in bytes

Every character is encoded directly, so these get dense faster than people expect. A sentence is comfortable. Several paragraphs produce a grid too fine to scan at any sane printed size.

The hard ceiling is 1,273 bytes and the generator refuses anything longer, but treat a couple of hundred characters as the practical limit for something being printed and read at arm's length.

Note that is bytes, not characters. Accented letters, non-Latin scripts and emoji each consume two to four bytes, so a message well under 1,273 characters can still be rejected. A code full of emoji becomes dense several times faster than plain ASCII. See QR code capacity for the underlying numbers.

Frequently asked questions

Will scanning it open a browser?

No, and that is the defining property of this type. Most phone cameras show the text as a notification or an on-screen banner with an option to copy or share it, and nothing else happens.

Can I include a URL in the text?

You can, and most phones will render it as tappable, but a link code is more reliable and produces a cleaner prompt. Use text when the message is the point and any link in it is incidental.

Do line breaks survive?

They are encoded, but how they are displayed is entirely up to the scanning app and some collapse them. Do not rely on layout; keep the message readable as a single block of prose.

Can I use emoji or non-English characters?

Yes, both are supported. Just be aware they eat the capacity budget several times faster than plain ASCII, so the code becomes dense quickly.

Is the text hidden or encrypted in any way?

No. A QR code is an encoding, not encryption. Anyone with a phone can read it, and anyone with a photo of it can read it later. Never use one to conceal anything.