{"id":51077007,"url":"https://github.com/zozo123/peter-gt-your-org","last_synced_at":"2026-06-23T15:02:09.312Z","repository":{"id":358524106,"uuid":"1241303849","full_name":"zozo123/peter-gt-your-org","owner":"zozo123","description":"Rank your GitHub R\u0026D org against @steipete in the absurd unit of one Peter. Next.js 15 + React 19.","archived":false,"fork":false,"pushed_at":"2026-05-17T18:57:05.000Z","size":11527,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-17T20:53:09.929Z","etag":null,"topics":["benchmark","developer-tools","dx","github-api","nextjs","react","tailwindcss","typescript"],"latest_commit_sha":null,"homepage":"https://github.com/zozo123/peter-gt-your-org","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zozo123.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-17T07:58:33.000Z","updated_at":"2026-05-17T18:57:09.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/zozo123/peter-gt-your-org","commit_stats":null,"previous_names":["zozo123/peter-gt-your-org"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/zozo123/peter-gt-your-org","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zozo123%2Fpeter-gt-your-org","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zozo123%2Fpeter-gt-your-org/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zozo123%2Fpeter-gt-your-org/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zozo123%2Fpeter-gt-your-org/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zozo123","download_url":"https://codeload.github.com/zozo123/peter-gt-your-org/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zozo123%2Fpeter-gt-your-org/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34694786,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-23T02:00:07.161Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["benchmark","developer-tools","dx","github-api","nextjs","react","tailwindcss","typescript"],"created_at":"2026-06-23T15:02:07.059Z","updated_at":"2026-06-23T15:02:09.302Z","avatar_url":"https://github.com/zozo123.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# How Many Peters?\n\n\u003e _Rank your GitHub R\u0026D org against [@steipete](https://github.com/steipete) in one absurd, useful unit: **the Peter**._\n\nA Next.js demo that takes verified 2026 YTD GitHub activity (commits, PRs, issues) and prices it in **Peters** — where `1 Peter = @steipete's YTD output as a solo developer`. It's part benchmark, part roast, part trust-building exercise about what GitHub-visible metrics can and can't say about an engineering org.\n\n[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fzozo123%2Fpeter-gt-your-org\u0026project-name=peter-gt-your-org\u0026repository-name=peter-gt-your-org)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](./LICENSE)\n[![Next.js 15](https://img.shields.io/badge/Next.js-15.5-black?logo=next.js)](https://nextjs.org/)\n[![React 19](https://img.shields.io/badge/React-19-149eca?logo=react)](https://react.dev/)\n[![Tailwind 4](https://img.shields.io/badge/Tailwind-4-38bdf8?logo=tailwindcss)](https://tailwindcss.com/)\n\n![Hero](./docs/screens/hero-section.png)\n\n---\n\n## What you get\n\nType any org slug (`supabase`, `microsoft`, `awslabs`, `vercel`, …) and the page renders:\n\n- **Total Peters** — your YTD verified GitHub motion ÷ Peter's.\n- **Peter Density** — Peters per active contributor. Keeps big orgs honest.\n- **Momentum** — projected year-end totals at current pace.\n- **Cohort rank** — you're compared against orgs your size, not just the whole field.\n- **A diagnosis paragraph** — a roast/observation about whether you out-commit Peter, out-collaborate Peter, or quietly lose to Peter on density.\n\n### Org leaderboard\n\n![Public R\u0026D ranking](./docs/screens/leaderboard.png)\n\n### Side-by-side comparison\n\n![Comparison strip](./docs/screens/comparison.png)\n\n### Share card + category breakdown + methodology\n\n![Share, category, trust](./docs/screens/share-trust.png)\n\n\n---\n\n## Quickstart\n\n```bash\ngit clone https://github.com/zozo123/peter-gt-your-org.git\ncd peter-gt-your-org\nnpm install\nnpm run dev\n```\n\nOpen [http://localhost:3000](http://localhost:3000). No env vars required — the public preview ships with verified 2026 YTD snapshots for Supabase, Microsoft, Google, AWS, Vercel, Linear and a couple of demo orgs.\n\n---\n\n## Connecting a real org (private coverage)\n\nPublic mode counts only what's GitHub-visible. To include private repos for an org you have access to, hand the Next.js server a token:\n\n```bash\nGITHUB_TOKEN=\"$(gh auth token)\" npm run dev\n```\n\nThe token is read **server-side only** — it is never sent to the browser. It's used to call `GET /search/commits`, `GET /search/issues` and `GET /orgs/:org` against the GitHub REST API.\n\n### Environment variables\n\n| Var | Required | What it does |\n| --- | --- | --- |\n| `GITHUB_TOKEN` *(or `GH_TOKEN`)* | for live mode | Server-only token used to call GitHub Search + Orgs APIs. |\n| `GITHUB_ORG` | for live mode | Org slug to live-fetch (e.g. `vercel`). Added to the leaderboard as a live row. |\n| `GITHUB_ORG_ACTIVE_CONTRIBUTORS` | optional | Denominator for Peter Density. If unset, density isn't shown for the live org. |\n| `GITHUB_ORG_REPOSITORIES` | optional | Override the repo count surfaced in the trust panel. |\n| `GITHUB_ORG_DISPLAY_NAME` | optional | Friendly name shown in the UI. Defaults to the GitHub org's name. |\n\nCopy `.env.example` to `.env.local` to set these locally.\n\n---\n\n## Methodology\n\n- **Window**: 2026 YTD — everything since `2026-01-01`.\n- **What counts**: verified commits, pull requests, and issues created in the window. Reviews and other signals are folded in for orgs where the data is available.\n- **Peter baseline**: [@steipete](https://github.com/steipete)'s public GitHub activity over the same window, treated as `1.0 Peters`.\n- **Tiers**:\n  - `\u003c 0.1` — GitHub Intern Energy\n  - `0.1 – 0.5` — Warming Up\n  - `0.5 – 0.9` — Dangerous\n  - `0.9 – 1.1` — Peter-Class\n  - `1.1 – 2.0` — More Than One Peter\n  - `2.0 – 5.0` — Peter Factory\n  - `≥ 5.0` — Industrialized Peter\n- **What this is not**: a productivity score, a hiring signal, a promotion artifact, or a fair comparison across companies of wildly different sizes. The Peter Density metric exists specifically to flag the \"we have 5,000 engineers, so of course we out-commit one guy\" failure mode.\n\n---\n\n## Deploy\n\nClick the **Deploy with Vercel** button at the top of this README, or:\n\n```bash\nnpx vercel\n```\n\nNext.js 15 auto-detects on Vercel — no `vercel.json` needed. To enable private-org coverage in production, set `GITHUB_TOKEN` in your Vercel project's environment variables.\n\n---\n\n## Tech\n\n- **Next.js 15.5** (App Router, Turbopack)\n- **React 19**\n- **Tailwind CSS v4**\n- **TypeScript 5**\n- No database, no auth, no client-side secrets — the GitHub token (when present) is read on the server and never serialized to the client.\n\n## Project layout\n\n```\napp/             Next.js App Router entry + global styles\ncomponents/      All UI (Hero, Leaderboard, ComparisonStrip, ...)\nlib/\n  liveGithub.ts      Server-only GitHub API calls (token+org → live row)\n  mockSnapshots.ts   Public-preview fixtures\n  peterMath.ts       Peter Index / Density / tiering math\n  types.ts           Snapshot / fixture types\ndocs/screens/    README screenshots\n```\n\n## License\n\nMIT — see [LICENSE](./LICENSE).\n\n---\n\n_Built as a riff on [@steipete](https://github.com/steipete)'s legendary solo-developer commit graphs. Peter, if you're reading this: you're the unit. Sorry._\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzozo123%2Fpeter-gt-your-org","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzozo123%2Fpeter-gt-your-org","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzozo123%2Fpeter-gt-your-org/lists"}