FirstMerge is an intelligent open-source onboarding platform that helps beginners find their first open-source issues, evaluate repository friendliness, and generate AI-driven step-by-step roadmaps to solve bugs with confidence. It also includes a Chrome Extension for real-time PR analysis natively on GitHub.
- Web Platform: www.firstmerge.app/
- API Backend: https://mergemate-production-59be.up.railway.app
- Chrome Extension: Load unpacked from the
/extensiondirectory.
- Curated Issue Discovery: Automatically aggregates "good first issues" and beginner-friendly tasks across GitHub.
- Friendliness Score: Dynamically scores repositories (0-100) based on maintainer response times, beginner PR merge rates, issue freshness, and PR collisions to ensure beginners only pick battles they can win.
- AI-Powered Roadmaps: Generates a step-by-step, actionable checklist (via Gemini AI) to guide you through solving an issue before you even clone the repo.
- Chrome Extension Auto-Analysis: Natively injects into GitHub's Pull Request page, analyzing your code and comparing it to the linked issue before you hit submit to ensure high quality.
- Personalized Dashboard: Save issues, track your open-source journey, and share your contributor profile.
- Framework: React + Vite
- Routing: React Router
- Styling: Tailwind CSS / Vanilla CSS (Modern, dark-mode, glassmorphic UI)
- Deployment: Vercel
- Framework: Express.js (Node.js)
- Deployment: Railway
- Rate Limiting & Security: Helmet, Express-Rate-Limit, CORS (locked to frontend domain), SSRF-safe URL parsing
- AI Integration: Google Gemini API (with 3-key rotation & XML sanitization)
- GitHub Integration: GitHub REST API & GraphQL API (batched queries)
- Database & Cache: Supabase (PostgreSQL) for 1-hour issue caching and 2-hour Repo Score caching
- Authentication: Supabase GitHub OAuth (JWT)
- Environment: Manifest V3
- Injection: Real-time DOM MutationObserver for GitHub SPA compatibility (Turbo/pjax)
- Auth Syncing: Cross-domain token syncing from the Vercel web app to the extension.
/frontend: The React + Vite web application./backend: The Express.js API server handling GitHub data, AI processing, and Supabase caching./extension: The Chrome extension source code.
- Node.js (v18+)
- Supabase Project (Database & Auth setup)
- GitHub Personal Access Token
- Google Gemini API Key
cd backend
npm install
# Create a .env file with your SUPABASE_URL, SUPABASE_SERVICE_KEY, GITHUB_TOKEN, and GEMINI API keys.
npm run devcd frontend
npm install
# Create a .env file with VITE_BACKEND_URL and VITE_SUPABASE keys.
npm run dev- Open Chrome and navigate to
chrome://extensions/ - Enable Developer mode
- Click Load unpacked and select the
/extensionfolder in this repository.
| Contributor | Focus Area |
|---|---|
| Talisman | Backend, auth/security architecture, AI integration, explore page |
| Anki | Landing page, FTUE, Chrome extension, explore page |
Built to empower the next generation of open-source contributors.