https://github.com/croc100/gcv
Explore contributors, commit trends, and growth of any GitHub repository
https://github.com/croc100/gcv
contributors developer-tools github nextjs open-source typescript
Last synced: 9 days ago
JSON representation
Explore contributors, commit trends, and growth of any GitHub repository
- Host: GitHub
- URL: https://github.com/croc100/gcv
- Owner: croc100
- License: mit
- Created: 2026-06-08T10:14:33.000Z (17 days ago)
- Default Branch: main
- Last Pushed: 2026-06-08T11:47:50.000Z (17 days ago)
- Last Synced: 2026-06-08T12:26:39.054Z (17 days ago)
- Topics: contributors, developer-tools, github, nextjs, open-source, typescript
- Language: TypeScript
- Homepage: https://gcv-five.vercel.app
- Size: 250 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# GCV — GitHub Community Vitals
Discover trending repos, explore open source communities, and analyze contributor health across GitHub.
No sign-in required to get started.
---
## Features
### Repo analytics (`/[owner]/[repo]`)
- Contributor list ranked by commit count with avatars and first contribution date
- **New contributor badge** — highlights contributors who made their first commit in the last 90 days
- **Commit heatmap** — GitHub-style 52-week calendar, filterable by top contributor
- **Repo health score** — composite 0–100 score: bus factor (40%), contributor diversity/HHI (40%), 4-week activity trend (20%)
- Period filter — 1M / 3M / 6M / 1Y / MAX
- Commit bar chart, growth chart, bot filter, CSV export
- **Contributor drawer** — click any contributor for their GitHub profile, top repos, and per-repo PR/issue counts
### Discovery
- **Trending** (`/trending`) — most starred repos pushed this week, filterable by language
- **Explore** (`/explore`) — active repos with good first issues for new contributors
- **Compare** (`/compare`) — side-by-side stats for two repos
- **Org dashboard** (`/org/[org]`) — contributor leaderboard across all repos in an organization
### Profiles
- **Contributor profile** (`/u/[login]`) — recent activity, active repos, language breakdown, commit sparkline
- **GCV Wrapped** (`/wrapped/[login]`) — shareable year-in-review card
### Sharing & embedding
- **Embed widget** (`/widget/[owner]/[repo]`) — iframe-embeddable contributor grid with 1h cache
- **README badge** — live contributor count badge, auto-updates hourly ([badge generator →](https://gcv-five.vercel.app/badge))
- **OG share image** — custom social card for any repo
- URL persistence — all filters sync to URL
### README badge
Add a live contributors count badge to any repository's README:
```markdown
[](https://gcv-five.vercel.app/owner/repo)
```
Replace `owner/repo` with your repository. The badge auto-updates every hour and links back to your GCV dashboard.
Use the [badge generator](https://gcv-five.vercel.app/badge) for a live preview and one-click copy.
### Promote your repo
- **Sponsored listings** (`/promote`) — feature your repo on Trending, Explore, and the homepage
- Powered by Stripe + Vercel KV
### Auth
- **GitHub OAuth** — sign in for 5,000 req/h (vs 60/h unauthenticated)
---
## Getting started
```bash
git clone https://github.com/croc100/gcv.git
cd gcv
npm install
cp .env.local.example .env.local
npm run dev
```
Open [http://localhost:3000](http://localhost:3000) and search any public repo, e.g. `vercel/next.js`.
---
## Environment variables
| Variable | Required | Description |
|---|---|---|
| `GITHUB_TOKEN` | No | Server-side default token. Raises rate limit for all users. |
| `GITHUB_CLIENT_ID` | No* | GitHub OAuth App Client ID. |
| `GITHUB_CLIENT_SECRET` | No* | GitHub OAuth App Client Secret. |
| `JWT_SECRET` | No* | Cookie signing secret — `openssl rand -hex 32` |
| `STRIPE_SECRET_KEY` | No† | Stripe secret key for promoted repos. |
| `STRIPE_WEBHOOK_SECRET` | No† | Stripe webhook signing secret. |
| `NEXT_PUBLIC_BASE_URL` | No† | Full deployment URL, e.g. `https://gcv-five.vercel.app` |
| `KV_REST_API_URL` | No† | Auto-set when Vercel KV store is linked. |
| `KV_REST_API_TOKEN` | No† | Auto-set when Vercel KV store is linked. |
\* All three required together to enable GitHub OAuth.
† All required together to enable promoted repos.
### GitHub OAuth setup
1. GitHub → Settings → Developer settings → OAuth Apps → New OAuth App
2. Callback URL: `https://your-domain.com/api/auth/callback`
3. Add `GITHUB_CLIENT_ID`, `GITHUB_CLIENT_SECRET`, `JWT_SECRET` to env
For local dev: `http://localhost:3000/api/auth/callback`
### Promoted repos setup
1. Create a [Vercel KV](https://vercel.com/docs/storage/vercel-kv) store and link it to your project
2. Register a Stripe webhook at `https://your-domain.com/api/promote/webhook` → event: `checkout.session.completed`
3. Add `STRIPE_SECRET_KEY`, `STRIPE_WEBHOOK_SECRET`, `NEXT_PUBLIC_BASE_URL` to env
---
## Deployment
1. Push to GitHub and import on [vercel.com](https://vercel.com)
2. Add environment variables in Settings → Environment Variables
3. Every push to `main` auto-deploys
---
## Stack
| | |
|---|---|
| Framework | Next.js 14 App Router |
| Language | TypeScript |
| Styling | Tailwind CSS |
| GitHub API | Octokit |
| Charts | Recharts |
| Auth | GitHub OAuth + JWT (jose) |
| Payments | Stripe |
| Storage | Vercel KV (Redis) |
| Analytics | Vercel Analytics |
| Deployment | Vercel |
---
## Contributing
PRs and issues welcome. Open an issue first for significant changes.
## License
[MIT](LICENSE)