A powerful, self-hostable SaaS URL shortener with a premium Apple-inspired design. Built for speed, privacy, and scalability.
- User System: Full SaaS architecture with Login, Register, and JWT Authentication.
- Robust Storage: Production-grade PostgreSQL with async SQLAlchemy.
- High-Speed Caching: Redis integration for zero-latency redirects.
- Premium UI/UX:
- Cosmic Particle Background (WebGL/OGL) with parallax effect.
- Glassmorphism architecture with dark/light mode support.
- Fully responsive design for all devices.
- New: Mobile Card View for better usability on small screens.
- New: Global Toast Notifications for instant feedback.
- New: Dynamic Domain Display (adapts to Localhost/Production).
- Link Management: Full CRUD operations for your links.
- QR Code Generation: Instant QR codes for any shortened link.
- Real-time Analytics: Click tracking and statistics.
- Account Security: Self-service account deletion with password verification.
- User Management: Create, edit, and delete users.
- Role Management: Assign admin/superuser roles.
- Global Analytics: Site-wide statistics dashboard.
- CSV Reports: Export user data and analytics.
- Password Protection: Secure your links with password authentication.
- Unlock Page: Beautiful password entry page with show/hide toggle.
- Link Expiration: Set expiration dates for temporary links.
- Click Limits: Define maximum clicks before link deactivation.
- Custom Aliases: Choose your own short codes.
- Analytics Dashboard: Detailed click analytics with graphs and geo-location data.
- Custom Domains: Support for your own branded short domains.
- QR Code Customization: Add logos and customize QR code design.
- Link Tags & Folders: Organize links with categories and folders.
- API Keys: Generate API keys for programmatic link creation.
- Webhooks: Real-time notifications for link events.
- Team Workspaces: Collaborate with team members on shared links.
- Framework: React 19 + Vite
- Styling: Tailwind CSS + Framer Motion
- Visuals: OGL (WebGL Particles)
- State: Context API
- Framework: FastAPI (Python 3.12+)
- Database: PostgreSQL (Async SQLAlchemy)
- Cache: Redis
- Auth: OAuth2 with Password + Bearer JWT
- Containers: Docker & Docker Compose
- Server: Nginx (Alpine Linux)
- Docker & Docker Compose
- Git
-
Clone the repository
git clone https://github.com/awpetrik/ShawtyLink.git cd ShawtyLink -
Configure Environment You MUST create a
.envfile to run the application. We have provided an example file.cp .env.example .env
Open
.envand fill in your secure credentials:# Database POSTGRES_USER=shawty POSTGRES_PASSWORD=your_secure_password POSTGRES_DB=shawtylink # Security SECRET_KEY=generate_a_very_long_random_secret_string ALGORITHM=HS256 # Admin (Optional - for future use) INITIAL_ADMIN_EMAIL=admin@shawty.link INITIAL_ADMIN_PASSWORD=admin123
-
Run with Docker Spin up the entire stack (Frontend, Backend, Postgres, Redis, Nginx):
docker-compose up -d --build
-
Access the Application
- Frontend: http://localhost:1603
- Backend API: http://localhost:8000/docs
To update your instance to the latest version safely (without losing data), please refer to our Deployment Guide.
βββ backend/
β βββ app/
β β βββ routers/ # API Routes (Auth, URLs, Users)
β β βββ models.py # Database Tables
β β βββ schemas.py # Pydantic Models
β β βββ database.py # DB Connection
β βββ Dockerfile
βββ frontend/
β βββ src/
β β βββ components/ # Reusable UI (Particles, Modals)
β β βββ pages/ # Dashboard, Links, Settings
β β βββ views/ # Public Pages (Home, Login)
β βββ Dockerfile
βββ docker-compose.yml # Service Orchestration
βββ .env # Environment Secrets (GitIgnored)
See CHANGELOG.md for a detailed history of changes.
Certified Lunatics β A Part of Rivaldi's Network


