Find any codebase or developer on GitHub using plain natural language.
Two modes: lightning-fast Quick Search and multi-strategy Deep Search.
GitHub's native search is powerful — but it requires you to know exact query syntax. GitDeepSearch translates what you mean into what GitHub understands.
| Feature | GitHub Search | GitDeepSearch |
|---|---|---|
| Plain English queries | ❌ | ✅ |
| Auto language detection | ❌ | ✅ |
| Multi-strategy deep search | ❌ | ✅ |
| Result deduplication | ❌ | ✅ |
| Rich result cards | Minimal | ✅ Full detail |
| Zero backend needed | ✅ | ✅ |
| Open source | ❌ | ✅ |
- Type natural language like
"fitness mobile app in Flutter"— no query syntax needed - Auto-detects 20+ programming languages and frameworks (Python, TypeScript, Flutter, React, Next.js, Go, Rust, etc.)
- Search repositories or people with one click
- Full pagination — browse up to 1,000 results
- Rich repo cards: stars ⭐, forks 🍴, language, topics, last update
- Rich person cards: avatar, bio, followers, public repos, location
- Runs 4 search strategies in sequence:
- Search by relevance
- Search by star count
- Search by recent activity
- Search inside README content
- Real-time progress tracker — watch each strategy run
- Automatic deduplication — results from all strategies merged and deduplicated
- Results sorted by stars for quality-first ranking
- User enrichment — People results fetch full GitHub profiles
- Runs entirely in the browser — no server, no database
- Talks directly to the GitHub Search API
- Deploy anywhere: GitHub Pages, Vercel, Netlify, Cloudflare Pages
- Node.js 18+ (20 recommended)
- npm
# Clone the repository
git clone https://github.com/simonmakzon/GitDeepSearch.git
cd GitDeepSearch
# Install dependencies
npm install
# Start development server
npm run devOpen http://localhost:5173 in your browser.
Without a token: 10 requests/minute (unauthenticated)
With a token: 30 requests/minute (authenticated)
# Create .env file
echo "VITE_GITHUB_TOKEN=your_token_here" > .envGenerate a token at: GitHub → Settings → Developer settings → Personal access tokens
Required scopes: none (public read-only access is enough)
npm run build # Output goes to dist/
npm run preview # Preview the production build locallyThis repo includes a GitHub Actions workflow that auto-deploys on every push to main.
- Go to your repo Settings → Pages
- Set Source to GitHub Actions
- Push to
main— the workflow handles the rest ✅
npm install -g vercel
vercel --prodnpm run build
# Drag the dist/ folder to netlify.com/dropFROM node:20-alpine AS build
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build
FROM nginx:alpine
COPY --from=build /app/dist /usr/share/nginx/html
EXPOSE 80docker build -t gitdeepsearch .
docker run -p 8080:80 gitdeepsearchGitDeepSearch
│
├── src/
│ ├── pages/
│ │ ├── Home.jsx # Mode selection landing page
│ │ ├── QuickSearch.jsx # Fast single-strategy search
│ │ └── DeepSearch.jsx # Multi-strategy research mode
│ │
│ ├── components/
│ │ ├── Navbar.jsx # Sticky navigation with backdrop blur
│ │ ├── RepoCard.jsx # Repository result card
│ │ └── PersonCard.jsx # User/developer result card
│ │
│ ├── lib/
│ │ └── github.js # GitHub API client + NL query engine
│ │ # ├─ nlToGitHubQuery() — NL → query string
│ │ # ├─ searchRepositories() — quick repo search
│ │ # ├─ searchUsers() — quick people search
│ │ # ├─ searchDeepRepositories() — 4-strategy deep
│ │ # └─ searchDeepUsers() — deep people research
│ │
│ ├── App.jsx # React Router setup
│ ├── main.jsx # React entry point
│ └── index.css # Design tokens + global styles
│
├── .github/
│ ├── workflows/
│ │ ├── ci.yml # Build check on PRs (Node 18 + 20)
│ │ └── deploy.yml # Auto-deploy to GitHub Pages
│ └── ISSUE_TEMPLATE/ # Bug report + feature request templates
│
├── docs/
│ ├── demo.svg # Animated Quick Search demo
│ └── deep-search-demo.svg # Animated Deep Search demo
│
└── vite.config.js # Vite build configuration
nlToGitHubQuery() maps natural language words to GitHub search qualifiers:
"fitness mobile app in Flutter"
→ "fitness mobile app language:dart"
"analytics dashboard with AI in Python"
→ "analytics dashboard with AI language:python"
"Next.js e-commerce with Stripe"
→ "e-commerce with Stripe topic:nextjs"
Detected languages/frameworks: Python, JavaScript, TypeScript, Go, Rust, Java, Kotlin, Swift, Flutter/Dart, React, Vue, Angular, Next.js, Node.js
| Layer | Technology |
|---|---|
| Framework | React 18 |
| Build tool | Vite 5 |
| Routing | React Router 6 |
| Icons | Lucide React |
| API | GitHub Search API v3 |
| Styling | Plain CSS with design tokens |
| CI/CD | GitHub Actions |
| Hosting | GitHub Pages |
- Quick Search — repos & people
- Deep Search — 4-strategy parallel research
- Pagination
- Natural language query conversion
- GitHub Actions CI + auto-deploy
- 🔮 Trending repos page (daily / weekly / monthly)
- 🔮 Search history (localStorage)
- 🔮 Keyboard shortcut ⌘K to focus search
- 🔮 Dark mode
- 🔮 Filter by language, stars range, license
- 🔮 Compare two repositories side by side
- 🔮 Export results as CSV / JSON
- 🔮 AI query rewriting (OpenAI)
- 🔮 GitHub OAuth sign-in for personalized results
Contributions are very welcome! Please read CONTRIBUTING.md first.
# Fork → Clone → Branch → Commit → PR
git checkout -b feat/your-feature
git commit -m "feat: add your feature"
git push origin feat/your-feature
# Open a Pull Request on GitHubSee CHANGELOG.md for version history.
Distributed under the MIT License.
Copyright © 2026 simonmakzon
If you find this useful, please give it a ⭐ — it helps others discover the project!
⭐ Star this repo · 🐛 Report a bug · 💡 Suggest a feature
Made with ❤️ by simonmakzon