A beautiful, fast, and privacy-first QR code generator PWA built with Next.js and shadcn/ui.
QRe8 = QR + Cr8 (Create) β say it out loud! π€
- β‘ Instant Generation - Real-time QR code preview
- π¨ Customizable - Colors, size & error correction
- π± PWA Ready - Install on any device, works offline
- π Privacy First - All QR generation happens locally
- π‘οΈ Bot Protection - Cloudflare Turnstile integration
- π Dark Mode - System theme detection + manual toggle
- π₯ Download - Export as PNG with custom size
| Type | Description |
|---|---|
| URL/Text | Any URL or plain text |
| WiFi | Auto-connect network credentials |
| vCard | Contact cards with name, phone, email |
| Pre-filled email compose | |
| SMS | Pre-filled text message |
| Phone | Click-to-call phone number |
| Geo | GPS coordinates / location |
| Event | Calendar event (iCal format) |
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β QRe8 System β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β βββββββββββββββββββ βββββββββββββββββββββββββββ β
β β Frontend PWA β HTTPS β Backend API β β
β β (This Repo) ββββββββββΊβ (Private Repo) β β
β β β β β β
β β β’ Next.js 16 β β β’ Hono.js β β
β β β’ shadcn/ui β β β’ PostgreSQL β β
β β β’ Tailwind CSS β β β’ SMTP2GO β β
β β β’ Static PWA β β β’ OTP Auth β β
β ββββββββββ¬βββββββββ βββββββββββββββββββββββββββ β
β β β
β βΌ β
β βββββββββββββββββββ β
β β Cloudflare β β
β β β’ Pages β β
β β β’ Turnstile β β
β β β’ WAF β β
β βββββββββββββββββββ β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
- Framework: Next.js 16 (App Router, Static Export)
- UI: shadcn/ui + Tailwind CSS
- Hosting: Cloudflare Pages
- Features: PWA, offline support, theme switching
- Framework: Hono.js (TypeScript)
- Database: PostgreSQL
- Email: SMTP2GO (OTP verification)
- Auth: OTP-based, JWT tokens
- Hosting: Cloudflare Workers / Tunnel
| Layer | Technology |
|---|---|
| Framework | Next.js 16 |
| UI Components | shadcn/ui |
| Styling | Tailwind CSS |
| QR Generation | qrcode |
| Bot Protection | Cloudflare Turnstile |
| Validation | Zod |
| Theming | next-themes |
- Node.js 20+
- npm or yarn
# Clone the repository
git clone https://github.com/lafaCodes/Qre8.git
cd Qre8
# Install dependencies
npm install
# Run development server
npm run devCreate a .env.local file:
# Cloudflare Turnstile (use test key for local dev)
NEXT_PUBLIC_TURNSTILE_SITE_KEY=1x00000000000000000000AA
# Backend API URL (when backend is ready)
# NEXT_PUBLIC_API_URL=https://api.qre8.changa.tech| Branch | Environment | URL |
|---|---|---|
dev |
Staging | qre8-dev.pages.dev |
main |
Production | qre8.changa.tech |
This project uses static export for Cloudflare Pages.
Required GitHub Secrets:
| Secret | Description |
|---|---|
CLOUDFLARE_API_TOKEN |
API token with Pages permissions |
CLOUDFLARE_ACCOUNT_ID |
Your Cloudflare account ID |
NEXT_PUBLIC_TURNSTILE_SITE_KEY |
Turnstile site key |
- Push to
devβ Auto-deploys to staging - Push to
mainβ Auto-deploys to production - PRs run build check only (no deployment)
- All QR generation is client-side (no data sent to server)
- Cloudflare Turnstile prevents bot abuse
- Content Security Policy headers configured
- Rate limiting on API endpoints (when backend enabled)
- See SECURITY.md for Cloudflare WAF setup
qr-code-generator/
βββ app/ # Next.js App Router
β βββ globals.css # Global styles + splash screen
β βββ layout.tsx # Root layout + providers
β βββ page.tsx # Main QR generator page
βββ src/
β βββ components/ # React components
β β βββ forms/ # QR type input forms
β β βββ ui/ # shadcn/ui components
β βββ lib/ # Utilities & QR logic
βββ public/
β βββ _headers # Cloudflare security headers
β βββ manifest.json # PWA manifest
β βββ sw.js # Service worker
βββ .github/
βββ workflows/ # CI/CD pipelines
βββ copilot-instructions.md # AI assistant guidelines
- Version info logged to console on page load
- Press
Cmd+Shift+V(Mac) /Ctrl+Shift+V(Win) to view version - Inspect
#app-versionelement in DevTools
- Fork the repository
- Create feature branch from
dev:git checkout -b features/my-feature - Commit changes:
git commit -m "feat: add my feature" - Push and create PR to
dev
See .github/copilot-instructions.md for coding guidelines.
MIT Β© CHANGA.tech
- Live: qre8.changa.tech
- GitHub: github.com/lafaCodes/Qre8
- Author: lafa.codes / CHANGA.tech