Skip to content

dot-RealityTest/undrdr-vis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

113 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

UND-RDR

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.

What It Does

  • 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.

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 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

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

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
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

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.

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.