Manage links, save notes, track GitHub stats — all in one beautiful dashboard.
DevLink is a modern, full-stack developer productivity web application designed to streamline your daily workflow. Whether you're juggling multiple projects, managing developer resources, or tracking your GitHub contributions — DevLink brings everything together in one elegant, mobile-responsive dashboard.
- Developers who want a centralized hub for their resources
- Students learning to code and organizing their learning materials
- Teams looking for a clean way to share and manage links
- Anyone who wants to boost their productivity with a beautiful dashboard
| Challenge | DevLink Solution |
|---|---|
| Scattered bookmarks across browsers | Centralized link management with categories |
| Lost notes and snippets | Organized notes with search functionality |
| No visibility into GitHub activity | Integrated GitHub stats on your dashboard |
| Clunky, outdated productivity tools | Modern, responsive UI with smooth animations |
| Feature | Description |
|---|---|
| Link Manager | Save, organize, and access your important links instantly |
| Notes System | Create, edit, and search through your notes effortlessly |
| Personal Dashboard | At-a-glance view of your links, notes, and activity |
| GitHub Integration | Connect your GitHub profile and display your stats |
| Mobile Responsive | Beautiful app-like experience on any device |
| JWT Authentication | Secure signup/signin with token-based auth |
| Modern UI/UX | Clean design with shadcn/ui components |
| Sleek Design System | Professional slate-based color palette |
| Fast Performance | Built with Vite for lightning-fast load times |
| Search Functionality | Quickly find notes with powerful search |
| Technology | Purpose |
|---|---|
| UI Library | |
| Type Safety | |
| Build Tool | |
| Styling | |
| UI Components |
| Technology | Purpose |
|---|---|
| Runtime | |
| Web Framework | |
| Database | |
| Authentication | |
| ODM |
DevLink/
├── frontend/
│ ├── src/
│ │ ├── assets/ # Static assets
│ │ ├── components/ # Reusable components
│ │ │ ├── common/ # Shared components (Card, etc.)
│ │ │ ├── layout/ # Layout components
│ │ │ ├── layouts/ # Page layouts
│ │ │ ├── mobile/ # Mobile-specific components
│ │ │ └── ui/ # shadcn/ui components
│ │ ├── config/ # App configuration
│ │ ├── hooks/ # Custom React hooks
│ │ ├── lib/ # Utility functions
│ │ ├── pages/ # Page components
│ │ │ ├── Dashboard.tsx
│ │ │ ├── Links.tsx
│ │ │ ├── Notes.tsx
│ │ │ ├── Profile.tsx
│ │ │ ├── Signin.tsx
│ │ │ └── Signup.tsx
│ │ ├── services/ # API service layer
│ │ ├── types/ # TypeScript types
│ │ ├── App.tsx # Root component
│ │ ├── main.tsx # Entry point
│ │ └── index.css # Global styles
│ ├── .env # Environment variables
│ ├── package.json
│ └── vite.config.ts
│
├── backend/
│ ├── config/ # Database & app config
│ ├── controller/ # Route controllers
│ │ ├── auth.controller.js
│ │ ├── github.controller.js
│ │ ├── link.controller.js
│ │ ├── note.controller.js
│ │ └── profile.controller.js
│ ├── middleware/ # Express middlewares
│ │ ├── authMiddleware.js
│ │ └── validate.middleware.js
│ ├── models/ # Mongoose models
│ ├── routes/ # API routes
│ │ ├── auth.route.js
│ │ ├── github.route.js
│ │ ├── link.route.js
│ │ ├── notes.route.js
│ │ └── profile.route.js
│ ├── services/ # Business logic
│ ├── validator/ # Request validation
│ ├── server.js # App entry point
│ ├── .env.example
│ └── package.json
│
├── LICENSE
└── README.md
Ensure you have the following installed:
- Node.js (v18.x or higher) — Download
- npm (v9.x or higher) or yarn
- MongoDB (Atlas or local) — Get Started
- Git — Download
-
Clone the repository
git clone https://github.com/RishiBuilds/DevLink.git cd DevLink -
Install backend dependencies
cd backend npm install -
Install frontend dependencies
cd ../frontend npm install -
Configure environment variables
# Backend cd ../backend cp .env.example .env # Edit .env with your values # Frontend cd ../frontend cp .env.example .env # Edit .env with your values
-
Start the development servers
# Terminal 1 - Backend (from /backend) npm run dev # Terminal 2 - Frontend (from /frontend) npm run dev
-
Open your browser
Navigate to
http://localhost:5173
# Frontend
cd frontend
npm run build
# Backend
cd backend
npm start# Server Configuration
PORT=3000
NODE_ENV=development
FRONTEND_URL=http://localhost:5173
# MongoDB Connection
MONGODB_URL=mongodb+srv://<username>:<password>@cluster0.mongodb.net/devlink?retryWrites=true&w=majority
# JWT Configuration
JWT_SECRET=your-super-secret-jwt-key-minimum-32-characters
JWT_EXPIRES_IN=7d
# GitHub API (optional - for higher rate limits)
GITHUB_TOKEN=your-github-personal-access-tokenVITE_API_URL=http://localhost:3000/api| Method | Endpoint | Description | Auth Required |
|---|---|---|---|
POST |
/api/auth/signup |
Register new user | no |
POST |
/api/auth/signin |
Login user | no |
| Method | Endpoint | Description | Auth Required |
|---|---|---|---|
POST |
/api/link/add-link |
Create a new link | yes |
GET |
/api/link/get-links |
Get all user links | yes |
GET |
/api/link/get-link/:id |
Get single link | yes |
PUT |
/api/link/update-link |
Update a link | yes |
DELETE |
/api/link/delete-link/:id |
Delete a link | yes |
| Method | Endpoint | Description | Auth Required |
|---|---|---|---|
POST |
/api/notes/create-note |
Create a new note | yes |
GET |
/api/notes/read-note |
Get all user notes | yes |
PUT |
/api/notes/update-note/:noteId |
Update a note | yes |
POST |
/api/notes/search-note |
Search notes | yes |
DELETE |
/api/notes/delete-note |
Delete a note | yes |
| Method | Endpoint | Description | Auth Required |
|---|---|---|---|
POST |
/api/github/connect |
Connect GitHub account | yes |
GET |
/api/github/me |
Get connected GitHub | yes |
DELETE |
/api/github/disconnect |
Disconnect GitHub | yes |
GET |
/api/github/:username/repos |
Fetch user repos | no |
GET |
/api/github/:username/profile |
Fetch user profile | no |
GET |
/api/github/:username/total-commits |
Fetch commit count | no |
| Method | Endpoint | Description | Auth Required |
|---|---|---|---|
GET |
/api/profile/get-profile |
Get own profile | yes |
PUT |
/api/profile/update-profile |
Update profile | yes |
GET |
/api/profile/get-other-profile/:id |
Get other user's profile | no |
- Navigate to the Links page from the sidebar
- Click the "+ Add Link" button
- Enter the URL, title, and optional description
- Click Save — your link is now stored!
- Go to the Notes section
- Click "+ New Note"
- Write your content with the editor
- Notes auto-save or click Save when done
- Visit your Profile page
- Enter your GitHub username in the GitHub section
- Click Connect to fetch your stats
- Your repos, commits, and profile info will display on your dashboard
DevLink is fully responsive with a native app-like experience:
- Bottom navigation for easy thumb access
- Swipe gestures for quick actions
- Pull-to-refresh on lists
- Floating action buttons for quick adds
| Breakpoint | Behavior |
|---|---|
Mobile (<768px) |
Bottom nav, stacked cards, FAB |
Tablet (768-1024px) |
Sidebar toggle, 2-column grid |
Desktop (>1024px) |
Fixed sidebar, multi-column layouts |
- Smooth page transitions
- Micro-interactions on buttons and cards
- Loading skeletons for async content
- Toast notifications for feedback
| Feature | Implementation |
|---|---|
| Authentication | JWT with secure httpOnly considerations |
| Validation | Zod schemas for all inputs (frontend + backend) |
| Password Hashing | bcrypt with salt rounds |
| CORS | Configured for frontend origin only |
| Optimization | Benefit |
|---|---|
| Vite Build | Sub-second HMR, optimized production bundles |
| Lazy Loading | Route-based code splitting |
| Tree Shaking | Minimal bundle size |
| MongoDB Indexing | Fast queries on frequent lookups |
- Push your code to GitHub
- Go to Vercel and import your repo
- Set the Root Directory to
frontend - Add environment variables:
VITE_API_URL=https://your-backend-url.com/api - Deploy!
- Create a new Web Service on Render
- Connect your GitHub repo
- Set Root Directory to
backend - Add environment variables from
.env.example - Set Build Command:
npm install - Set Start Command:
npm start
- Create a new project on Railway
- Add your GitHub repo
- Configure the
backenddirectory - Add environment variables
- Deploy automatically on push
- Create a free cluster at MongoDB Atlas
- Whitelist your deployment IPs (or allow all:
0.0.0.0/0) - Create a database user
- Copy the connection string to your backend
.env
Contributions make the open-source community amazing! Any contributions 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
This project is licensed under the MIT License — see the LICENSE file for details.
MIT License © 2026 Rishi Chaurasia