Hub-IO is a Next.js application for generating stable contributor SVG links for public GitHub repositories.
The flow is simple:
- Enter
owner/repo - Copy the generated image URL or Markdown snippet
- Paste it into a README or docs page
The app does not require login, repository installation, pull requests, or a repository-side config file.
- The page builds a deterministic image URL from the repository name and selected options.
- The render route fetches contributors from the public GitHub API.
- The SVG response is cached with
Cache-Control, so Vercel's CDN can serve repeated requests efficiently. - The link stays the same while the rendered contributor grid refreshes as cache entries roll over.
Main render routes:
/r/:owner/:repo
/api/render/:owner/:repo
The public-facing route is /r/:owner/:repo. The /api/render path remains as a compatibility alias.
- Public GitHub repositories
- Transparent SVG avatar grid output
- Default
12columns - Adjustable between
6and24columns - Up to
256contributors - Height adapts to the actual number of contributors shown
- Optional bot inclusion
- Markdown snippet generation
- Next.js 16 App Router
- React 19
- Tailwind CSS v4
- shadcn/ui components
- Vercel Functions for SVG rendering
- Install dependencies:
pnpm install- Copy the example environment file:
cp .env.example .env.local- Start the app:
pnpm devSee .env.example.
APP_URL: optional but recommended. Used to generate absolute URLs in the README snippet.GITHUB_TOKEN: optional. Recommended in production to avoid GitHub's low anonymous rate limit for public API requests.
If GITHUB_TOKEN is omitted, the app still works for public repositories, but GitHub API headroom is lower.
[](https://github.com/octocat/Hello-World/graphs/contributors)Query parameters are encoded directly into the link when defaults are changed:
/r/octocat/Hello-World?cols=8&bots=1
pnpm devpnpm buildpnpm startpnpm lint
This version currently focuses on public repositories and on-demand rendering.
Intentionally not included:
- GitHub login
- GitHub App installation
- writing files into user repositories
- creating pull requests
- background jobs or persistent storage