Xata
몇 초 만에 새 Postgres를 시작하거나 기존 것을 복제하고 사용 안 할 때는 자동으로 축소
8,600개 YC·a16z·Product Hunt·Hacker News 스타트업 검색, 무료 오픈소스 REST API 제공
Search 8,600+ startups from Y Combinator, a16z, Product Hunt & Hacker News. Free, open-source REST API and a filterable company database — funding, batches, hiring, founders & more.
데이터TypeScript · PythonGitHub @KonstantinMB온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Explore the Y Combinator portfolio: AI idea validator, success predictor, live hiring board, and email digests. Live at exploreyc.com.
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Explore the Y Combinator portfolio.
Search companies, validate ideas, predict success, browse the live hiring board.
There's no good way to slice the YC portfolio if you're not a YC partner with database access. Algolia search is fine for finding one company; it's bad for "show me every Fintech company hiring engineers in Europe that raised in the last six months." So I built one. It started as a CLI scraper and grew into a deployed web app.README 전문 보기 ↗Explore the Y Combinator portfolio. Search companies, validate ideas, predict success, browse the live hiring board.
There's no good way to slice the YC portfolio if you're not a YC partner with database access. Algolia search is fine for finding one company; it's bad for "show me every Fintech company hiring engineers in Europe that raised in the last six months." So I built one. It started as a CLI scraper and grew into a deployed web app.
This was a closed-source project until the Product Hunt launch made it clear there's an audience of YC-curious builders who want different cuts of this data than I do. So now you can build them.
Try it now: exploreyc.com — no signup required.
| Layer | What |
|---|---|
| Frontend | React 19, Vite, TypeScript, Tailwind, TanStack Query, Radix UI, Recharts, React Leaflet, ReactFlow |
| Backend | FastAPI (Python 3.11), WebSocket support |
| Database | SQLite (local) → PostgreSQL via Supabase (prod). Selected at runtime by backend/database_factory.py |
| Hosting | Vercel (frontend + cron) + Render (backend) |
| LLM / enrichment | OpenAI, Perplexity, CoreSignal |
| Resend |
You need Python 3.11+ and Node 20+.
git clone https://github.com/KonstantinMB/exploreyc.git
cd exploreyc
# Backend
cd backend
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
cp ../.env.example ../.env # fill in the keys you have
python3 -m uvicorn main:app --reload # → http://localhost:8000
# Frontend (new shell)
cd ../frontend
npm install
npm run dev # → http://localhost:5173
The Vite dev server proxies /api and /ws to localhost:8000, so the frontend talks to your local backend automatically.
Minimum viable local setup: leave DATABASE_URL unset (falls back to SQLite) and provide just an OPENAI_API_KEY for the idea-validator features. Every other integration degrades gracefully if its key is missing — see .env.example for the full list.
No Python or Node required - just Docker.
git clone https://github.com/KonstantinMB/exploreyc.git
cd exploreyc
cp .env.example .env # add OPENAI_API_KEY etc. if you want - DATABASE_URL is set automatically
docker compose up
| Service | URL |
|---|---|
| Frontend | http://localhost:5173 |
| Backend | http://localhost:8000 |
| Postgres | localhost:5432 |
On first start docker/init-db.sh runs all Postgres-compatible migrations automatically. Data persists in a named volume across restarts; docker compose down -v wipes it.
If you add a new migration, append it to docker/init-db.sh and run docker compose down -v && docker compose up.
For production deployment see
DEPLOYMENT.md.
The local SQLite database starts empty. To populate it, scrape YC company data from the public Algolia API (no API keys needed):
# With the backend running, seed the last 3 batches (~500+ companies)
curl -X POST http://localhost:8000/api/scrape \
-H "Content-Type: application/json" \
-d '{"batch": ["Winter 2025", "Summer 2024", "Winter 2024"], "hits_per_page": 1000, "max_pages": 20}'
# Check progress (replace 1 with the job_id returned above)
curl http://localhost:8000/api/scrape/status/1
# Verify data loaded
curl http://localhost:8000/api/stats
Once the scrape completes (usually under a minute), refresh the frontend to see charts and data populate. To scrape all batches, omit the batch filter — but this takes longer and hits the 3-requests-per-hour rate limit.
backend/ FastAPI app — most endpoints in main.py, services as siblings
frontend/ React SPA, React Router
api/cron/ Vercel cron handlers (call back into the backend)
supabase/ Migrations, applied in filename order
scripts/ Maintenance helpers (embeddings backfill, funding enrichment)
.github/ Issue templates, CI, scheduled GitHub Actions cron
Detailed architecture notes are in CLAUDE.md — written for AI assistants, useful for humans too.
PRs and ideas welcome. This is a one-person project and I'm not precious about it. The goal is to grow this into the explorer the YC-curious community actually wants — your version, not just mine.
Open a new issue using the 💡 Idea template. Describe the user, the problem, and what you wish existed. Don't worry about feasibility — that's my problem. Half-baked is fine. Drawings, screenshots, links to similar features elsewhere — all welcome.
If you'd rather send it privately: [email protected].
feature/short-name or fix/short-name) → PR against master..env.example + the relevant section of this README (or CLAUDE.md) in the same PR.I try to respond to issues within 48h and review PRs within a week. If I'm slow, ping me — it's not personal.
backend/main.py is a 3000-line monolith on purpose, not by accident — but most of it is ripe for tightening)If you're unsure, open an issue and ask before building. I'd rather have the conversation than reject a PR you spent a weekend on.
uvicorn main:app --reloadnpm run devcd frontend && npm run buildcd backend && python -m pytestsupabase/migrations/ and are applied in filename order. When adding one, use the next timestamp prefix.There's no enforced lint config — match surrounding code style.
HTTPException for user-facing errors, group related endpoints in main.py with a # ===== SECTION ===== comment.env.example. Everything sensitive goes in your local .env, which is gitignored._enforce_rate_limit(...) — see backend/main.py near line 90 for the pattern.Things I've been thinking about but haven't built. Pick one, open an issue if you have questions, ship it. None of these are claimed.
text-embedding-3-small; experiment with newer or open-source modelsIf your idea isn't on the list, that doesn't mean no. Open an issue and let's talk.
cd backend
python -m pytest test_email_digest.py
python -m pytest test_pagination.py
Backend tests are integration-flavored and may hit real services if the relevant keys are set. There's no frontend test suite yet (see Open ideas).
The hosted version uses Vercel (frontend + Vercel cron + rewrites that proxy /api/* to api.exploreyc.com) and Render (backend). The repo is wired for that, but nothing prevents another layout.
See DEPLOYMENT.md for the step-by-step.
Found a vulnerability? See SECURITY.md. Please disclose privately, not via a public issue.
MIT. Use it, fork it, build a business with it. Attribution is appreciated but not required.
Like the project? Star it on GitHub · Try it live · Open an issue · Tell a friend
Built by Konstantin Borimechkov.