LinkOps is a professional, high-performance URL management platform designed for modern needs. It goes beyond simple shortening, offering detailed analytics, enhanced security features, and a premium user experience with a sleek, responsive design.
- π Advanced URL Shortening: Create custom, branded aliases with support for various redirect types (301, 302, 307, etc.).
- π Unified Dashboard: A central place to manage all your links, view real-time statistics, and monitor engagement.
- Click Tracking: Real-time monitoring of link engagement.
- Geographic Insights: Heatmaps and data on clicks by country.
- Referrer Analysis: Identify which platforms are driving traffic.
- Time-Series Data: Daily and cumulative click statistics.
- π Security & Control:
- Password Protection: Secure your links with encrypted passwords.
- Premium End-to-End Encryption: Zero-knowledge storage for link destinations using AES-256 (Private links only).
- Safety Warning: Interstitial warning for potentially unsafe links.
- Expiration Dates: Set links to automatically deactivate after a certain period.
- Enable/Disable: Instantly toggle link availability without deleting.
- βοΈ Email Verification:
- Account Verification: Email-based verification for new user registrations.
- Password Reset: Secure password reset flow with token-based email verification.
- SMTP Integration: Reliable email delivery via Nodemailer.
- π Informational Pages:
- Features: Detailed overview of platform capabilities.
- Contact: Direct line of communication for users.
- Pricing: Transparent pricing information (Currently Free).
- π€ Premium User Experience:
- Better-Auth Integration: Secure authentication via credentials or OAuth (Google, GitHub).
- Advanced Profile Management: Custom usernames, display names, and profile picture management with integrated cropping.
- Responsive & Dynamic UI: Built with Shadcn UI, Framer Motion, and support for Dark Mode.
- Cookie Consent: GDPR-compliant cookie banner with customizable preferences.
LinkOps is built with a focus on scalability, performance, and developer experience.
- Framework: Next.js 16 (App Router & Server Components) for optimal performance and SEO.
- Styling: Tailwind CSS for rapid, consistent UI development.
- Components: Shadcn UI (Radix UI primitives) for accessible, premium-feel components.
- Animations: Framer Motion for smooth layout transitions and micro-interactions.
- ORM: Prisma for type-safe database access.
- Primary Database: PostgreSQL 16 (Relational data, Users, Links, Analytics).
- In-Memory Store: Redis 7 (via
ioredis) for high-performance rate limiting and potential caching. - Auth Service: Better-Auth for a managed-yet-flexible authentication flow.
- Storage: UploadThing for secure and easy profile image handling.
- Containerization: Docker & Docker Compose for consistent environments.
- Registry: GitHub Container Registry (GHCR) for hosting Docker images.
- Deployment: Custom automated bash scripts for building and pushing to GHCR, then deploying to a VPS (OVH) via SSH and Docker Compose.
- Testing:
- Unit/Integration: Jest & React Testing Library.
- E2E: Playwright for robust browser automation tests.
- Node.js 20+
- PostgreSQL instance
- Redis instance
- UploadThing API keys
-
Clone & Install:
git clone https://github.com/mohamedaleya/linkops.git cd linkops npm install -
Environment Configuration: Create a
.envfile based on.env.example. Ensure you provide valid credentials for PostgreSQL, Redis, and Better-Auth.Note: For staging environment, use
.env.stagingand thedevbranch. -
Database Initialization:
npx prisma generate npx prisma db push
-
Run Development Server:
npm run dev
The project includes a docker-deploy.sh script for automated deployment:
npm run deployThis builds the production image for linux/amd64, pushes it to GitHub Container Registry (GHCR), and triggers a pull/redeploy on the target VPS.
The project maintains a dev branch for staging. Pushes to this branch trigger a deployment to the staging environment.
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Open-source under the MIT License. Built with β€οΈ by mohamedaleya.