Skip to content

Shreyya-ux/linkid

 
 

Repository files navigation

🔗 LinkID

Your professional identity, simplified.

One username. Clean, predictable links for every platform.

Next.js TypeScript Prisma PostgreSQL Tailwind CSS License: MIT PRs Welcome Stars


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

✨ Features

Core

  • 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

Auth & Security

  • 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

UX & Design

  • 🌙 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

Developer Experience

  • 🏗️ 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

🛠️ Tech Stack

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

🚀 Live Demo

Try it live: https://linkid.qzz.io

Example profile: linkid.qzz.io/vishnu
Platform redirect: linkid.qzz.io/vishnu/github


📦 Installation

Prerequisites

  • Node.js >=20.9.0
  • PostgreSQL >=14
  • npm / yarn / pnpm

1. Clone the Repository

git clone https://github.com/vishnukothakapu/linkid.git
cd linkid
npm install

2. Configure Environment Variables

cp .env.example .env

Edit .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_SECRET with openssl rand -base64 32

3. Set Up the Database

# Run migrations
npx prisma migrate dev

# (Optional) Open Prisma Studio to inspect data
npx prisma studio

🐳 Docker Setup (optional)

docker-compose up -d   # starts PostgreSQL
npx prisma migrate dev
npm run dev

4. Start the Development Server

npm run dev

Open http://localhost:3000 🎉


📁 Folder Structure

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

🧭 Usage Guide

Creating Your LinkID

  1. Sign up at linkid.qzz.io/register
  2. Pick your unique username (e.g., vishnu)
  3. Paste your profile URLs — platform is detected automatically
  4. Share linkid.qzz.io/vishnu everywhere

Supported Platforms

Platform Route Example
GitHub /github linkid.qzz.io/vishnu/github
LinkedIn /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 /instagram linkid.qzz.io/vishnu/instagram
Facebook /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

🤝 Contributing

We love contributions! LinkID is an open-source project and welcomes PRs of all sizes.

👉 Read the Contributing Guide →

Quick Start for Contributors

# 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 GitHub

🗺️ Roadmap / Open Issues

See GitHub Issues for tasks open to contributors.

📄 License

Distributed under the MIT License. See LICENSE for more information.


🙏 Acknowledgements

  • 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!

About

Resources

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • TypeScript 96.5%
  • CSS 3.1%
  • JavaScript 0.4%