Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

110 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🌐 DevGlobe

The global network for top open-source developers β€” discover, connect, and celebrate the people behind the code

Live Demo GitHub Stars License PRs Welcome

DevGlobe Demo

26,000+ developers Β· ranked by stars, commits, repo reach & StackOverflow reputation Β· searchable by skill, location & language


✨ Features

  • Interactive 3D Globe β€” Explore developers pinned to their real-world locations using Three.js
  • AI-Powered Search β€” Hybrid + vector search via Azure Cosmos DB (e.g. "AI & deep learning", "full stack JS dev")
  • Composite Scoring β€” Each developer scored 0–100 across 6 dimensions
  • Leaderboard β€” Filter by country, language, or sort by score/stars/commits
  • Developer Profiles β€” Click any pin to see detailed stats, top repos, and contribution breakdown
  • Mobile Responsive β€” Bottom-sheet filters and full-width search on smaller screens

πŸš€ Quick Start

Option 1: Zero-config (sample data, no database needed)

git clone https://github.com/sajeetharan/devglobe.git
cd devglobe
npm install
npm run dev
# Open http://localhost:3000

The app automatically falls back to the bundled sample data (20 developers) when no Cosmos DB credentials are configured. No API keys, no emulator, no setup β€” just clone and run.

Text search works fully offline. Vector/hybrid search requires Azure OpenAI (see Option 3).


Option 2: Cosmos DB Emulator (full database experience locally)

For contributors working on the API layer or data pipeline:

  1. Install the Cosmos DB Emulator β€” Download here (Windows, macOS via Docker, or Linux Docker)

  2. Start the emulator and wait for it to be ready at https://localhost:8081

  3. Seed sample data into the emulator:

    npm run seed-emulator
  4. Create .env.local (the seed script prints this for you):

    COSMOS_ENDPOINT=https://localhost:8081
    COSMOS_KEY=C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==
  5. Run the app:

    npm run dev

The emulator key above is Microsoft's well-known emulator key β€” it is intentionally public and only works locally.


Option 3: Full Azure backend (vector + hybrid search)

For the complete experience including AI-powered search:

# .env.local
COSMOS_ENDPOINT=https://your-account.documents.azure.com:443/
COSMOS_KEY=your-cosmos-key
AZURE_OPENAI_ENDPOINT=https://your-openai.openai.azure.com/
AZURE_OPENAI_KEY=your-openai-key
EMBEDDING_DEPLOYMENT=text-embedding-3-small
npm run dev

πŸ—οΈ Tech Stack

Layer Technology
Frontend React 19, Three.js (react-globe.gl), Next.js 15
Search Azure Cosmos DB (vector + hybrid search)
API Next.js API Routes
Hosting Vercel
Data Pipeline Node.js scripts (GitHub GraphQL, StackOverflow API, geocoding)

πŸ“Š Scoring Formula (0–100)

Dimension Weight Source
GitHub Stars 25% Total stars across repos
GitHub Commits 25% Yearly commit activity
Repo Reach 20% Forks + watchers
SO Reputation 15% StackOverflow reputation
SO Engagement 10% Answer acceptance Γ— count
Community 5% Followers + badges

All dimensions are log-normalized to prevent outlier domination.

πŸ”§ Building the Full Dataset

Requires API keys β€” copy .env.example to .env and fill in your tokens.

npm run fetch-github          # Fetch top devs from GitHub GraphQL
npm run fetch-stackoverflow   # Enrich with StackOverflow reputation
npm run geocode               # Convert locations to lat/lng
npm run build-data            # Run full pipeline
npm run upload-cosmos         # Upload to Azure Cosmos DB

πŸ“ Project Structure

β”œβ”€β”€ index.html                  # Entry HTML
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ main.jsx                # App bootstrap + Vercel Analytics
β”‚   β”œβ”€β”€ App.jsx                 # Root component, data loading
β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”œβ”€β”€ Globe.jsx           # 3D globe (react-globe.gl)
β”‚   β”‚   β”œβ”€β”€ Leaderboard.jsx     # Ranked sidebar with filters
β”‚   β”‚   β”œβ”€β”€ SearchBar.jsx       # Hybrid/vector search input
β”‚   β”‚   β”œβ”€β”€ DetailPanel.jsx     # Developer detail card
β”‚   β”‚   β”œβ”€β”€ Header.jsx          # Top bar with branding
β”‚   β”‚   └── LoadingOverlay.jsx  # Loading state
β”‚   └── utils/
β”‚       β”œβ”€β”€ scoring.js          # Composite scoring algorithm
β”‚       └── format.js           # Number formatting helpers
β”œβ”€β”€ api/
β”‚   β”œβ”€β”€ developers.js           # List all developers
β”‚   β”œβ”€β”€ developer.js            # Single developer lookup
β”‚   └── search.js               # Cosmos DB vector/hybrid search
β”œβ”€β”€ scripts/                    # Data pipeline scripts
β”œβ”€β”€ styles/main.css             # Dark theme styles
└── data/
    └── developers-sample.json  # Sample data for local dev

🌍 Deploy to Vercel

npx vercel

Required environment variables:

Variable Purpose
COSMOS_ENDPOINT Azure Cosmos DB endpoint
COSMOS_KEY Azure Cosmos DB key
COSMOS_DATABASE Database name
COSMOS_CONTAINER Container name

🀝 Contributing

Contributions are welcome! See CONTRIBUTING.md for setup instructions and areas where help is needed.

πŸ“„ License

MIT β€” see LICENSE for details.


⭐ Star this repo if you find it useful!

Built with ❀️ by @sajeetharan

About

🌍 The global network where developers and AI agents discover, connect, and collaborate.

Topics

Resources

Code of conduct

Contributing

Stars

9 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages