Mini QR
Mini QR lets you scan and generate customized QR codes easily entirely on your own server.
Self-hosted QR code generation, honestly reviewed. No marketing fluff, just what you get when you run it yourself.
TL;DR
- What it is: Open-source (GPL-3.0) QR code generator with serious visual customization — think “the QR code generator that doesn’t output the depressing black-and-white pixel grid everyone ignores” [1].
- Who it’s for: Founders, marketers, and developers who generate QR codes regularly and are tired of SaaS pricing for what is fundamentally a simple utility — or who need batch generation for product packaging, events, or campaigns [README][4].
- Cost savings: Cloud QR platforms (Uniqode, Bitly QR, QR Code Generator Pro) charge $8–$29+/month for features like dynamic codes, branding, and bulk export. Mini QR self-hosted runs on a $5/mo VPS with no per-code limits [2][README].
- Key strength: The visual output. Gigazine — one of the top 25 tech news sites by TIME.com — specifically reviewed it because the QR codes look good [1]. You get color control, dot styles, corner shapes, logo embedding, frame text, and presets that match brand identities. That’s not the norm in this category.
- Key weakness: This is a static QR code generator, not a dynamic redirect platform. There’s no built-in analytics, no scan tracking, no redirect management. If you need to know how many times a QR code was scanned or change the destination after printing, Mini QR doesn’t solve that problem [README][2].
What is Mini QR
Mini QR is a browser-based QR code generator built with Vue 3, Vite, and Tailwind CSS. The pitch in the GitHub description is disarmingly simple: “Create & scan cute QR codes easily.” [README]
What separates it from the dozens of free QR generators is the degree of visual control packed into a single-page app. Most free generators give you one output: a black-and-white grid. Mini QR gives you dot style, corner style, foreground and background colors, logo upload, frame text, error correction level tuning, and a randomize button for when you want to try something different without clicking through twelve dropdowns. You can export the result as PNG, JPG, or SVG [README].
Beyond the design tools, the project has expanded into a small suite of QR utilities: a scanner (camera or image upload), batch export via CSV for generating QR codes at scale, data templates for structured content types (WiFi credentials, vCards, calendar events, SMS), and presets that store a complete visual configuration for reuse [README][1].
The project has 1,921 GitHub stars, 244 forks, 19 contributors, and 39 releases as of this writing. The latest release is v0.28.0 from March 13, 2026. It’s maintained by a single primary author (lyqht) with community contributions primarily on translations and bug fixes. The Crowdin translation project covers 30+ languages, handled via DeepL GitHub Actions [README][1].
Docker image is published to GitHub Container Registry (ghcr.io/lyqht/mini-qr:latest) and a live demo runs at the Vercel deployment. Self-hosting documentation lives in a dedicated SELF_HOSTING.md file [README][4].
Why people choose it
The honest answer is that there aren’t many third-party reviews of Mini QR specifically — the project is mid-sized (under 2K stars) and occupies a narrow niche. What we have is one direct review, one NAS deployment guide, and the broader context of why people self-host QR tooling at all.
The Gigazine signal. The fact that a major Japanese tech publication picked Mini QR specifically for a review — when there are hundreds of QR generators — tells you something about the output quality. Their review focused entirely on the visual output: how to customize colors, embed images, adjust corner shapes, and export [1]. They weren’t reviewing the self-hosting angle. They reviewed it because the generated codes looked different from the standard output.
The self-hosting motivation. The QR code category has a specific version of the SaaS lock-in problem. Dynamic QR codes — the kind that allow you to change the destination URL after printing — require a redirect server. Once you’ve printed 10,000 product labels pointing at qr.someplatform.com/abc123, you are permanently dependent on that platform staying alive and keeping your codes functional. The-QRCode-Generator.com article [2] frames this bluntly: “Your QR Codes depend on that provider’s uptime and policies.” Self-hosting removes that dependency for the redirect layer — though Mini QR itself is static-only, so the redirect problem requires a separate tool if you need it.
For static QR codes — where the destination is baked into the code itself and never changes — Mini QR’s value is simpler: it’s free, it’s pretty, it runs on your hardware, and it doesn’t require creating an account or hitting API limits. A Reddit thread on r/selfhosted [3] shows the demand clearly: someone was using api.qrserver.com to generate QR codes for page-sharing and was looking for a self-hosted equivalent because the service went down and reliability mattered. The request: something simple, API-accessible, self-hostable. Mini QR fits that category.
The NAS crowd. The MariusHosting guide [4] for Synology NAS installation is a proxy for the homelab audience — people running personal infrastructure who want every utility on their own hardware. Mini QR shows up in that context specifically because the Docker setup is clean enough to justify the install guide. The port mapping in the guide (5877:8080) and the health check configuration suggest it’s been tested and confirmed to work in that environment.
Features
QR code generation and visual customization:
- Dot styles, corner styles, background and foreground color control [README]
- Logo upload: embed a custom image (company logo, profile photo) in the center [README][1]
- Frame customization: add text labels above or below the QR code with font and style control [README]
- Randomize style button — generates a random visual configuration in one click [README]
- Presets: save and load named visual configurations; the repo ships with branded presets for Padlet, Supabase, Vercel, ViteConf [README]
- Error correction level: L/M/Q/H — tune the redundancy vs. data density trade-off [README]
Data types and templates:
- Text, URL, email, phone number, SMS, WiFi credentials, vCard, geographic location, calendar events [README]
- Structured input forms for each type so you don’t manually format WiFi strings or vCard syntax [README]
Export and sharing:
- PNG, JPG, SVG export [README]
- Copy to clipboard [README]
- SVG export has limited third-party software support — the README links to CONTRIBUTING.md for details [README]
Batch operations:
- CSV import: upload a file with multiple data strings, export QR codes for all of them at once [README]
- Template CSV files are included in the repo for the correct format [README]
- Frame text is included in batch exports as of v0.17.0 [README]
Scanner:
- Scan QR codes via camera or by uploading an image [README]
- Detects content type automatically: URLs, emails, phone numbers, WiFi credentials [README]
Platform:
- PWA: installable as a desktop or mobile app [README]
- 30+ languages via Crowdin/DeepL [README]
- Light/dark/system-preference mode [README]
- WCAG A accessibility compliance [README]
- Self-hosting via Docker with full
SELF_HOSTING.mddocumentation [README][4]
What it doesn’t do:
- No dynamic QR codes (no redirect management) [README]
- No scan analytics or tracking [README]
- No API endpoint for programmatic generation from other apps — it’s a browser app, not a service [3]
Pricing: SaaS vs self-hosted math
Mini QR self-hosted:
- Software: $0 (GPL-3.0) [README]
- Infrastructure: $5–10/mo VPS (or a NAS you already own) [4]
- No per-code limits, no per-feature paywalls, no account required
Typical cloud QR platforms for comparison:
Cloud QR services generally fall into two tiers. Static-only generators (free tiers on most platforms) cost nothing but produce generic output and may watermark exports. Dynamic/branded platforms charge for the redirect infrastructure, analytics, and visual customization.
Uniqode’s State of QR Codes 2026 report [2] tracks this market — 98% of marketers report positive QR code impact, which explains why the pricing for these tools has been climbing. Exact pricing varies by vendor and changes frequently; data not available from the sources reviewed for this article. The pattern holds: any SaaS tool that includes scan analytics, redirect management, and bulk export is priced as a marketing infrastructure tool, not a utility.
What the math looks like in practice:
If you’re generating static QR codes — business cards, product packaging, print collateral — with custom branding and no need to track scans, the cloud tools add no value that Mini QR doesn’t provide. The monthly fee goes to zero. If you’re generating QR codes at volume (a batch export for 500 product SKUs), Mini QR’s CSV import handles that in one step without hitting export limits or per-code fees [README][2].
The catch: if you need scan analytics or dynamic codes (destination changeable after printing), Mini QR genuinely doesn’t solve that problem. You’d need to pair it with a redirect service or use a different tool. Self-hosting a full dynamic QR platform is a different level of complexity than running Mini QR.
Deployment reality check
The MariusHosting guide [4] for Synology NAS is the most detailed deployment walkthrough available for Mini QR, and it’s short — which is a good sign. The Docker Compose configuration is four lines of substance:
services:
mini-qr:
image: ghcr.io/lyqht/mini-qr:latest
ports:
- 5877:8080
restart: on-failure:5
The guide adds a health check (nc -z 127.0.0.1 8080), sets a restart policy, and that’s it. No external databases, no Redis, no SMTP setup, no environment variable maze [4].
What you actually need:
- Docker and docker-compose (or Portainer if you prefer a UI) [4]
- A port to expose (the default mapping uses 8080 internally) [4]
- A reverse proxy (Caddy, nginx, Traefik) if you want HTTPS — the MariusHosting guide notes you need WebSocket enabled for HTTPS to work correctly [4]
What can go sideways:
- SVG export has known compatibility issues with some software — the README explicitly flags this and defers to CONTRIBUTING.md for details [README]
- This is a solo-maintained project. The primary author is active (39 releases), but the contributor list is small and the bus factor is real. If you’re using this for anything mission-critical, fork it and pin a version [README]
- GPL-3.0 licensing: unlike MIT, GPL-3.0 has copyleft requirements. If you embed Mini QR in a commercial product or distribute a modified version, you’re required to open-source the modifications. For personal self-hosting or internal company use, this doesn’t matter. For SaaS embedding, consult a lawyer [README]
Realistic time estimate:
- Technical user with Docker experience: 15–30 minutes to a running instance
- NAS user following the MariusHosting guide: 30–60 minutes including Portainer setup [4]
- Non-technical user on a VPS: 1–2 hours including reverse proxy and HTTPS
The demo at Vercel lets you test all features before committing to a self-hosted deployment — worth doing first [README][1].
Pros and cons
Pros
- Visual quality is the actual differentiator. Dot styles, corner shapes, color control, logo embedding, frame text — the output looks designed rather than generated. Gigazine covered it specifically for this reason [1].
- Minimal infrastructure. No database, no Redis, no SMTP. Single container, exposes one port, done [4].
- Batch export via CSV. Generate QR codes for hundreds of items from a spreadsheet. Most free tools don’t have this [README].
- Built-in scanner. Camera-based and image-upload QR decoding with content-type detection built into the same app [README].
- 30+ language support. Crowdin/DeepL integration means the UI ships translated out of the box [README][1].
- PWA. Installable as a desktop or mobile app without an app store [README].
- Data templates. Structured input for WiFi, vCard, calendar events — no manual format strings [README].
- Active release cadence. 39 releases with meaningful feature additions per version [README].
Cons
- No dynamic QR codes. If you print a QR code and later need to change where it points, Mini QR cannot help you. The destination is baked into the code [README][2].
- No scan analytics. You have no way to know how many times a QR code was scanned, from what device, or when [README][2].
- No API. You can’t hit an endpoint to generate QR codes programmatically from another application. It’s a browser app, not a service [3]. The Reddit use case of
https://api.qrserver.com/v1/create-qr-code/?size=150x150&data=...has no Mini QR equivalent [3]. - GPL-3.0 copyleft. Stricter than MIT for anyone who wants to embed or redistribute. Commercial embedding requires careful license review [README].
- Solo-maintained. 19 contributors total, but the project is effectively a one-person show. Community contributions are primarily translations [README].
- SVG export is second-class. Explicitly flagged as having limited software compatibility [README].
- No REST API or webhook integration. Can’t be wired into a workflow automation tool like n8n or Activepieces without extra plumbing [3].
Who should use this / who shouldn’t
Use Mini QR if:
- You generate QR codes for static content — business cards, print collateral, product packaging, event signage — where the destination never changes.
- You want branded QR codes (logo, colors matching your identity) without paying a monthly subscription for visual customization.
- You need batch export: a spreadsheet of URLs or data strings that needs to become a folder of QR code images.
- You’re a homelab user who wants every utility on your own hardware and the Docker setup takes 20 minutes.
- You have a NAS (Synology, UGREEN) and want a clean, contained app for occasional QR generation [4].
Skip it and use a dynamic QR platform if:
- You need scan analytics — device type, scan count, geographic data. Mini QR has none of this.
- You’re printing QR codes for campaigns where the destination might change (landing page tests, seasonal promotions). Once printed, Mini QR codes are permanent.
- You need programmatic QR code generation via API. Mini QR is a browser tool, not an API service [3].
Skip it and write a one-liner if:
- You need QR code generation as part of an app or automation pipeline. Libraries like
qrcode(Python),node-qrcode(Node.js), or equivalent exist for every language and can be called programmatically without a server [3].
Skip it entirely if:
- Your compliance team needs audit logs for everything that touches company data. Mini QR has none of that surface area, but self-hosting a GPL tool in a regulated environment may still require review.
Alternatives worth considering
- Castor (formerly QRding) — another self-hosted option with dynamic QR support, mentioned in [2]. Adds redirect management and scan tracking that Mini QR lacks.
- YOURLS + QR library — a combination approach: YOURLS for short links and redirect management, a QR generation library for the code itself. More setup, but you get analytics [3].
- qrcode CLI / library — if you need programmatic generation and don’t need the visual customization, a language-native library is simpler than running a container [3].
- Uniqode / Bitly QR / QR Code Generator Pro — cloud platforms. Worth paying for if you need dynamic codes, scan analytics, and team collaboration without the infrastructure overhead. Not worth paying for if you only need static codes with custom styling [2][5].
- GoQR.me API — the free API the Reddit poster was using [3]. Simple, no setup, but depends on third-party uptime. Mini QR is the self-hosted answer to this use case for the visual output; for API use it doesn’t directly replace it.
Bottom line
Mini QR is a well-built, actively maintained QR code generator that does one thing unusually well: the visual output. The technical setup is as minimal as a self-hosted app gets — one Docker container, no database, 20 minutes to production. The trade-offs are real and worth stating plainly: no dynamic codes, no analytics, no API. If your workflow requires any of those three things, this isn’t the tool.
But if you’re printing static QR codes — for packaging, signage, business cards, events — and you want them to look like something you designed rather than something a machine generated, Mini QR is the honest answer. Running it yourself costs nothing beyond a VPS you probably already have. Not running it means paying a SaaS platform every month for a feature set you could own outright.
Sources
- Gigazine — “Review of ‘MiniQR’ that makes it easy to create good-looking QR codes” (Nov 4, 2024). https://gigazine.net/gsc_news/en/20241104-qr-code-generator-miniqr/
- The QR Code Generator Blog — “Are Self-Hosted QR Code Generators Worth It in 2026?”. https://www.the-qrcode-generator.com/blog/self-hosted-qr-code-generator
- Reddit r/selfhosted — “Any recommendations for a self hosted QR code generator that I can host on my cpanel based hosting server?”. https://www.reddit.com/r/selfhosted/comments/1hjbqj8/any_recommendations_for_a_self_hosted_qr_code/
- MariusHosting — “How to Install Mini QR on Your Synology NAS” (updated Apr 7, 2026). https://mariushosting.com/how-to-install-mini-qr-on-your-synology-nas/
- QRCode Creator Blog — “Are Self Hosted QR Code Generators Worth It in 2026?”. https://www.qrcodecreator.io/blog/self-hosted-qr-code-generators-worth-2026
Primary sources:
- GitHub repository and README: https://github.com/lyqht/mini-qr (1,921 stars, GPL-3.0 license, 19 contributors, 39 releases)
- Live demo: https://mini-qr-code-generator.vercel.app/
Features
Customization & Branding
- Templates
Localization & Accessibility
- Accessibility (a11y)
Mobile & Desktop
- Mobile App
- Progressive Web App (PWA)
Related Self-Hosting Tools Tools
View all 212 →Rustdesk
110KOpen-source remote desktop software with self-hosted servers — a secure alternative to TeamViewer and AnyDesk with full data sovereignty.
Ladybird
61KLadybird is a truly independent web browser built from scratch, with no code from Chrome, Firefox, or Safari. Backed by a non-profit foundation.
TipTap
36KA suite of content editing and real-time collaboration tools. Build editor experiences like Notion in weeks, not years.
Awesome Sysadmin
33KA curated list of amazingly awesome open-source sysadmin resources.
restic
33KBackups done right. A modern backup program for Linux, BSD, Mac and Windows with strong encryption.
Homepage by gethomepage
29KA modern, fully static, fast, secure, highly customizable application dashboard with integrations for over 100 services.