
QR Code Creator – Editable, Branded QR Codes
Printed QR codes can't usually be changed. QR Code Creator makes dynamic, branded codes that can be re-pointed after printing, with print-quality downloads and privacy-conscious scan analytics, on plain monthly plans. Designed, built and run by me.
Jump to a section

Built with
- Next.js
- React
- TypeScript
- Tailwind CSS
- Node.js
- MongoDB
- Mongoose
- Stripe
- Sharp
- Nodemailer
- Nginx
At a glance
What it is
editable, branded QR codes that keep working after they're printed
Who it's for
businesses printing QR codes on packaging, signs, menus or marketing
Status
live, with plain paid plans from £4.99 a month
The problem
Once a QR code is printed, it's fixed. If the web address behind it changes, the print run is wasted. And many QR sites offer a "free trial", then charge a lot or quietly let the codes stop working.
The idea
Dynamic QR codes that point to an address you can change at any time, carry your logo and colours, and keep working while you're subscribed, for a plain price with every feature on every plan and no trial that turns into a surprise.
What I built
Codes you can change after printing
Every code goes through a short link the platform controls, so you can edit the destination whenever you need to without reprinting.
Branded and print-ready
Codes can carry your logo and brand colours, and download as print-quality PNG or SVG. When a logo is added, the code automatically uses its strongest error correction, so it still scans.
Scan analytics
See when and how each code is scanned: devices, browsers, operating systems, referrers and campaign tags.
Plans, billing and accounts
Subscriptions are monthly or annual through Stripe, with a self-service billing portal, data export and account deletion. An admin console covers accounts, an audit trail, webhooks and email, and there's a form for reporting codes that are being misused.
Under the hood
Safe destinations: codes can only point to ordinary web addresses. Destinations are checked when they're saved and again on every redirect. A destination is upgraded to HTTPS only after checking that the HTTPS version actually works.
Privacy-conscious analytics: visitors' IP addresses are never stored. They're turned into keyed hashes that rotate daily, so scans can't be linked across days, and scan records expire automatically.
Fast redirects: the scan is redirected first and recorded afterwards, so analytics never slow anyone down.
Careful uploads: logos are checked by their actual file contents, re-encoded and resized, and SVG uploads are refused.
Reliable billing: access is granted only by Stripe's signed confirmations, each processed exactly once, never by a browser landing on a "success" page. Prices come from the platform's own catalogue.
Accounts kept apart: every query is scoped to the account that owns the data, and sign-in is rate-limited and protected against timing attacks.
Tested with an automated test suite.
Try it
Plans start at £4.99 a month, with every feature included and unlimited scans. See how it works and the plans on the live site.
Technical stack
Next.js 15 and React 19 in TypeScript, MongoDB with Mongoose, Stripe subscriptions and webhooks, the qrcode library with Sharp for image processing, file-type checks, jose sessions, Nodemailer, Tailwind CSS and Vitest, running as a Node.js service behind nginx on my own infrastructure.
Gallery
Project Links
Let's Work Together
Ready to Build Something Remarkable?
Whether you need a bespoke website, a full digital marketing strategy or a technical partner who understands business, I'm here.
