DEV Community

Cover image for I Built a Free QR Code Generator from Scratch β€” 24 Types, No Sign-Up, No Expiry
QRKodu.online β›Ά
QRKodu.online β›Ά

Posted on

I Built a Free QR Code Generator from Scratch β€” 24 Types, No Sign-Up, No Expiry

Hey Dev.to! πŸ‘‹
I just shipped a side project I've been working on and wanted to share it with this community: QRKodu.online β€” a completely free QR code generator with no account required.
Why I Built It
Most QR code tools online either require you to sign up, put generated codes behind a paywall, or make your QR codes expire after 30 days. That's frustrating when all you want to do is share your WiFi password or create a QR for your Instagram profile.
My goal was simple: Open, generate, download. Done.
What It Does
24 different QR code types: URL, WiFi, WhatsApp, TikTok, Instagram, LinkedIn, Telegram, vCard (digital business card), SMS, Email, Location, Boarding Pass, and more
PNG & SVG download β€” from 128px all the way to 1024px print quality
Transparent background PNG β€” great for print and design overlays
Custom logo β€” drop your own logo right in the center of the QR code
Full style customization β€” QR color, background color, module shape (square, rounded, circle), and corner style
Built-in QR scanner β€” scan QR codes via camera or by uploading an image
Browser-based history β€” your previously generated QR codes are saved locally
Bilingual UI β€” Turkish πŸ‡ΉπŸ‡· and English πŸ‡¬πŸ‡§
Tech Stack
Built entirely with vanilla JavaScript + HTML/CSS β€” no frameworks. QR generation uses the qr-code-styling library. Everything runs client-side, meaning no data is ever sent to a server. Privacy by design.

Tech Stack
Built entirely with vanilla JavaScript + HTML/CSS β€” no frameworks. QR generation uses the qr-code-styling library. Everything runs client-side, meaning no data is ever sent to a server. Privacy by design.

User data sent to server β†’ Never βœ…
QR generation β†’ 100% client-side βœ…
Account required β†’ Nope βœ…
Cost β†’ Zero βœ…
Expiry β†’ None β€” QR codes work forever βœ…
Enter fullscreen mode Exit fullscreen mode

What I Learned
Lazy-loading matters: Loading the QR library with requestIdleCallback significantly improved LCP (Largest Contentful Paint)
24 types β†’ one clean UX: Each QR type needs different form fields β€” building a dynamic form renderer that stays intuitive was the real challenge
SVG vs PNG tradeoff: Users instinctively want PNG, but SVG is far superior for print. Offering both turned out to be the right call
i18n without a framework: Handling Turkish/English switching with a plain JS object map was surprisingly clean and lightweight

Try It Out
πŸ‘‰ qrkodu.online

I'd love your feedback β€” what QR type am I missing? What feature would you add? Drop a comment below! πŸš€

Built with ❀️ β€” no ads, no tracking, no sign-up.

Top comments (0)