Search people. Explore repositories. Compare signals.
Keep the GitHub research you care about in one clean workspace.
DevHub is a full-stack GitHub intelligence platform I built to make researching developers and open-source projects less scattered.
GitHub already has a huge amount of useful information, but it lives across profiles, repositories, contribution history, language stats, activity feeds and individual project pages.
DevHub brings the important signals together.
You can search a developer, inspect their public work, explore repositories, compare profiles, save useful finds and come back to them later from your own workspace.
The goal isn't to invent a "developer score". DevHub shows the real signals and lets you make sense of them.
The production app is running with:
- GitHub REST API
- Supabase Authentication
- PostgreSQL
- Supabase Storage
- Vercel
Search a GitHub username and get a cleaner view of their public activity.
- Followers & following
- Public repositories
- Total repository stars
- Total forks
- Language distribution
- Recent public GitHub activity
- Recently updated repositories
- Top repositories
- Developer profile details
- Save developers for later
Dig into public repositories without constantly switching between GitHub tabs.
- Stars
- Forks
- Main language
- Language breakdown
- Contributors
- Recent commits
- Repository activity
- README information
- Releases
- License information
- Save repositories
Compare:
Developer ↔ Developer
Repository ↔ Repository
The comparison view uses actual GitHub signals instead of made-up ratings or hidden formulas.
Signed-in users can build their own research workspace.
You can save developers and repositories and come back to them later.
Saved data is connected to your Supabase account, so it stays available after refreshing or signing back in.
The global search supports both developers and repositories.
It includes:
- Developer autocomplete
- Repository autocomplete
- Keyboard navigation
- Search history
- Debounced API requests
- Stale-request cancellation
- Loading states
- Empty states
- Friendly errors
- GitHub rate-limit handling
The search layer also reduces unnecessary GitHub requests while somebody is still typing.
I didn't want the account photo setting to feel like a basic file upload.
Users can:
- Upload JPG, PNG or WebP
- Drag the image into position
- Zoom in and out
- Preview the circular crop
- Save a 512 × 512 image
- Automatically convert the result to WebP
- Store it using Supabase Storage
The final cropped avatar is then used consistently throughout the DevHub workspace.
| Area | Built With |
|---|---|
| Framework | Next.js 16 |
| Frontend | React 19 |
| Language | TypeScript |
| Styling | Tailwind CSS 4 |
| Authentication | Supabase Auth |
| Database | PostgreSQL |
| Storage | Supabase Storage |
| External Data | GitHub REST API |
| Validation | Zod |
| Icons | Lucide React |
| Deployment | Vercel |
DEVHUB
│
▼
┌──────────────────┐
│ Next.js / React │
└────────┬─────────┘
│
▼
┌──────────────────┐
│ Next.js App/API │
│ Route Handlers │
└──────┬─────┬─────┘
│ │
┌─────────┘ └─────────┐
▼ ▼
┌─────────────────┐ ┌─────────────────┐
│ GitHub REST API │ │ Supabase │
│ │ │ │
│ Developers │ │ Auth │
│ Repositories │ │ PostgreSQL │
│ Activity │ │ RLS │
│ Contributors │ │ Storage │
└─────────────────┘ └─────────────────┘
The GitHub token stays on the server.
The browser talks to DevHub's own API routes, while user-specific workspace data is protected using Supabase Row Level Security.
More details:
devhub/
│
├── public/
│ └── brand/ # DevHub brand assets
│
├── src/
│ │
│ ├── app/
│ │ ├── api/ # API route handlers
│ │ ├── dashboard/ # Personal dashboard
│ │ ├── developer/ # Developer profiles
│ │ ├── repository/ # Repository profiles
│ │ ├── search/ # Search experience
│ │ ├── compare/ # Comparison tools
│ │ ├── favourites/ # Saved workspace
│ │ └── settings/ # Account settings
│ │
│ ├── components/ # Shared UI components
│ │
│ ├── lib/
│ │ ├── github/ # GitHub service layer
│ │ └── supabase/ # Supabase clients
│ │
│ └── types/ # TypeScript types
│
├── supabase/
│ └── migrations/ # Database + storage migrations
│
├── docs/
├── package.json
└── README.md
git clone https://github.com/saiganesh-007/devhub.git
cd devhubnpm installOn Windows:
copy .env.example .env.localAdd your environment variables:
NEXT_PUBLIC_SUPABASE_URL=your_supabase_project_url
NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY=your_supabase_publishable_key
GITHUB_TOKEN=your_github_personal_access_token
⚠️ Never commit.env.localor exposeGITHUB_TOKENinside browser-side code.
Apply the migrations inside:
supabase/migrations/
Then configure authentication URLs from:
Supabase Dashboard
→ Authentication
→ URL Configuration
npm run devOpen:
http://localhost:3000
| Command | What it does |
|---|---|
npm run dev |
Start the development server |
npm run lint |
Run ESLint |
npm run test |
Run tests |
npm run build |
Create a production build |
npm start |
Run the production build |
The browser doesn't talk directly to GitHub.
DevHub uses its own server-side API layer.
GET /api/github/users/search?q=
GET /api/github/users/:usernameGET /api/github/repositories/search?q=
GET /api/github/repositories/:owner/:repoGET /api/favourites/developers
POST /api/favourites/developers
DELETE /api/favourites/developers/:usernameGET /api/favourites/repositories
POST /api/favourites/repositories
DELETE /api/favourites/repositories/:idSuccessful responses follow a predictable structure:
{
"ok": true,
"data": {}
}Errors follow:
{
"ok": false,
"error": {
"code": "ERROR_CODE",
"message": "Something went wrong."
}
}Authentication is handled using Supabase Auth.
Current authentication routes:
/login
/register
/verify-email
/forgot-password
/reset-password
/auth/callback
Protected parts of DevHub require a valid authenticated session.
That includes the dashboard, saved workspace and account settings.
A few things I specifically wanted to keep clean while building DevHub:
- GitHub tokens stay server-side
- User identity comes from the Supabase session
- Personalized tables use Row Level Security
- Avatar uploads are scoped to the signed-in user
- API inputs are validated
- GitHub path values are encoded
- Secrets stay inside environment variables
- Service-role keys are never exposed to the browser
External APIs are never perfect, so DevHub handles the common failure cases too.
✓ GitHub primary rate limits
✓ GitHub secondary rate limits
✓ Request timeouts
✓ Invalid GitHub authentication
✓ Missing developers
✓ Missing repositories
✓ Network failures
✓ Cancelled / stale searches
✓ Loading states
✓ Empty states
Search requests are debounced so the app doesn't hammer GitHub while somebody is still typing.
DevHub uses a minimal white + wine visual system.
Background #FCFAFA
Text #171416
Wine #861F3D
Deep Wine #4A1020
I wanted it to feel more like a focused developer tool than a generic analytics dashboard.
The interface focuses on:
- readable information
- strong hierarchy
- low visual noise
- quick navigation
- responsive layouts
- keyboard accessibility
- useful interaction feedback
- consistent developer and repository views
DevHub is deployed on Vercel.
Every production push to:
main
automatically creates a new deployment.
Required production environment variables:
NEXT_PUBLIC_SUPABASE_URL=
NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY=
GITHUB_TOKEN=Landing
↓
Authentication
↓
Dashboard
↓
Search
↓
Developer / Repository Intelligence
↓
Compare
↓
Save
↓
Personal Workspace
↓
Settings + Profile Customization
DevHub is currently deployed with live GitHub data and Supabase-backed user accounts.
DevHub is open source and welcomes useful contributions.
Before contributing, please read:
Bug fixes, tests, accessibility improvements, performance work, documentation, GitHub API reliability improvements and thoughtful product features are all welcome.
DevHub is released under the MIT License.
Full Stack Developer · AI Developer
I like building projects where the frontend, backend and actual product logic all work together instead of stopping at a static UI.
DevHub gave me a chance to work across API integration, authentication, databases, protected user data, storage, search, UI/UX and production deployment inside one product.
| 🚀 Live App | Launch DevHub |
| 💻 Source Code | saiganesh-007/devhub |
| 🧠 Architecture | Architecture Docs |
| 🧩 Contributing | Contribution Guide |
| 📦 Releases | DevHub Releases |
| 📜 License | MIT |
| Connect with Sai | |
| 👨💻 GitHub | @saiganesh-007 |