Who writes this
The Upgfrog Editorial Team
We build and test the QR generator on this site. Everything we publish about QR codes comes from measurements we ran ourselves against real encoders and decoders, not from summarising other people's articles.
Why this page exists
Plenty of QR code sites publish a smiling headshot and an invented job title to look trustworthy. We would rather show our working. This page tells you exactly who is behind the guidance here, how each claim was tested, and — just as importantly — what we have not tested and cannot promise.
Articles here are attributed to the team that builds and maintains the generator on this site, not to a fictional individual. If that feels less impressive than a named expert, it is also more honest: the evidence below is reproducible, and a biography would not be.
How we got here
This project started as a straightforward rebuild of a QR generator. The intent was simply to make a nicer interface — until we started checking whether the codes we were producing actually worked.
They did not, all of them. Three of our own design presets rendered beautifully and failed to decode. The cause was not exotic: their gradients ended in colours too light to separate from a white background. That was the moment the project changed character. If a generator can produce a pretty code that no phone can read, then the interesting work is not the interface at all — it is knowing which designs survive contact with a scanner.
So we built a test harness before we built more features. Everything published here comes out of it.
What we actually tested
Each of these runs against the site's own rendering API, and the numbers are the numbers we got — including the failures.
Which design presets actually scan
Method. Each of the 8 built-in templates is rendered at 900px, rasterised at six different resolutions and densities, and decoded with an independent decoder (jsQR via sharp).
Result. Three presets originally failed. Their gradients used light endpoints that a decoder cannot separate from white. We darkened them; all 8 now decode at 6/6 resolutions.
Which corner shape pairings break a code
Method. All 36 combinations of the 6 corner frame shapes and 6 corner dot shapes were rendered and decoded at the same six resolutions.
Result. Five pairings failed every single resolution, and every dotted corner dot was unreliable. That measured table drives the live warning in the design panel.
That each content type encodes a valid payload
Method. All 19 content types are encoded, rendered to an image, decoded back to text, and compared byte-for-byte against the expected string.
Result. All 19 round-trip exactly, including the awkward ones: vCard CRLF line endings, and semicolons inside a Wi-Fi password escaped as ;.
That contrast guidance is grounded, not guessed
Method. Foreground and background are converted to sRGB and compared using the WCAG relative-luminance formula, then checked against decode results.
Result. Low-contrast foregrounds were the single most common cause of failure in our own tests, which is why the generator shows a live contrast ratio.
How we work
We publish the method, not just the conclusion
Every scannability claim on this site names how it was tested and how many attempts succeeded. If we have not tested something, we say so rather than implying we have.
We correct things in public
Our own templates failed our own tests during development. We fixed them and documented it rather than quietly shipping. The corner-shape warning exists because our measurements contradicted what we expected.
No invented experts
Articles are attributed to the team that maintains the generator. We do not publish fictional author biographies or personal anecdotes to make the site look more authoritative than it is.
We are independent
We sell nothing, take no sponsorship, and run no affiliate links. We do not recommend paid dynamic-QR services, and we say plainly where our own free static codes are the wrong tool for a job.
Independence
Upgfrog makes no money from any QR code you create here. The generator is free and unlimited, there is no paid tier, and no feature is withheld. The site may carry display advertising to cover hosting; advertisers have no involvement in, or sight of, what we publish. We have no commercial relationship with any QR code service we mention, including the paid dynamic-code providers we compare ourselves against unfavourably where they genuinely win.
What we cannot tell you
- Our decode testing uses one independent decoder. Phone camera apps are generally more tolerant, so a design we flag as risky may still scan on your device — and one we pass could still fail on unusual hardware.
- We test rendered files, not printed material. Ink spread, glare, curved surfaces and lamination all affect real-world scanning and we cannot measure those for you.
- We are engineers, not lawyers. Nothing on this site is legal advice, including anything we write about what you may encode.
Articles by this team
- QR code security: what a code can and cannot tell you
- QR codes on product packaging
- Generating QR codes in bulk
- QR codes for events, tickets and badges
- QR codes on business cards that people actually scan
- PNG, SVG, PDF or JPG: which QR code file to download
- Which QR code type should you use?
- Wi-Fi QR codes: the one most venues never print
- QR codes or NFC tags?
- Transparent backgrounds and where they go wrong
- Custom corner shapes: the restyling that breaks codes
- vCard or MeCard for a contact QR code?
- Why shortening the URL is usually the best fix for a QR code
- Gradients in QR codes: what works and what quietly fails
- Putting a logo in a QR code without breaking it
- Choosing QR code colours that actually scan
- QR code error correction levels, explained
- The quiet zone: the margin that breaks more codes than anything else
- How big should a QR code be?
- Six reasons your QR code is not working
- QR codes on curved, glossy and awkward surfaces
- How to test a QR code before you print a thousand of them
- Static vs dynamic QR codes: which one do you actually need?
- Designing QR codes that still scan
- QR codes for restaurants and retail that people actually scan
Found something wrong?
Corrections are genuinely welcome, particularly if you have a code that behaves differently on your hardware than our testing predicts. That is exactly the data we cannot generate ourselves.
Tell us what we got wrong