Discover open source projects with 100-600 stars - perfect for your first contributions to open source!
This Next.js application automatically fetches repositories from GitHub that fall within the ideal contribution range and displays them in a clean, accessible interface.
- 🚀 Daily Auto-Updates: Automatically fetches new repositories via Vercel Cron
- 🎯 Curated Selection: Projects with 100-600 stars (perfect contribution size)
- 📱 Responsive Design: Clean interface built with Tailwind CSS
- 🔒 Secure: Protected cron endpoints with Bearer token authentication
- ⚡ Fast: Built with Next.js 15+ App Router and PostgreSQL
- Framework: Next.js 15+ with App Router
- Database: PostgreSQL with Prisma ORM
- Styling: Tailwind CSS
- Deployment: Vercel with Cron Jobs
- Language: TypeScript
- Node.js 18+
- Docker and Docker Compose
- GitHub Personal Access Token
-
Clone the repository
-
Install dependencies:
npm install
-
Set up environment variables:
cp .env.example .env.local
Fill in your environment variables:
DATABASE_URL: Already configured for Docker setupGITHUB_TOKEN: Your GitHub Personal Access TokenCRON_SECRET: Secret key for cron authentication
-
Start PostgreSQL database with Docker:
docker-compose up -d
-
Set up the database:
npx prisma migrate dev npx prisma generate
-
Run the development server:
npm run dev
-
Open http://localhost:3000 to see the app
- Start PostgreSQL:
docker-compose up -d - Stop PostgreSQL:
docker-compose down - View logs:
docker-compose logs postgres - Access PostgreSQL CLI:
docker-compose exec postgres psql -U postgres -d contribute_to_small_projects
To populate the database with repositories, you can manually trigger the fetch endpoint:
curl -X POST http://localhost:3000/api/fetch \
-H "Authorization: Bearer YOUR_CRON_SECRET"- Push your code to GitHub
- Connect your repository to Vercel
- Add environment variables in Vercel dashboard:
DATABASE_URLGITHUB_TOKENCRON_SECRET
- Deploy!
The cron job will automatically run daily at midnight to fetch new repositories.
GET /api/repos- Fetch all repositories (public)POST /api/fetch- Fetch repositories from GitHub (protected, cron only)
Contributions are welcome! Please feel free to submit a Pull Request.