Skip to content

Modern URL shortener with analytics featuring a Next.js + Tailwind frontend and a high-performance Go backend with clean architecture.

License

Notifications You must be signed in to change notification settings

PraveenGongada/shortly

Repository files navigation

Shortly

Shortly Logo

Backend Build Frontend Build License

A simple and efficient URL shortening service that allows users to convert long URLs into short, shareable links

🌟 Overview

Shortly is a complete URL shortening solution combining a beautiful, responsive frontend with a powerful backend. This monorepo contains both components as separate modules.

🖥️ Screenshots

Dashboard

Dashboard - Manage all your shortened URLs


Home Page Create URL

Home Page and URL Creation Interface

✨ Features

  • 🔗 Instant URL shortening
  • 📊 Comprehensive analytics for tracking link performance
  • 🔐 Secure user authentication with JWT
  • 📱 Responsive design optimized for all devices
  • 📈 Dashboard to manage all shortened URLs
  • 🔄 RESTful API design with clean architecture
  • 🔍 Centralized logging and monitoring for operational insights

🏗️ Repository Structure

shortly/
├── frontend/               # Next.js frontend application
│   ├── app/                # Pages and routes
│   ├── components/         # Reusable UI components
│   ├── README.md           # Frontend-specific documentation
│   └── ...
├── backend/                # Go backend service
│   ├── cmd/                # Application entry points
│   ├── internal/           # Clean architecture implementation
│   ├── README.md           # Backend-specific documentation
│   └── ...
├── infra/                  # Kubernetes configurations (submodule)
│   ├── namespaces.yaml     # Kubernetes namespace definitions
│   ├── istio.yaml          # Service mesh configuration
│   ├── cert-manager.yaml   # TLS certificate management
│   ├── deployment.yaml     # Application deployments
│   ├── elastic-search.yaml # Elasticsearch configuration
│   ├── kibana.yaml         # Kibana dashboard configuration
│   ├── logstash.yaml       # Log processing pipeline
│   ├── filebeat.yaml       # Log collection agent
│   └── monitoring/         # Prometheus and Grafana configs
└── docs/                   # Project documentation and assets

🧱 Tech Stack

Frontend

  • Framework: Next.js 14+
  • Language: TypeScript
  • Styling: Tailwind CSS
  • UI Components: Radix UI/shadcn/ui
  • Icons: Lucide React

Backend

  • Language: Golang
  • Database: PostgreSQL
  • Authentication: JWT
  • API Documentation: Swagger
  • Containerization: Docker & Docker Compose
  • Logging: Zerolog
  • Migration: Golang-Migrate

Monitoring & Observability

  • Metrics: Prometheus & Grafana
  • Logging: ELK Stack (Elasticsearch, Logstash, Kibana)
  • Log Collection: Filebeat
  • Service Mesh: Istio

📚 Detailed Documentation

🚀 Deployment & Infrastructure

Shortly uses Kubernetes for deployment and infrastructure management. The Kubernetes configuration files are maintained in a separate private repository and linked to this repository using Git submodules.

Infrastructure Setup

# Clone the complete repository with infrastructure configs
git clone --recursive git@github.com:PraveenGongada/shortly.git

# Or initialize submodules after cloning
git submodule init
git submodule update

# To fetch latest changes
git submodule update --remote

🤝 Contributing

Contributions, issues, and feature requests are welcome! Feel free to check issues page.

📄 License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.


Made with ❤️ by Praveen Kumar

LinkedInWebsite

About

Modern URL shortener with analytics featuring a Next.js + Tailwind frontend and a high-performance Go backend with clean architecture.

Topics

Resources

License

Stars

Watchers

Forks

Packages