A modern React application for discovering and exploring open-source repositories, with a focus on Y Combinator-backed projects.
- 🔍 Smart Search: Search across all GitHub repositories
- 🏢 YC-Backed Filter: Toggle to show only Y Combinator-backed open source projects
- 🎯 Language Filtering: Filter repositories by programming language
- 📊 Rich Data: View stars, forks, descriptions, and more
- 🎨 Modern UI: Clean, minimal black and white design
- ⚡ Fast Performance: Optimized with caching and parallel requests
- Frontend: React 19, Vite, TailwindCSS, Headless UI
- Backend: Node.js, Express, Axios
- Deployment: Vercel (Serverless Functions)
- Node.js 18+
- npm or yarn
-
Clone the repository
git clone <your-repo-url> cd DevScout
-
Install dependencies
# Frontend cd frontend npm install # Backend cd ../backend npm install
-
Environment Variables
# Copy the example file cp .env.example .env # Add your GitHub token (optional but recommended) # Get one from: https://github.com/settings/tokens
-
Run the development servers
# Terminal 1 - Backend cd backend npm start # Terminal 2 - Frontend cd frontend npm run dev
-
Open your browser
- Frontend: http://localhost:5173
- Backend API: http://localhost:5000/api/projects
-
Push to GitHub
git add . git commit -m "Initial commit" git push origin main
-
Connect to Vercel
- Go to vercel.com
- Sign in with GitHub
- Click "New Project"
- Import your DevScout repository
- Vercel will auto-detect the configuration
-
Add Environment Variables
- In Vercel dashboard, go to Settings > Environment Variables
- Add
GITHUB_TOKENwith your GitHub token value - Redeploy the project
-
Install Vercel CLI
npm i -g vercel
-
Deploy
vercel
-
Add Environment Variables
vercel env add GITHUB_TOKEN
GET /api/projects- Get repositories- Query params:
search- Search termlanguage- Programming language filteryc- Show only YC-backed repos (true/false)sort- Sort by (stars, forks, updated)
- Query params:
DevScout/
├── frontend/ # React frontend
│ ├── src/
│ │ ├── components/ # Reusable components
│ │ ├── pages/ # Page components
│ │ └── ...
│ └── package.json
├── backend/ # Node.js backend
│ ├── api/ # Vercel serverless functions
│ ├── yc_orgs.json # YC organization list
│ └── package.json
├── vercel.json # Vercel configuration
└── README.md
- Parallel API Requests: YC org searches run in parallel
- In-Memory Caching: 5-minute cache for YC results
- Request Timeouts: 5-second timeout per API call
- Bundle Optimization: Vite build optimization
- Code Splitting: Automatic code splitting with Vite
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
MIT License - see LICENSE file for details