Helping developers break into open source through curated beginner-friendly issues, automated tracking, and proof-of-work credentials.
Explore the App β’ Documentation β’ Report an Issue β’ Request a Feature
FirstIssue.dev is a comprehensive developer platform designed to bridge the gap between aspiring open source contributors and welcoming projects. Finding your first contribution can be daunting. We curate beginner-friendly issues (like good first issue, help wanted, documentation), sync your progress directly with GitHub, and showcase your contributions as a clean developer profile.
- π Smart Issue Discovery: Discover curated, high-quality, beginner-friendly issues from active repositories.
- π Real-Time GitHub Sync: Automatically pull assigned issues, active PRs, and merge states straight from GitHub.
- π Developer Dashboard: Visualize your contribution analytics, merge ratios, and active streaks.
- π Bookmark Manager: Keep track of interesting issues and organize your contribution pipeline.
- π‘οΈ Secure Ecosystem: OAuth authentication powered by GitHub and Supabase Row Level Security (RLS).
- π Supporter Tier: Premium AI Smart Matching, priority syncing, and exclusive supporter profiles.
- Targeted Labels: Focuses exclusively on beginner-friendly labels.
- Advanced Filtering: Filter by programming languages, repositories, and specific labels.
- Curation Engine: Only shows active repositories with welcoming maintainers.
- PR State Tracking: Automatic updates on your pull requests (Open, Draft, Merged, Closed).
- Status Classification:
Savedβ Bookmarked issuesAppliedβ Assigned issuesIn Progressβ Pull requests under reviewMergedβ Successfully completed contributions
- Manual Log: Log non-GitHub or off-platform contributions manually to keep your dashboard complete.
- Visual Activity Heatmap: Track your contributions over time.
- Merge Ratios: Real-time calculation of your success rates.
- Public Profile: Share your developer journey and proof-of-work contributions.
| Category | Technology | Purpose |
|---|---|---|
| Frontend | React 19.1.0 & Vite 6.3.5 | Modern, blazing-fast single page application |
| Styling | Tailwind CSS 4.1.10 | Utility-first, responsive interface styling |
| Auth | Supabase Auth & GitHub OAuth | Secure, passwordless developer login |
| Database | PostgreSQL (via Supabase) | User data, bookmarks, and local sync state |
| API | GitHub REST API v3 | Live issue fetching and PR verification |
| Icons | Lucide React | Clean, scalable vector icons |
| State & Routes | React Router 7.6.2 | Seamless page transitions and routing |
| Notifications | React Hot Toast | Real-time user feedback and toast alerts |
Make sure you have the following installed on your local machine:
- Node.js (Version
18.xor higher) - npm or yarn
- A GitHub Developer Application (for setting up local Auth)
- A Supabase Project
-
Clone the Repository
git clone https://github.com/anmolsah/firstissue.dev.git cd firstissue.dev -
Install Dependencies
npm install
-
Setup Environment Variables Create a
.envfile in the root directory:cp .env.example .env
Populate it with your credentials:
VITE_SUPABASE_URL=your_supabase_project_url VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
-
Database & Supabase Configuration
- Create a project on the Supabase Dashboard.
- Enable GitHub OAuth under
Authentication -> Providers. Use your GitHub Developer App client credentials. - Run the database schema setup inside
supabase/migrations/create_contributions_table.sql. - Ensure Row Level Security (RLS) is enabled and active.
-
Run Development Server
npm run dev
Your local app will be running at
http://localhost:5173.
In the project directory, you can run:
npm run devβ Launches the local development server.npm run buildβ Builds the app for production (outputs todist/).npm run previewβ Locally previews the production build.npm run lintβ Runs ESLint for code analysis and quality verification.
firstissue.dev/
βββ public/ # Static assets & logos
βββ supabase/ # Migrations, Edge Functions & Webhooks
β βββ functions/ # Deno-based Supabase Edge Functions
β βββ migrations/ # PostgreSQL schema migrations
βββ src/
β βββ assets/ # Media and styling assets
β βββ components/ # Reusable UI components
β βββ contexts/ # Global React Contexts (Auth, Theme)
β βββ data/ # Static configurations & site data
β βββ hooks/ # Custom React hooks (useGitHub, etc.)
β βββ lib/ # Third-party initializations (Supabase Client)
β βββ pages/ # Routing pages and screens
β βββ services/ # Network requests and business services
β βββ utils/ # Helper functions & utilities
β βββ App.jsx # Root React component
β βββ main.jsx # DOM Entry point
βββ docs/ # Markdown guides & documentation
βββ package.json # Package manifest and scripts
For deeper dives into specific components, refer to our localized guides:
- π Architecture & System Design β Core structure and how sync works.
- π€ Contributing Guidelines β Guide on standards, PR process, and linting.
- π Student & Beginner Guide β Tips on finding your first issue.
- π GitHub OAuth Setup β Step-by-step credentials configuration.
- β Local Setup Checklist β Quick onboarding guide for developers.
- OAuth Only: User credentials are never handled directly. We leverage GitHub OAuth.
- Row Level Security (RLS): Policies are enforced at the database level, ensuring users can only read/write their own records.
- Token Protection: GitHub API tokens are securely managed and never exposed in public client environments.
- Dodo Payments Webhook Verification: Digital signatures are verified to guarantee payload authenticity.
Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contribution you make is greatly appreciated!
Please see our Contributing Guide to get started.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'feat: Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the MIT License. See LICENSE for more details.
Anmol Sah
- GitHub: @anmolsah
- Website: firstissue.dev