GitHub Contribution Intelligence Platform
Discover meaningful open-source opportunities, score them against your skills, and track contributions from idea to merge.
UpStream reduces the friction of finding useful open-source work. It searches GitHub issues using language, label, and activity signals, scores opportunities against user preferences with a rules-based 0–100 matching system, and turns promising issues into a trackable contribution pipeline.
Instead of treating GitHub as a list of disconnected issues, UpStream gives developers a workflow for moving from discovery → evaluation → action → contribution.
GitHub OAuth
↓
Personal preferences
↓
GitHub issue discovery
↓
Rules-based opportunity scoring
↓
Save opportunity
↓
Track contribution status
↓
Dashboard insights
- Search GitHub issues and repositories
- Filter by language, label, and activity
- Surface contribution opportunities from GitHub data
- Rules-based scoring from 0–100
- Uses developer skill preferences and issue signals
- Helps prioritize opportunities instead of browsing randomly
Track opportunities through:
Saved → Exploring → In Progress → PR Opened → Merged
Each saved opportunity can retain status and notes, giving developers a lightweight contribution workspace.
- Pipeline overview
- Saved opportunities
- Contribution activity
- User profile and preferences
- Visual analytics through Recharts
| Layer | Technology |
|---|---|
| Frontend | React 18, Vite, Tailwind CSS |
| Data fetching | TanStack Query |
| Visualization | Recharts |
| Backend | Node.js, Express |
| Authentication | GitHub OAuth, Passport.js, JWT |
| Database | MongoDB, Mongoose |
| External data | GitHub API |
- Node.js 18+
- MongoDB
- GitHub OAuth App credentials
Create an OAuth App from GitHub → Settings → Developer settings → OAuth Apps.
For local development:
Homepage URL:
http://localhost:5173
Authorization callback URL:
http://localhost:5000/auth/github/callback
# Server
cp server/.env.example server/.env
# Client
cp client/.env.example client/.envConfigure the required GitHub OAuth, JWT, MongoDB, and client environment values.
npm run install:allBackend:
npm run dev:serverFrontend:
npm run dev:clientOpen http://localhost:5173.
client/
└── src/
├── api/ # API and query functions
├── components/ # Reusable UI components
├── context/ # Authentication context
├── pages/ # Route-level views
└── utils/ # Client utilities
server/
├── config/ # Database, Passport and cache configuration
├── controllers/ # Request handlers
├── middleware/ # Express middleware
├── models/ # Mongoose models
├── routes/ # API routes
├── services/ # GitHub integration and scoring logic
└── utils/ # Supporting server utilities
| Area | Endpoints |
|---|---|
| Authentication | /auth/github, /auth/me |
| Issues | /api/issues/search, /api/issues/:owner/:repo/:num |
| Repositories | /api/repos/search |
| Saved opportunities | /api/saved-items |
| Dashboard | /api/dashboard/summary |
| Profile | /api/profile, /api/profile/preferences |
github-contribution-radar.vercel.app
MIT
Built to make open-source contribution discovery more intentional.