Skip to content
saiganesh-007Public

About

Open-source developer intelligence for exploring, comparing, and researching GitHub developers and repositories.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Repository files navigation

DevHub

DevHub

Developer intelligence for the open-source world.

Search people. Explore repositories. Compare signals.
Keep the GitHub research you care about in one clean workspace.


Live Demo GitHub LinkedIn


Next.js React TypeScript Tailwind CSS Supabase Vercel License: MIT Release


👋 What is DevHub?

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.


🚀 Try it live

The production app is running with:

  • GitHub REST API
  • Supabase Authentication
  • PostgreSQL
  • Supabase Storage
  • Vercel

✨ What can you do?

👨‍💻 Explore Developers

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

📦 Explore Repositories

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

Compare:

Developer ↔ Developer

Repository ↔ Repository

The comparison view uses actual GitHub signals instead of made-up ratings or hidden formulas.


❤️ Save what matters

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.


🔎 Search without the chaos

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.


🖼️ Profile Photo Editor

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.


🧱 Tech Stack

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

🧠 How it works

                         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:

docs/ARCHITECTURE.md


📁 Project Structure

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

🛠️ Run it locally

1. Clone DevHub

git clone https://github.com/saiganesh-007/devhub.git
cd devhub

2. Install dependencies

npm install

3. Create .env.local

On Windows:

copy .env.example .env.local

Add 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.local or expose GITHUB_TOKEN inside browser-side code.

4. Set up Supabase

Apply the migrations inside:

supabase/migrations/

Then configure authentication URLs from:

Supabase Dashboard
→ Authentication
→ URL Configuration

5. Start DevHub

npm run dev

Open:

http://localhost:3000

⚙️ Commands

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

🔌 API Layer

The browser doesn't talk directly to GitHub.

DevHub uses its own server-side API layer.

Developers

GET /api/github/users/search?q=
GET /api/github/users/:username

Repositories

GET /api/github/repositories/search?q=
GET /api/github/repositories/:owner/:repo

Saved Developers

GET    /api/favourites/developers
POST   /api/favourites/developers
DELETE /api/favourites/developers/:username

Saved Repositories

GET    /api/favourites/repositories
POST   /api/favourites/repositories
DELETE /api/favourites/repositories/:id

Successful responses follow a predictable structure:

{
  "ok": true,
  "data": {}
}

Errors follow:

{
  "ok": false,
  "error": {
    "code": "ERROR_CODE",
    "message": "Something went wrong."
  }
}

🔐 Authentication

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.


🛡️ Security

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

⚡ Reliability

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.


🎨 Design

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

🌍 Deployment

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=

🔗 Production

devhub-flame-seven.vercel.app


🧩 Current Flow

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.


🤝 Open Source & Contributing

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.


📜 License

DevHub is released under the MIT License.


👨‍🚀 About Me

Sai Ganesh M

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.


🔗 Links

🚀 Live App Launch DevHub
💻 Source Code saiganesh-007/devhub
🧠 Architecture Architecture Docs
🧩 Contributing Contribution Guide
📦 Releases DevHub Releases
📜 License MIT
💼 LinkedIn Connect with Sai
👨‍💻 GitHub @saiganesh-007

Built to make GitHub research a little less messy. 🚀


Launch DevHub



Next.js · TypeScript · Supabase · GitHub API


Made by Sai Ganesh M

About

Open-source developer intelligence for exploring, comparing, and researching GitHub developers and repositories.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages