Skip to content

pibulus/qrbuddy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

158 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🌈 QRBuddy

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.

✨ Features

  • 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

πŸš€ Quick Start (Local Development)

# 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 start

Visit 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).

🎯 What Works Locally

  • βœ… 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

πŸš€ Production Deployment (Supabase)

For production deployment with Supabase backend, see SUPABASE-TODO.md for complete migration guide.

TL;DR:

  1. Create Supabase project
  2. Run supabase/setup.sql in SQL Editor
  3. Deploy 11 edge functions
  4. Set environment variables
  5. Deploy Fresh app to Deno Deploy

πŸ›  Tech Stack

  • 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

πŸ“ Project Structure

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

🎨 Available Styles

  • 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

πŸƒβ€β™‚οΈ Development

# Format code
deno fmt

# Lint code
deno lint

# Type check
deno check **/*.ts **/*.tsx

# Build for production
deno task build

🚒 Deployment

QRBuddy can be deployed to any platform that supports Deno:

Deno Deploy (Recommended)

  1. Push to GitHub
  2. Connect to Deno Deploy
  3. Deploy with zero config

Self-Hosted

deno task build
deno run -A main.ts

πŸ“ License

MIT - Do whatever makes you happy!

🀝 Contributing

Pull requests are welcome! For major changes, please open an issue first.

πŸ’« Credits

Built with 🧁 by Pablo (@pibulus)


"The best QR codes feel like magic but work like clockwork" πŸ•°οΈ

About

Beautiful gradient QR code generator with personality 🌈 Drop a link, watch it bloom.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages