An open-source, modern, full-featured QR code management platform built with SvelteKit. Create, customize, scan, and manage QR codes with an intuitive interface and powerful features. Perfect for developers, marketers, and anyone needing dynamic QR code solutions with analytics and customization.
Create static and dynamic QR codes with custom URLs and content. Generate unlimited QR codes for links, text, contacts, WiFi credentials, and more.
Personalize QR codes with custom colors, patterns, corner styles, and designs. Make your QR codes match your brand identity with powerful customization options.
Scan QR codes via camera or upload images for instant decoding. Built-in scanner works seamlessly on desktop and mobile devices.
Secure login with OpenAuth for personalized QR code management. Each user has their own private collection of QR codes.
View, edit, delete, and organize your QR codes in one place. Powerful dashboard with filtering, sorting, and search capabilities.
Select and manage multiple QR codes at once. Perform actions like delete, export, or update on multiple QR codes simultaneously.
Automatic short URL generation for dynamic QR codes. Track clicks and analytics for your dynamic QR codes.
Seamless experience across desktop and mobile devices. Fully responsive interface optimized for all screen sizes.
Clone the repository
git clone https://github.com/yopem/qr.git
cd qr
Install dependencies
bun install
Set up environment variables
Copy the example environment file and configure it:
cp .env.example .env
Edit .env and configure the required variables (see
Environment Variables section below).
Run database migrations
bun run db:generate && bun run db:migrate
Start the development server
bun run dev
Access the application
Open your browser and navigate to http://localhost:5173
| Variable | Description | Example |
|---|---|---|
DATABASE_URL |
PostgreSQL connection string | postgresql://user:password@localhost:5432/yopem_qr |
AUTH_ISSUER |
OpenAuth issuer URL (see OpenAuth Setup below) | https://auth.example.com |
Yopem QR uses OpenAuth for authentication. You need to set up an OpenAuth issuer to handle user authentication.
Follow the official guide: Visit OpenAuth Issuer Documentation for detailed setup instructions
Deploy your issuer: You can deploy an OpenAuth issuer using:
Configure the AUTH_ISSUER variable: Once your issuer is running, set the AUTH_ISSUER
environment variable to your issuer's URL:
AUTH_ISSUER=https://your-issuer-domain.com
Important: Without a properly configured OpenAuth issuer, the application will not be able to authenticate users and login functionality will not work.
For local development, you can run an OpenAuth issuer locally. Refer to the OpenAuth documentation for local setup instructions.
For a complete list of environment variables, see .env.example.
Access the application at http://localhost:5173
Create an account or log in using the authentication system
Create your first QR code:
Scan QR codes:
Manage your QR codes:
Track analytics for your dynamic QR codes and monitor usage
| Command | Description |
|---|---|
bun dev |
Start development server |
bun run build |
Build for production |
bun run preview |
Preview production build |
bun run check |
Run type checking with svelte-check |
bun run lint |
Run ESLint |
bun run format:check |
Check code formatting with Prettier |
bun run format:write |
Format code with Prettier |
bun run db:studio |
Open Drizzle Studio (database GUI) |
bun run db:push |
Push schema changes to database |
bun run db:generate |
Generate new migration |
bun run db:migrate |
Run databse migrations |
bun run db:pull |
Pull schema from database |
This project uses automated code quality tools. Before committing changes, ensure:
# Run linter
bun run lint
# Run type checking
bun run check
# Check formatting
bun run format:check
This project is licensed under the AGPL-3.0-or-later license. This is a copyleft license that requires any derivative works to be distributed under the same license terms.