The Porkbun of QR generators - beautiful gradient QR codes that make you smile
Drop a link. Watch it bloom. QRBuddy transforms boring QR codes into stunning gradient art pieces with that soft brutal aesthetic.
- Smart Input - Paste URLs, type text, or drop files - it just works
- Destructible QRs π£ - One-time QR codes (URLs or files) that self-destruct after 1 scan β KABOOM!
- Dynamic QR Codes π - Privacy-first editable redirects with scan limits (NO tracking/analytics)
- Scan Limits - Set 1, 5, 10, 100, or unlimited scans before self-destruct
- Expiry Dates - Optional time-based QR expiration
- Edit Anytime - Change destination URL without reprinting QR (works for both URLs and files)
- 6 Gradient Styles - Sunset, Pool, Terminal, Candy, Vapor, and Brutalist themes
- Custom Gradient Creator - Build your own gradient QR codes
- Instant Generation - <100ms QR generation with no loading states
- Download & Copy - Save PNGs or copy to clipboard with one click
- Mobile First - Responsive design that works beautifully on all devices
- Soft Brutal Design - Chunky borders, hard shadows, pastel colors
- Error Handling - Graceful degradation with helpful error messages
- KABOOM Page - Spectacular explosion page for already-scanned files
# Install Deno (if not already installed)
curl -fsSL https://deno.land/install.sh | sh
# Clone the repository
git clone https://github.com/pibulus/qrbuddy.git
cd qrbuddy
# Start the local mock API server (for destructible files + dynamic QRs)
deno task api
# In another terminal, start the Fresh dev server
deno task startVisit http://localhost:8004 and start creating beautiful QR codes!
The local API server runs on port 8005 and stores files in local-api/files/
(gitignored).
- β Basic QR Codes - All 6 gradient styles + custom gradients
- β Destructible QRs - URLs or files that self-destruct after 1 scan
- β Dynamic QR Codes - Editable redirects with scan limits & expiry (works for both URLs and files)
- β KABOOM Page - Epic explosion when already accessed
For production deployment with Supabase backend, see SUPABASE-TODO.md for complete migration guide.
TL;DR:
- Create Supabase project
- Run
supabase/setup.sqlin SQL Editor - Deploy 11 edge functions
- Set environment variables
- Deploy Fresh app to Deno Deploy
- Fresh - The next-gen web framework
- Deno - Modern runtime for JavaScript and TypeScript
- Preact - Fast 3kB alternative to React
- Tailwind CSS - Utility-first CSS framework
- qr-code-styling - Gradient QR generation
qrbuddy/
βββ routes/ # Fresh routes + API handlers
β βββ index.tsx # Main generator page + SEO/meta
β βββ q.tsx # Shared QR showcase
β βββ edit.tsx # Dynamic QR editor
β βββ boom.tsx # Self-destruct landing page
β βββ r.tsx / r/[code].tsx # Redirect helpers
β βββ f/[code].tsx # Destructible file download gate
β βββ bucket/[code].tsx # File bucket viewer
β βββ api/download-file.ts # Server-side file proxy
βββ islands/ # Interactive Preact islands (17 total)
β βββ QRCanvas.tsx # Core QR rendering + download/copy logic
β βββ SmartInput.tsx # Smart input (URLs/files/text + dynamic settings)
β βββ StyleSelector.tsx # Gradient selector + custom creator entry
β βββ GradientCreator.tsx # Custom gradient builder modal
β βββ TemplateModal.tsx # WiFi/vCard/SMS/Email/Text helpers
β βββ ExtrasModal.tsx # File buckets, destructible goodies, logos
β βββ LogoUploader.tsx # Center logo uploader UI
β βββ ActionButtons.tsx # Download + copy triggers
β βββ EditQRForm.tsx # Dynamic QR edit experience
β βββ BucketQR.tsx # File bucket status + QR display
β βββ About/Kofi/Pricing modals
β βββ EasterEggs.tsx # Hidden interactions
β βββ ToastManager.tsx # Notification stack
β βββ ErrorBoundary.tsx # QR error guard
β βββ Analytics.tsx # PostHog wiring
βββ local-api/ # Local mock Supabase edge function server
β βββ server.ts # Upload + dynamic QR emulator for dev
βββ supabase/ # Production schema + edge functions
β βββ setup.sql # Core tables
β βββ functions/ # 11 edge functions
βββ utils/ # Shared utilities
β βββ api.ts # SUPABASE_URL + API helpers
β βββ haptics.ts # Haptic wrappers
β βββ qr-styles.ts # Gradient style definitions
β βββ sounds.ts # UI soundboard
βββ static/ # Icons, manifest, robots, sitemap, CSS
βββ tests/ # Edge function integration tests
βββ tailwind.config.ts # Tailwind design tokens/theme
- Sunset π - Warm gradient from peach to pink to purple
- Pool π§ - Cool aqua blues and teals
- Terminal π» - Classic green on black hacker aesthetic
- Candy π¬ - Playful pink, gold, and teal
- Vapor π«οΈ - Vaporwave magenta and cyan
- Brutalist β¬ - Bold black on yellow
# Format code
deno fmt
# Lint code
deno lint
# Type check
deno check **/*.ts **/*.tsx
# Build for production
deno task buildQRBuddy can be deployed to any platform that supports Deno:
- Push to GitHub
- Connect to Deno Deploy
- Deploy with zero config
deno task build
deno run -A main.tsMIT - Do whatever makes you happy!
Pull requests are welcome! For major changes, please open an issue first.
Built with π§ by Pablo (@pibulus)
"The best QR codes feel like magic but work like clockwork" π°οΈ