GitFinder β search, score and explore GitHub's 300M+ repositories by quality, language and activity. Type a concept like
"image compression"or"expense tracker"to get ranked results.
- β¨ Features
- π How It Works
- ποΈ Tech Stack
- π Quick Start
- βοΈ Environment Variables
- π Project Structure
- π§ Quality Scoring Algorithm
- π Security Model
- βοΈ Deploy Your Own
- π€ Contributing
- π License
| Feature | Description |
|---|---|
| π Concept Search | Type 1β3 words (e.g. "drag drop ui") β no exact names needed |
| π Date Filters | Filter by Today / This Week / 2024 / 2023 / All Time |
| π Quality Scoring | Repos rated Advanced / Intermediate / Basic using 9 signals |
| π Inline README Viewer | Read full README without leaving the app |
| π Trending Page | Top repos by category in the last 30 days |
| π Live Site Detection | Repos with deployed websites are flagged automatically |
| π¨ Mouse Trail + Transitions | Smooth animated UI with page transitions |
| β‘ Token-Secured API | GitHub token lives server-side only β never exposed to browser |
User Input β /api/github (Next.js Route Handler) β api.github.com β Ranked Results
- You type a search query or pick a trending category
- The frontend calls your own
/api/githubproxy route - The server injects your
GITHUB_TOKENand forwards the request to GitHub's API - Results are scored using 9 quality signals and returned to the client
- You can filter by date, language, quality level, and read READMEs inline
Why the proxy? GitHub allows only 60 req/hour unauthenticated. With a token, you get 5,000 req/hour β and the token never touches the browser.
- Next.js 14 β App Router, API Route Handlers
- TypeScript 5 β Full type safety
- Tailwind CSS 3 β Utility-first styling
- GitHub REST API β Repository search & data
- Vercel β Deployment & environment variable hosting
- Node.js
18+ - A GitHub Personal Access Token (get one here β no scopes needed for public repos)
git clone https://github.com/Devbhavsar007/gitfinder.git
cd gitfindernpm installcp .env.example .env.localOpen .env.local and add your GitHub token:
GITHUB_TOKEN=ghp_your_token_herenpm run devOpen http://localhost:3000 in your browser.
| Variable | Required | Description |
|---|---|---|
GITHUB_TOKEN |
β Yes | GitHub Personal Access Token. Generate here. No scopes needed for public repo search. |
π This variable is only accessed server-side in
/app/api/github/route.ts. It is never sent to the browser.
gitfinder/
βββ app/
β βββ page.tsx # Main UI β search + trending
β βββ layout.tsx # Root layout + metadata
β βββ globals.css # Global styles
β βββ api/
β βββ github/
β βββ route.ts # Server-side GitHub API proxy
βββ components/
β βββ RepoCard.tsx # Individual repository card
β βββ DetailModal.tsx # Repo detail overlay
β βββ ReadmeModal.tsx # Inline README viewer
β βββ PageTransition.tsx # Animated page transitions
β βββ MouseTrail.tsx # Cursor trail effect
β βββ CommitTicker.tsx # Live commit activity ticker
βββ lib/
β βββ github.ts # API logic, scoring, types, filters
βββ .env.example # Environment variable template
βββ next.config.js
βββ tailwind.config.js
βββ tsconfig.json
Each repository is scored out of 100 using 9 signals:
| Signal | Points |
|---|---|
| β Stars (10k+) | 30 |
| π΄ Forks (1k+) | 15 |
| π Last push < 7 days | 15 |
| π·οΈ Topic count | up to 10 |
| π Has live deployed site | 10 |
| π Description length | up to 8 |
| π Has license | 5 |
| π Has wiki | 4 |
| π Issue health ratio | 3 |
Tiers:
- π’ Advanced β 55+ points
- π‘ Intermediate β 28β54 points
- π΄ Basic β < 28 points
GITHUB_TOKENis stored in Vercel's encrypted environment variable store- The token is only read inside
app/api/github/route.tsβ a server-only Next.js Route Handler - The browser calls
/api/github(your own domain), notapi.github.comdirectly - Token is never exposed in browser DevTools, network tab, or client-side bundles
- You can revoke the token from GitHub at any time without redeploying
- Fork this repo
- Go to vercel.com β New Project β Import your fork
- Add environment variable:
- Key:
GITHUB_TOKEN - Value: your
ghp_...token
- Key:
- Click Deploy β
npm i -g vercel
vercel
# When prompted for env variables, add GITHUB_TOKENnpm run build
npm start
# Set GITHUB_TOKEN in your server environmentContributions are welcome! Here's how:
- Fork the repo
- Create a feature branch:
git checkout -b feature/your-feature - Commit your changes:
git commit -m "feat: add your feature" - Push:
git push origin feature/your-feature - Open a Pull Request
For major changes, please open an issue first to discuss what you'd like to change.
MIT License β see LICENSE for details.
Made with β€οΈ and deployed at β gitfinder-five-sandy.vercel.app
