Explore the hidden gems of GitHub with PetitHub!
PetitHub adapts the Petit Tube concept to GitHub: it shows you a random, obscure public repository that has zero stars. Reload for another one.
- π² Random discovery β a fresh zero-star repository on every reload.
- π¨ GitHub-style display β repository details rendered in a familiar layout.
- π€ Sign in to keep browsing β anonymous requests share GitHub's unauthenticated rate limit (60/hour). Connect your GitHub account via the PetitHub GitHub App to browse with your own token instead.
- π§ JSON API β
GET /apifor a random repository,GET /api/{id}for a specific one (Bearer token required). Interactive docs at/api/swagger.
PetitHub is a Hono app rendered server-side (streaming JSX, no client hydration) and deployed on Cloudflare Pages. It talks to the GitHub REST API through Octokit: it samples a random offset into the public repository list and inspects a few candidates until it finds one with no stars, that isn't a fork, and isn't empty. Requests use your OAuth token when you are signed in, otherwise the shared anonymous limit applies.
Requires Bun.
git clone https://github.com/cletqui/petithub.git
cd petithub
bun install
cp .dev.vars.example .dev.vars # fill in the values you have
bun run dev # http://localhost:5173Scripts: bun run dev, bun run build, bun run typecheck, bun run preview
(wrangler), bun run deploy.
| Variable | Purpose |
|---|---|
CLIENT_ID |
GitHub App OAuth client id |
CLIENT_SECRET |
GitHub App OAuth client secret |
Both are needed for the GitHub sign-in flow; without them PetitHub still runs in
anonymous mode. Locally they live in .dev.vars; in production they are Cloudflare
Pages secrets.
Issues and pull requests welcome. bun run typecheck and bun run build must pass (CI
runs both).
MIT β see LICENSE.
Inspired by Petit Tube. Built with Hono and Octokit.
If you enjoy it, you can buy me a coffee β
