One username. Clean, predictable links for every platform.
This project is part of Nexus Spring of Code 2026 (NSoC'26)
π Live Demo Β· π Docs Β· π Report Bug Β· β¨ Request Feature
LinkID is built for developers and professionals.
Stop pasting long URLs everywhere. Share clean, readable links like:
linkid.qzz.io/username/githubΒ·linkid.qzz.io/username/linkedin
- Platform Routing β Predictable links like
/github,/linkedin,/leetcode,/portfolio - Single Professional Identity β One username, all your platforms
- Auto Platform Detection β Paste any URL and the platform is detected automatically
- Public Profile Page β Shareable profile at
linkid.qzz.io/username - Real-time Dashboard β Add, edit, and delete links instantly without a page reload
- OAuth Login β Google & GitHub sign-in via NextAuth.js
- Email + Password Auth β Traditional credential-based login with bcrypt hashing
- Route Protection β Middleware-based auth guards on dashboard and API routes
- π Dark Mode β Full system, light, and dark theme support via
next-themes - π± Fully Responsive β Mobile-first design with Tailwind CSS
- π Toast Notifications β Instant feedback on all user actions
- π¨ Platform Icons β Automatic icon matching for 10+ platforms
- ποΈ Type-safe β End-to-end TypeScript with strict mode
- ποΈ Prisma ORM β Type-safe database access with PostgreSQL
- π¦ URL Validation β Strict per-platform URL validation before saving
- π Optimistic UI β Local state updates before server confirmation
| Layer | Technology |
|---|---|
| Framework | Next.js 16 (App Router) |
| Language | TypeScript |
| Styling | Tailwind CSS + shadcn/ui |
| Database | PostgreSQL |
| ORM | Prisma 7 |
| Auth | NextAuth.js v4 |
| Icons | Lucide React + React Icons |
| Notifications | React Hot Toast |
| Deployment | Vercel |
Try it live: https://linkid.qzz.io
Example profile: linkid.qzz.io/vishnu
Platform redirect: linkid.qzz.io/vishnu/github
- Node.js
>=20.9.0 - PostgreSQL
>=14 - npm / yarn / pnpm
git clone https://github.com/vishnukothakapu/linkid.git
cd linkid
npm installcp .env.example .envEdit .env with your values:
# Database
DATABASE_URL="postgresql://user:password@localhost:5432/linkid"
# NextAuth
NEXTAUTH_SECRET="your-secret-here" # openssl rand -base64 32
NEXTAUTH_URL="http://localhost:3000"
# OAuth Providers (optional but recommended)
GOOGLE_CLIENT_ID="your-google-client-id"
GOOGLE_CLIENT_SECRET="your-google-client-secret"
GITHUB_CLIENT_ID="your-github-client-id"
GITHUB_CLIENT_SECRET="your-github-client-secret"Tip: Generate
NEXTAUTH_SECRETwithopenssl rand -base64 32
# Run migrations
npx prisma migrate dev
# (Optional) Open Prisma Studio to inspect data
npx prisma studiodocker-compose up -d # starts PostgreSQL
npx prisma migrate dev
npm run devnpm run devOpen http://localhost:3000 π
linkid/
βββ app/
β βββ [username]/ # Public profile pages
β β βββ [platform]/ # Platform redirect handler
β β β βββ page.tsx
β β βββ page.tsx # Public profile page
β β βββ ProfileCard.tsx # Profile UI components
β βββ api/
β β βββ auth/ # NextAuth routes
β β βββ links/ # Link CRUD endpoints
β β β βββ [id]/ # Individual link operations
β β βββ profile/ # Profile update endpoints
β β βββ username/ # Username check & creation
β βββ components/ # Shared UI components
β β βββ DashboardNavbar.tsx
β β βββ Navbar.tsx
β β βββ ThemeToggle.tsx
β βββ dashboard/ # Protected dashboard pages
β βββ login/ # Authentication pages
β βββ profile/ # User profile settings
β βββ register/
β βββ globals.css
β βββ layout.tsx
β βββ providers.tsx
βββ components/
β βββ ui/ # shadcn/ui components
βββ lib/
β βββ auth.ts # NextAuth configuration
β βββ platformIcons.ts # Platform icon registry
β βββ platforms.ts # Platform detection & validation
β βββ prisma.ts # Prisma client singleton
β βββ url.ts # URL utilities
βββ prisma/
β βββ migrations/
β βββ schema.prisma
βββ public/
βββ middleware.ts # Auth middleware
βββ next.config.ts
βββ tailwind.config.ts
βββ tsconfig.json
βββ package.json
- Sign up at linkid.qzz.io/register
- Pick your unique username (e.g.,
vishnu) - Paste your profile URLs β platform is detected automatically
- Share
linkid.qzz.io/vishnueverywhere
| Platform | Route | Example |
|---|---|---|
| GitHub | /github |
linkid.qzz.io/vishnu/github |
/linkedin |
linkid.qzz.io/vishnu/linkedin |
|
| LeetCode | /leetcode |
linkid.qzz.io/vishnu/leetcode |
| YouTube | /youtube |
linkid.qzz.io/vishnu/youtube |
| X (Twitter) | /x |
linkid.qzz.io/vishnu/x |
/instagram |
linkid.qzz.io/vishnu/instagram |
|
/facebook |
linkid.qzz.io/vishnu/facebook |
|
| Discord | /discord |
linkid.qzz.io/vishnu/discord |
| Twitch | /twitch |
linkid.qzz.io/vishnu/twitch |
| Custom Website | /your-label |
linkid.qzz.io/vishnu/blog |
We love contributions! LinkID is an open-source project and welcomes PRs of all sizes.
π Read the Contributing Guide β
# Fork and clone
git clone https://github.com/YOUR_USERNAME/linkid.git
cd linkid
# Create a branch
git checkout -b feat/your-feature-name
# Make changes, then push
git push origin feat/your-feature-name
# Open a Pull Request on GitHubSee GitHub Issues for tasks open to contributors.
Distributed under the MIT License. See LICENSE for more information.
- Next.js β The React framework for production
- shadcn/ui β Beautifully designed component library
- Prisma β Next-generation ORM for Node.js
- NextAuth.js β Authentication for Next.js
- Vercel β Platform for deploying Next.js apps
Made with β€οΈ by Vishnu Kothakapu and contributors
β Star this repo if you find it useful!