QR CODES

Print it once.
Change where it goes, forever.

A rii.link QR encodes your short link — never the destination. The ink is permanent; the pointer behind it stays yours to edit. That one fact is the whole feature.

Demonstration: the printed flyer’s QR code never changes — matrix 4f00d9, zero reprints — while the destination it resolves to changed three times over one summer: a menu in May, a waitlist in July, an event recap in September.

THE PRINTNEVER CHANGES
printed MAY 12 · matrix 4f00d9today · still 4f00d9 ✓ verified · reprints 0
WHAT SCANNING IT RESOLVES TOSEP 21
302 · go.acme.com/menu → acme.com/event-recap · same printed code

ONE SUMMER, THREE DESTINATIONS, ZERO REPRINTS — THE LEFT PANE IS THE POINT

DYNAMIC VS STATIC

The difference is what’s in the ink.

“Dynamic”, “tracked” and “routed” aren’t three features. They’re one architectural fact with three consequences.

STATIC — URL IN THE INK

The full destination URL, turned into modules. It works — until the URL changes. Then every printed copy is wrong, and ink doesn’t take edits.

encodes: https://acme.com/menu/summerEDIT = REPRINT EVERYTHING
DYNAMIC — POINTER IN THE INK

A short link, turned into modules once. The destination is a database row you edit; every printed copy follows instantly. The code on the shelf never knows.

encodes: go.acme.com/menuEDIT = ONE FIELD
DESTINATION SWAP — LAST TUESDAY
PRINTEDgo.acme.com/menuunchangedDESTINATIONacme.com/menu/summer→acme.com/menu/autumn
edited 2 days ago · 1,204 scans since · reprints 0

No reprints, ever.

ANATOMY

Know what you’re printing.

Four parts, one budget. Worth two minutes before it goes on ten thousand boxes.

ENCODES go.acme.com/menu · VERSION 2 · 25×25 MODULES · EC M · MATRIX 4f00d9

Finder eyes

Three 7×7 anchors a camera uses to find and orient the code. They stay square here — styled eyes look distinctive and scan worse.

Data modules

The payload, bit by bit — your short link, not your destination. Shorter slug, coarser modules, scans from farther away. Another reason the URL doesn’t belong in the ink.

Quiet zone

Four modules of empty margin, part of the spec. Most “it won’t scan” complaints are a layout crowding this line.

Error correction

Redundancy woven through the matrix: up to 30% can be scuffed, torn or covered and the code still resolves. This is the budget your logo spends — next section.

BRANDING STUDIO

Three real levers. No fake ones.

Exactly what the dashboard gives you: a logo, your colors, a module shape. When a generator promises gradients and custom eyes, ask what they cost in scans.

DASHBOARD · QR SETTINGS — AS SHIPPED
Logo — acme-mark.pngsits on a white chip; contrast is scanability
FOREGROUND#101028
BACKGROUND#FFFFFF
MODULE SHAPE
Module shape applies to data modules only; the three finder squares always stay standard squares.
CORNER RADIUS12 px
params: utm_source=qr (editable, per code) · export: PNG · up to 1000 px
PREVIEWgo.acme.com/menu · EC M

The logo spends the same budget damage does.

error correction × the same logo, honestly
L · 7% toleranceThe logo alone spends most of it. Screens only.
M · 15% toleranceThe default. Logo fits — barely.
Q · 25% toleranceLogo plus a scuff or a fold.
H · 30% toleranceLogo plus shelf life. Print this.

A centered logo covers roughly 10–12% of the matrix. On anything that gets handled, shipped or weathered, print H — it keeps the rest in reserve.

PLACEMENTS

One code, every surface.

It’s the same pointer whether it’s lacquered onto packaging or forty feet wide in a station. Print the size the surface needs; the link underneath doesn’t care.

PACKAGING
MENU
EVENT BADGE
FLYER
TV / OOH
SCAN ANALYTICS

A scan is a click.

Same table, same dashboard, same export. There’s no separate “QR analytics” product because there’s no separate pipeline — a scan arrives as a click.

And no hidden fingerprinting: scans are told apart only because the code’s URL carries a visible rii_qr marker — plus any UTM tags you add in the QR settings.

QR vs LINK SPLITSAME PIPELINEBOTS FILTERED

Synthetic sample of scans in the request log: time, country, device, status and path for each scan — the same columns the dashboard’s live request log shows.

SYNTHETIC SAMPLE — COLUMNS FROM THE LIVE REQUEST LOG
QR × SMART ROUTING

Routing rules ride along. Unbundling them is impossible.

A scan resolves through the same single path as a click, so every rule on the link — geo, device, time, language — already applies to the printed code. Routing rules come with Premium — and there’s no separate QR add-on to buy on top.

scan · Berlin · Android · 19:42→acme.de/karteGEO + LANGUAGE
scan · Austin · iPhone · 08:15→apps.apple.com · Acme appDEVICE

Every rule type, in depth → /smart-routing

START NOW

Print it once. We’ll keep it pointed at the right place.

Codes are on the free tier — export a PNG in the next five minutes, reprint it never.

Codes look better on your own domain → /custom-domains