ShortCash is a full-stack, premium URL shortening service built with modern technologies. It allows users to transform long links into short, memorable ones while providing features like link monetization, detailed analytics, and a premium ad-free experience.
- Quick Shortening: Instantly shorten any long URL.
- User Dashboard: Manage all your shortened links in one place.
- Analytics: Track clicks, geographic data, and performance metrics for your links.
- Monetization: Earn rewards for link traffic with built-in ad integration.
- Premium Plan: Offer an ad-free experience and custom branded links.
- Secure Architecture: Link safety checks and robust authentication.
- Responsive Design: Beautiful, modern UI that works on all devices.
- Framework: Next.js 15+ (App Router)
- Styling: Tailwind CSS
- UI Components: Radix UI & Shadcn UI
- Animations: Framer Motion
- Authentication: Custom JWT-based with Cookies & Context API
- Charts: Recharts & Tremor
- State Management: React Hooks & Context API
- Framework: NestJS 11+
- Database ORM: Prisma
- Authentication: Passport.js (JWT Strategy)
- Validation: Class-validator
- Security: Bcrypt for password hashing & Rate Limiting
.
├── backend/ # NestJS API & Prisma Schema
└── web-app/ # Next.js Frontend
- Node.js (v18 or higher)
- npm or yarn
- A PostgreSQL database (for Prisma)
-
Clone the repository
git clone https://github.com/parthadevs/url-shortener.git cd url-shortener -
Setup Backend
cd backend npm install # Create .env file and add your DATABASE_URL and JWT_SECRET npx prisma migrate dev npm run start:dev
-
Setup Frontend
cd ../web-app npm install # Create .env.local and add NEXT_PUBLIC_API_URL and NEXTAUTH_SECRET npm run dev
You can run both services simultaneously in separate terminals:
- Backend:
npm run start:dev(runs on port 3001 by default) - Frontend:
npm run dev(runs on port 3000)
This project is UNLICENSED.
Built with ❤️ by the ShortCash Team.