Skip to content

Devbhavsar007/gitfinder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

5 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ”­ GitFinder

Search GitHub's 300M+ repositories by idea β€” not exact name.

Live Demo Built with Next.js TypeScript Tailwind CSS Deployed on Vercel


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.


GitFinder Preview

🌐 Open App Β· πŸ“¦ Report Bug Β· ✨ Request Feature


πŸ“Œ Table of Contents


✨ Features

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

πŸ” How It Works

User Input β†’ /api/github (Next.js Route Handler) β†’ api.github.com β†’ Ranked Results
  1. You type a search query or pick a trending category
  2. The frontend calls your own /api/github proxy route
  3. The server injects your GITHUB_TOKEN and forwards the request to GitHub's API
  4. Results are scored using 9 quality signals and returned to the client
  5. 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.


πŸ—οΈ Tech Stack


πŸš€ Quick Start

Prerequisites

  • Node.js 18+
  • A GitHub Personal Access Token (get one here β€” no scopes needed for public repos)

1. Clone the repo

git clone https://github.com/Devbhavsar007/gitfinder.git
cd gitfinder

2. Install dependencies

npm install

3. Set up environment variables

cp .env.example .env.local

Open .env.local and add your GitHub token:

GITHUB_TOKEN=ghp_your_token_here

4. Run the dev server

npm run dev

Open http://localhost:3000 in your browser.


βš™οΈ Environment Variables

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.


πŸ“ Project Structure

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

🧠 Quality Scoring Algorithm

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

πŸ” Security Model

  • GITHUB_TOKEN is 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), not api.github.com directly
  • 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

☁️ Deploy Your Own

Option A β€” Vercel (Recommended, 5 minutes)

  1. Fork this repo
  2. Go to vercel.com β†’ New Project β†’ Import your fork
  3. Add environment variable:
    • Key: GITHUB_TOKEN
    • Value: your ghp_... token
  4. Click Deploy βœ…

Option B β€” Vercel CLI

npm i -g vercel
vercel
# When prompted for env variables, add GITHUB_TOKEN

Option C β€” Self-Hosted

npm run build
npm start
# Set GITHUB_TOKEN in your server environment

🀝 Contributing

Contributions are welcome! Here's how:

  1. Fork the repo
  2. Create a feature branch: git checkout -b feature/your-feature
  3. Commit your changes: git commit -m "feat: add your feature"
  4. Push: git push origin feature/your-feature
  5. Open a Pull Request

For major changes, please open an issue first to discuss what you'd like to change.


πŸ“„ License

MIT License β€” see LICENSE for details.


Made with ❀️ and deployed at β†’ gitfinder-five-sandy.vercel.app

About

Search GitHub's 300M+ repos by idea. Filter by quality, date, and language.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors