UND-RDR is a living discovery site for underrated GitHub repositories before they become famous.
Live site: https://undrdr.com
It tracks a protected dataset of 913 open source repositories, most discovered while they were under 1,000 stars. The site turns that dataset into a fast, curated browsing system for finding fresh, rising, almost-famous, and graduated projects.
- Browse underrated GitHub projects without digging through a random list.
- Search by repo, owner, description, language, topic, and status.
- Filter by language, topic, and discovery status.
- Sort by curated signal, stars, newest, rising, recently updated, and closest to 1K.
- Track sections for New, Rising, Near 1K, Crossed 1K, Topics, Watchlist, Submit, Data, and About.
- Open repo cards directly on GitHub.
- Sign in with GitHub to use a merged Profile workspace with a personal Watchlist and named Collections.
- Submit new repos into a protected GitHub issue review queue.
- Run daily GitHub checks that open review PRs instead of silently changing production data.
| Status | Meaning |
|---|---|
| Underrated | Still under 1,000 stars |
| Rising | Growing quickly or showing strong momentum |
| Near 1K | Close to crossing the 1,000-star threshold |
| Crossed 1K | Graduated from underrated |
| Archived/Inactive | Unavailable, archived, disabled, or stale |
The core dataset lives at:
public/data/all_repos.json
The redesign protects this file as the source of truth:
- raw repo data is not rewritten by the public UI,
- submissions do not directly mutate the dataset,
- accepted submissions go through a reviewer command,
- daily GitHub refreshes open PRs for review,
- validation checks repo count, required fields, and duplicate ids.
Current validation snapshot:
repos: 913
under 1K: 889
crossed 1K: 24
duplicate ids: 0
UND-RDR has live GitHub sign-in through Supabase Auth. Signed-in users can save repos to a private Watchlist and create named Collections from the Profile workspace. The account tables use row-level security, so each user can only read and manage their own saved repos.
The public dataset is still static and protected. Account actions never mutate public/data/all_repos.json.
Implementation notes:
src/lib/accountStorage.ts
docs/supabase-auth-collections.md
Public submissions go through the live endpoint:
/api/submit-repo
The endpoint:
- accepts full GitHub repo URLs,
- blocks invalid URLs,
- blocks repos already in the dataset,
- blocks repos already waiting in an open review issue,
- creates a GitHub issue labeled
undrdr-submissionandneeds-review, - never changes the live dataset directly.
Public contact is submit@undrdr.com. DNS and mailbox readiness are tracked in:
docs/email-intake.md
Reviewer guide:
SUBMISSIONS.md
Preview an accepted issue:
npm run submissions:add -- --issue 12 --dry-runApply an accepted issue:
npm run submissions:add -- --issue 12The script fetches GitHub metadata, refuses duplicates, writes a backup, appends one normalized repo record, validates data, comments on the issue, labels it accepted plus added-to-index, and closes the issue.
Mark a submission that needs more information:
npm run submissions:review -- --issue 12 --outcome needs-data --comment "Need more signal before accepting."Close a duplicate or rejected submission:
npm run submissions:review -- --issue 12 --outcome duplicate --comment "Already tracked or already pending."
npm run submissions:review -- --issue 12 --outcome rejected --comment "Not a fit for UND-RDR right now."For owner-curated additions, paste GitHub links into:
data/repo-candidates.txt
Preview candidates:
npm run candidates:checkAdd valid new candidates:
npm run candidates:addThe candidate workflow fetches live GitHub metadata, skips duplicates, writes a backup, appends only new repos, and runs validation. Details are in:
docs/repo-candidates.md
The private browser Curator page at /#/curator is protected by the production CURATOR_ACCESS_TOKEN environment variable. It is for owner batch intake only and still creates review issues instead of editing the live dataset directly.
The GitHub Actions workflow at:
.github/workflows/github-repo-check.yml
runs daily and can also be triggered manually. It checks all repos, updates stars/status signals, validates the dataset, and opens an update PR from:
automation/github-repo-snapshot
It does not push dataset changes directly to main.
Each update PR includes a review summary with new 1K graduates, near-1K repos, fastest risers, and unavailable or failed GitHub checks. Pre-update backups are uploaded as short-lived workflow artifacts, while only the dataset and public report are committed.
Install dependencies:
npm installRun the app:
npm run devBuild:
npm run buildValidate the dataset:
npm run validate:dataRun a sample GitHub metadata check:
npm run check:github:sampleRun the full GitHub metadata check locally as a dry run:
npm run check:githubApply a full local GitHub metadata refresh:
npm run check:github:apply| Path | Purpose |
|---|---|
src/App.tsx |
Main discovery UI and client-side interactions |
src/App.css |
Visual system, responsive layout, cards, mobile polish |
src/lib/accountStorage.ts |
Optional Supabase-backed account storage with local fallback |
api/submit-repo.ts |
Protected repo submission intake |
public/data/all_repos.json |
Protected source dataset |
public/data/update-report.json |
Latest GitHub check report |
scripts/check-github-repos.mjs |
Daily metadata refresh logic |
scripts/add-submission-to-dataset.mjs |
Accepted submission workflow |
scripts/import-repo-candidates.mjs |
Private curator batch-add workflow |
scripts/validate-data.mjs |
Dataset validation |
docs/data-schema.md |
Recommended data schema |
docs/domain-readiness.md |
Domain migration notes |
docs/launch-checklist.md |
Launch and move checklist |
docs/supabase-auth-collections.md |
Account, Watchlist, and Collections backend notes |
UND-RDR is live at:
https://undrdr.com
The project previously lived under akaKika.com/undrdr. Keep legacy redirects alive while search, social previews, and external links settle.
UND-RDR exposes human and AI-readable discovery surfaces:
index.htmlincludes canonical metadata, Open Graph/Twitter cards, WebSite/WebApplication/Dataset/FAQ JSON-LD, and links to AI summary files.public/llms.txtgives answer engines a direct summary, dataset snapshot, categories, FAQ, and citation wording.public/ai-summary.jsonprovides a structured machine-readable summary of the entity, dataset, categories, features, and trust signals.public/sitemap.xmlpoints to the site, AI summary files, and public data endpoints.
- React
- TypeScript
- Vite
- Pixi.js
- Vercel
- Supabase Auth and Postgres
- GitHub Actions
UND-RDR should feel like a curated discovery system: clean, fast, editorial, data-first, and useful. It should help people move from one interesting GitHub project to the next without overwhelming them.