← back to gallery

Fork Radar

Live dashboard comparing momentum between OSS forks with real GitHub data

dev-toolsgithubopen-sourceforksdeveloper-toolsdashboard
Open product ↗

fork-radar

Live dashboard tracking community forks of controversial OSS projects. Compare star velocity, commit cadence, and contributor migration between the original repo and its forks.

What it does

Paste two GitHub repo URLs and get a live comparison: stars, commits/week, contributors, open issues, latest release, language, and license — side by side with visual bars and charts. Pre-loaded with 6 famous fork wars (Redis/Valkey, Terraform/OpenTofu, etc.) for instant browsing.

The "Fork Report Card" feature generates a downloadable PNG comparison image for sharing on HN/Twitter.

Data Sources

All data is fetched live from the GitHub REST API at runtime. No mock or seed data.

| Source | URL Pattern | Refresh |
|--------|------------|---------|
| Repo metadata | https://api.github.com/repos/{owner}/{repo} | On demand, cached 15 min |
| Commit activity | https://api.github.com/repos/{owner}/{repo}/stats/commit_activity | On demand, cached 1 hour |
| Contributors | https://api.github.com/repos/{owner}/{repo}/stats/contributors | On demand, cached 1 hour |
| Latest release | https://api.github.com/repos/{owner}/{repo}/releases/latest | On demand, cached 1 hour |
| Star snapshots | Same repo endpoint | Every 6 hours via node-cron for curated pairs |

Rate limits: Unauthenticated = 60 req/hr. With GITHUB_TOKEN (PAT) = 5,000 req/hr. All responses cached in SQLite.

API Endpoints

| Method | Path | Purpose |
|--------|------|---------|
| GET | /fork-radar/health | Health check — returns {"ok":true} |
| GET | /fork-radar/api/pairs | Curated fork pairs with live stats |
| GET | /fork-radar/api/repo/:owner/:repo | Full repo data (metadata + commits + contributors + release) |
| GET | /fork-radar/api/repo/:owner/:repo/history | Star snapshots over time |
| GET | /fork-radar/api/compare?original=owner/repo&fork=owner/repo | Side-by-side comparison of two repos |
| GET | /fork-radar/api/rate-limit | Current GitHub API rate limit status |

Running Locally

cp .env.example .env
# Optionally add a GitHub PAT for higher rate limits:
# GITHUB_TOKEN=ghp_your_token_here

npm install
npm start
# Open http://localhost:4756/fork-radar/
```

Requires Node.js >= 22.

Stack