A scalable URL shortening platform with analytics, QR generation, and system design focused architecture.
LinkForge is a full-stack URL shortener built with scalability and real-world backend architecture in mind.
It goes beyond a simple tool and evolves into a production-ready system with:
- URL shortening
- Custom aliases
- Expiry support
- QR code generation
- Rate limiting
- (Upcoming) Authentication, analytics, Kafka streaming, Redis caching
- Shorten long URLs
- Custom alias support
- Expiry date & time
- Optional password protection
- QR code generation
- Rate limiting (basic protection)
- Clean UI with React
- React (Vite)
- Tailwind CSS
- Lucide Icons
- Spring Boot
- REST APIs
- MySQL
- Git & GitHub
- Postman
- Maven
Client (React) ↓ Spring Boot API ↓ MySQL Database
Client ↓ API Gateway ↓ | Link Service | | Auth Service | | Analytics Service |
↓ Kafka → Consumers → DB ↓ Redis Cache Layer
POST /api/links
GET /{shortCode}
GET /api/qr/details/{shortCode}
git clone https://github.com/YOUR_USERNAME/LinkForge.git
cd LinkForge
cd backend
Create:
application.properties
Add your DB config:
spring.datasource.url=jdbc:mysql://localhost:3306/linkforge spring.datasource.username=YOUR_USERNAME spring.datasource.password=YOUR_PASSWORD
Run:
mvn spring-boot:run
cd frontend npm install npm run dev
Sensitive configs like database credentials are not committed.
Use:
application.properties (local only) application-example.properties (for reference)
This project is developed in multiple versions to demonstrate system evolution.
- URL shortening
- Custom alias
- Expiry
- QR generation
- Rate limiting
v1.0.1 - MVP release - V!.0.2 - MVP release (Stable) -
- JWT Authentication
- User-specific links
- History dashboard
- Redis caching
- Faster redirects
- Reduced DB load
- Kafka integration
- Async click tracking
- High throughput handling
- Stream processing (Apache Beam)
- Real-time insights
- Trending links
- Rate limiting to prevent abuse
- Stateless backend for scalability
- Modular structure for future microservices
- Async processing (planned via Kafka)
- Cache layer (Redis planned)
- Redis caching for hot data
- Kafka for high write throughput
- DB indexing on short_code
- Horizontal scaling support
- Future DB sharding
Add screenshots here
- Link analytics dashboard
- Password-protected access flow
- Mobile responsiveness improvements
- Dark mode UI
- Admin panel
Docker support will be added in later versions for:
- Backend service
- Frontend service
- Kafka & Redis integration
Subramanya V
If you like this project, give it a ⭐ on GitHub!