The global open-source developer discovery platform β search, compare, and connect with the people behind the code
26,000+ developers Β· ranked by stars, commits, repo reach & StackOverflow reputation Β· searchable by skill, location & language
DevGlobe is an interactive global developer network built for engineering teams, open-source communities, and the emerging ecosystem of AI agents. It combines a 3D developer map with Azure Cosmos DB vector and hybrid search to surface relevant expertise from real contribution signals rather than popularity alone. The long-term vision is a consent-aware discovery layer where AI agents can find the right human collaborators.
- 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
- Agent-Ready Roadmap β Consent-aware discovery, MCP access, and developer-agent introductions are planned
- Mobile Responsive β Bottom-sheet filters and full-width search on smaller screens
git clone https://github.com/sajeetharan/devglobe.git
cd devglobe
npm install
npm run dev
# Open http://localhost:3000The 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).
For contributors working on the API layer or data pipeline:
-
Install the Cosmos DB Emulator β Download here (Windows, macOS via Docker, or Linux Docker)
-
Start the emulator and wait for it to be ready at
https://localhost:8081 -
Seed sample data into the emulator:
npm run seed-emulator
-
Create
.env.local(the seed script prints this for you):COSMOS_ENDPOINT=https://localhost:8081 COSMOS_KEY=C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==
-
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.
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-smallnpm run dev| 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) |
| Dimension | Weight | Source |
|---|---|---|
| GitHub Stars | 20% | Total stars across repos |
| GitHub Commits | 20% | Yearly commit activity |
| Repo Reach | 15% | Forks + watchers |
| SO Reputation | 25% | StackOverflow reputation |
| SO Engagement | 15% | Answer acceptance Γ count |
| Community | 5% | Followers + badges |
All dimensions are log-normalized to prevent outlier domination.
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 DBVerified community credentials are stored explicitly on each developer document. Do not infer them from stars, followers, or profile text.
{
"login": "example",
"specialTags": ["github-star", "microsoft-mvp", "aws-community-builder"]
}Supported IDs: github-star, microsoft-mvp, google-developer-expert, docker-captain, cncf-ambassador, aws-hero, and aws-community-builder. The legacy docker-champion ID remains supported. The upload script preserves this field from source JSON, and the list, detail, and search APIs project it from Cosmos DB.
Populate exact GitHub-login matches from the official GitHub Stars, Google Developer Experts, and CNCF Ambassadors rosters:
npm run populate-special-tags # Dry run
npm run populate-special-tags -- --apply # Patch verified matches in Cosmos DBThe command preserves existing tags and is idempotent. Other credentials require an official profile that explicitly identifies the developer's GitHub account; do not populate them by matching display names.
βββ 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
npx vercelRequired environment variables:
| Variable | Purpose |
|---|---|
COSMOS_ENDPOINT |
Azure Cosmos DB endpoint |
COSMOS_KEY |
Azure Cosmos DB key |
COSMOS_DATABASE |
Database name |
COSMOS_CONTAINER |
Container name |
COSMOS_ACTIVITY_CONTAINER |
Rolling GitHub activity container (activities) |
ACTIVITY_INGEST_SECRET |
Bearer secret for the activity collector endpoint |
The Activity tab is anonymous and shows a rolling 24-hour feed for indexed developers. Create its dedicated Cosmos container before deployment:
npm run setup-activity-containerDeploy functions/activity-ingest as an Azure Timer Function and configure these application settings:
ACTIVITY_INGEST_URL=https://your-site.example/api/activities/ingest
ACTIVITY_INGEST_SECRET=the-same-secret-configured-on-the-siteThe timer invokes the collector every minute, matching GitHub's advertised polling interval. GitHub's public Events API is best-effort and may delay or omit events; the 15-second browser refresh does not guarantee GitHub source delivery within that interval. A valid GITHUB_TOKEN is required for full three-page collection; anonymous fallback inspects one page only. The Cosmos activity container uses a 48-hour TTL while the API exposes only the latest 24 hours.
Contributions are welcome! See CONTRIBUTING.md for setup instructions and areas where help is needed.
MIT β see LICENSE for details.
β Star this repo if you find it useful!
Built with β€οΈ by @sajeetharan