Valentine QR Code

Write the note you would never say out loud, and hand it over as a code made of hearts. Every dark module becomes a tiny heart; scanning shows your words directly on their screen — no website, no app, no expiry. Slip it in a wallet, tape it to a mirror, bake it into a card. Your browser decodes the finished artwork back to your exact words before you can download it.

Message details

Shown as plain text the moment it is scanned — no internet needed, ever.

Deep shades only: the engine rejects anything under 4.5:1 contrast on white, because scanners need it.

Fill in the form — your keepsake appears and is verified as you type.

Codes render on light backgrounds for reliable scanning.

What the code contains
 

Delivery unlocks only after this exact render is decoded back to your content — the decode-verify promise.

Keep this keepsake

Saves the verified artwork to this browser only — no account exists on this site. Find it later under My keepsakes.

A worked example, rendered by the real engine

Rendered at build time by the same heart-module engine as the tool above. Point a camera at it — offline is fine — and it reads:

Every love story is beautiful, but ours is my favorite. Happy Valentine’s Day, A.

Version 8 at 49×49 modules, error correction H, hearts at 97% cell coverage.

Writing a note that scans beautifully

  • One breath, one scan. The best code valentines read in a single glance: "Every love story is beautiful, but ours is my favorite." Under 100 characters keeps the grid open and the hearts large.
  • Watch the meta line. Under the preview, the generator reports the grid ("Version 5 · 37×37 modules"). If your edit bumps the version, you traded heart size for words — decide deliberately.
  • Accents and emoji survive. The message is carried as UTF-8, so "je t'aime" and "für immer" decode intact. Emoji work too but render at the scanner's mercy — words age better.
  • Sign it in ink. Leave the printed card space for a handwritten line. The code is the surprise; the handwriting is the proof it's you.
  • Wallet card (8.5 × 5.4 cm): code at 3 cm, note under 150 characters. It will be scanned from 15 cm away for years — this size never struggles.
  • Greeting card interior: 4–5 cm code centered on the right-hand page scans without taking the card from the table.
  • Tiny surprises (lunchbox notes, bookmark, mirror sticker): hold the 2 cm floor, and prefer very short messages so the modules stay coarse at that size.
  • Matte over gloss. Glossy stock throws glare into the camera at close range; matte cardstock scans more forgivingly in bedside-lamp light.

Valentine code FAQ

How long can the love note be?

Practically, aim under 300 characters. The code grows denser as the message grows: a one-line note fits a roomy 29×29 grid, a paragraph pushes past 50×50 and each heart shrinks accordingly. Shorter notes literally print with bigger hearts — a rare case where brevity is visibly romantic.

Is the message private?

It is not encrypted — anyone who scans the code can read it. Think of it as a sealed envelope, not a safe: private until scanned, then plain text. For most valentines that is exactly right; do not encode anything you would not write on paper.

Why hearts instead of squares — does it still scan?

Each dark module is redrawn as a heart covering 97% of its cell, a coverage we decode-tested; the three corner squares and inner alignment marks stay classic because scanners navigate by them. Your browser then rasterizes and decodes your exact artwork before downloads unlock, so you never print an unproven code.

Can I use red hearts on a pink background?

Only if the contrast stays at least 4.5:1 — the generator enforces it rather than warning, because a scanner binarizes the image and washed-out pairs fail in the wild. Deep rose or burgundy hearts on white are the sweet spot: unmistakably Valentine, comfortably scannable.

Message or song link — which makes the better valentine?

A message needs nothing but a camera — it works forever, offline, and cannot rot. A link can open your song or a photo album but depends on that page staying up. Sentimental default: encode the note; put the song link in a second small code on the back.

If this valentine comes with a question, the proposal code adds the heart frame around the hearts. Prefer a picture of the two of you inside the code? That is the photo keepsake code. And a gift tag code ties a second message to the chocolates.