QR codes

A QR code you can change after it is printed.

Static QR codes freeze the destination in ink. A gc.mw QR encodes the short link, so the destination stays editable and every scan is counted.

Shorten something now

What you get

  • One URL, two formats

    gc.mw/code.qr is a 512-pixel PNG; gc.mw/code.svg is vector for print. Query parameters set size, foreground and background colours.

  • Scans counted separately

    A visit that arrives through the QR endpoint is recorded as a scan, so you can compare print placements against digital ones.

  • Short means scannable

    A 10-character link produces a QR with fewer modules than a 40-character one — larger squares, more forgiving of bad lighting and small print.

  • Logo and colours

    Paid plans can place a centre logo and pick brand colours; the generator keeps error correction high enough that the logo does not break scanning.

  • Cached for print runs

    QR images are cached for a day at the edge, so a code on 50,000 flyers costs nothing to serve.

  • Works without an account

    The free QR generator on this site renders codes in your browser; nothing is uploaded. Use it for Wi-Fi, text, vCards and plain URLs.

How it works

  1. Shorten the link

    Create a gc.mw link for the destination you want to print.

  2. Download the QR

    Open gc.mw/code.svg for print or .qr for screens. Choose colours with ?fg= and ?bg=.

  3. Print, then keep editing

    Change the destination any time. The printed code keeps working because it points at the short link, not the destination.

Questions people ask

Do gc.mw QR codes expire?

The QR works as long as the link does. Links on a paid plan never expire while the plan is active; free-account links last 12 months and anonymous links 30 days, so buy a lifetime link before you send anything to print.

What size should I print?

At least 2 cm across for arm's-length scanning, larger for posters. Keep a quiet zone of four modules around the code and use the SVG for anything printed.

Can I generate a QR for something that is not a link?

Yes: the free generator on this site handles text, Wi-Fi credentials and vCards entirely in the browser. Those codes are static and cannot be tracked or edited.

QR codes you can re-point after they are printed

The QR code on a laminated table card outlives every decision that produced it. The menu moves, the campaign ends, the agency changes, and the code is still there in the plastic. Whether that is an asset or a liability comes down to one question asked at design time: does the code encode the destination, or does it encode a link you control?

The two URLs

Every gc.mw link has its QR at two addresses. gc.mw/k7Rq.qr returns a PNG, 512 pixels by default. gc.mw/k7Rq.svg returns vector, which is what you send to a printer. Both take size between 96 and 2048, and fg and bg as hex colours, so gc.mw/k7Rq.svg?fg=1a1a2e&bg=ffffff is a complete print asset produced by typing a URL.

Images are cached for a day at the CDN with a week of stale-while-revalidate. A code on 50,000 flyers costs nothing to serve, because the image never changes — the redirect behind it does.

A QR code is a grid of modules. More data means more modules, and at a fixed printed width more modules means each one is physically smaller. Smaller modules are less forgiving of low light, cheap paper, a curved surface, or a camera held at an angle by someone walking past.

A four-character gc.mw code makes https://gc.mw/k7Rq — eighteen characters including the scheme. A typical campaign URL with UTM tags runs past 150. That difference is one or two version steps in the symbol, which is visible as chunkier squares on the same card.

This is the one place where our shorter codes are not a rounding error. Everywhere else, four characters versus seven is a talking point. On a bus shelter it is the difference between a scan and a shrug.

A worked example

A conference printed 400 lanyard backs with gc.mw/sched — an alias, not a random code, because attendees also typed it.

Day one, the schedule page fell over. The destination was re-pointed to a static PDF on another host in about ten seconds; the redirect cache invalidates on save, so the change was live before the next scan. Nobody in the hall knew anything had happened. The lanyards were not the problem, because the lanyards did not contain the answer — they contained a pointer to it.

At the end of the event the split mattered more than the total. Scans on the lanyard code ran ahead of clicks on the same link from the emailed agenda by roughly three to one, which told the organisers where to put their money the following year. One number, and it only exists because scans and clicks are recorded separately.

Error correction, logos and the trade behind them

QR codes carry redundancy so a damaged symbol still reads. More redundancy means more modules, which means smaller squares at the same width — the same trade as link length, arriving from a different direction.

Putting a logo in the centre deliberately damages the symbol and leans on that redundancy to survive. It works, up to a point, and past that point the code scans on your desk and fails on a wall. Our generator caps the logo at a fraction of the symbol and raises the error correction level to match; if you want a bigger logo, print a bigger code rather than a more damaged one.

QR Code Generator

Open the full tool

Wi-Fi credentials, a phone number, a vCard, plain text. These render entirely in your browser — nothing is uploaded, which matters when the payload is your guest network password. They are static by definition, so they cannot be tracked or re-pointed, and that is the correct trade for a code taped inside a cupboard door.

For anything that goes in front of customers, shorten first. Make the link on the branded links page, print the SVG, and keep the destination editable for as long as the print survives — which, in our experience, is always longer than anyone planned.