Skip to content

aka-kika/UND-RDR

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

146 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

UND-RDR

UND-RDR CI Live site Dataset

UND-RDR social card

Find the GitHub repos people will be talking about next.

UND-RDR is a live discovery index for underrated open-source projects: 1,000 active repos under 1,000 stars, ranked for momentum, usefulness, and that "wait, why is nobody talking about this?" feeling.

Open the live site · Browse the data · Submit a repo

Why It Exists

GitHub is enormous. The best small projects usually do not look famous yet: they have a sharp README, a weirdly useful idea, a burst of stars, a maintainer shipping fast, or a niche that suddenly starts mattering.

UND-RDR watches for those signals and turns them into a fast, editorial browsing surface.

What Makes It Interesting

  • Spotlight first: the default feed prioritizes momentum-heavy, near-1K, recently active, high-signal repos.
  • Actually under the radar: the active shelf stays under 1,000 stars, with graduates preserved separately.
  • Fast discovery loops: open a repo, inspect signal, jump to related projects, save it, keep going.
  • Useful categories, not taxonomy cosplay: AI Agents, MCP, Memory / RAG, Local Models, macOS, Browser Automation, Dev Tools, Security, Data / Docs, and Voice / Media.
  • Private collecting: GitHub sign-in unlocks a personal Watchlist and named Collections without touching the public dataset.
  • Reviewed data flow: public submissions create review issues; automation opens PRs instead of quietly mutating production data.

Product Tour

Surface What it is for
Discover The main feed: spotlight, Fresh, Rising, Hidden, Near 1K, and Graduated views
Repo cards Stars, momentum, status, category, save actions, and direct GitHub links
Detail drawer Longer context, README preview, related repos, and next/previous browsing
Profile Private Watchlist and Collections for signed-in users
Data Dataset health, validation status, source files, fastest risers, and archives
Submit Protected intake for repos that should be reviewed

Current Snapshot

active repos: 1000
active under 1K: 1000
archive repos: 193
risen repos: 32
duplicate ids: 0

Quick Start

npm install
npm run dev

Useful checks:

npm run build
npm run lint
npm run validate:data

Discovery Statuses

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

Data Protection

The active dataset lives at:

public/data/all_repos.json

Archive shelves live at:

public/data/archive_repos.json
public/data/risen_repos.json

The app 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.

Accounts and Collections

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

Submission Workflow

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-submission and needs-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-run

Apply an accepted issue:

npm run submissions:add -- --issue 12

The 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."

Curator Candidate Workflow

For owner-curated additions, paste GitHub links into:

data/repo-candidates.txt

Preview candidates:

npm run candidates:check

Add valid new candidates:

npm run candidates:add

The 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

Recent curated batches:

data/under-the-radar-github-repos-100-20260524.txt
data/next-100-ai-tooling-candidates-20260521.txt

The May 24 CSV batch was parsed from /Users/kika_hub/Downloads/under_the_radar_github_repos_100.csv. The importer checked 100 repos, added 91 new candidates, skipped 9 already tracked repos, and later shelf rotation restored the active public dataset to the 1,000-repo cap.

The May 21 batch added 100 under-the-radar AI tooling repos, moving the protected dataset from 913 to 1,013 repos.

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.

Daily Automation

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.

Local Development

Install dependencies:

npm install

Run the app:

npm run dev

Build:

npm run build

Validate the dataset:

npm run validate:data

Run a sample GitHub metadata check:

npm run check:github:sample

Run the full GitHub metadata check locally as a dry run:

npm run check:github

Apply a full local GitHub metadata refresh:

npm run check:github:apply

Project Structure

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
public/llms.txt AI-answer summary for GEO crawlers
public/ai-summary.json Machine-readable site and dataset summary
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/audit-prune-candidates.mjs Read-only prune review audit
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/seo-geo.md SEO/GEO metadata and AI crawler notes
docs/supabase-auth-collections.md Account, Watchlist, and Collections backend notes

Domain

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.

SEO and GEO

UND-RDR exposes human and AI-readable discovery surfaces:

  • index.html includes canonical metadata, Open Graph/Twitter cards, WebSite/WebApplication/Dataset/FAQ JSON-LD, and links to AI summary files.
  • public/llms.txt gives answer engines a direct summary, dataset snapshot, categories, FAQ, and citation wording.
  • public/ai-summary.json provides a structured machine-readable summary of the entity, dataset, categories, features, and trust signals.
  • public/sitemap.xml points to the site, AI summary files, and public data endpoints.
  • src/main.tsx loads Google Analytics only when VITE_GA_MEASUREMENT_ID is configured.

Tech Stack

  • React
  • TypeScript
  • Vite
  • Pixi.js
  • Vercel
  • Supabase Auth and Postgres
  • GitHub Actions

Product Direction

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.