Skip to content

alexisbouchez/hypercommit

Repository files navigation

Hypercommit

Hypercommit

Hypercommit GitHub Stars License: AGPL v3 Discord

A linktree for GitHub repositories. Give any open source project a clean, claimable landing page with custom links, auto-fetched GitHub metadata, and a short memorable URL.

Live at hypercommit.com.


What it does

You add a repository, pick a short slug, and get a public page at hypercommit.com/:slug. That page automatically pulls the repo description, star count, language, license, and topics from GitHub. Then you add whatever links you want: social profiles, docs, community, sponsors.


Features

  • Short slugs -- hypercommit.com/linux instead of github.com/torvalds/linux
  • Auto-fetched metadata -- description, stars, language, license, topics pulled live from GitHub
  • Custom links -- add links for X, Bluesky, LinkedIn, Discord, website, or any custom label
  • Link icons -- social platform icons auto-detected from URL
  • Dark mode -- toggle with the D key
  • Admin panel -- role-based access for platform moderation
  • Self-hostable -- one Docker Compose file gets the database running; everything else is a standard Next.js deploy

Stack

Layer Technology
Framework Next.js 16 (App Router)
Runtime Bun
Database PostgreSQL (Drizzle ORM)
Auth Better Auth with GitHub OAuth
Styling Tailwind CSS v4
Monorepo Turborepo

Self-hosting

Prerequisites

  • Bun >= 1.3
  • Docker (for PostgreSQL)
  • A GitHub OAuth app

1. Clone and install

git clone https://github.com/alexisbouchez/hypercommit.git
cd hypercommit
bun install

2. Configure environment

cp .env.example apps/web/.env

Open apps/web/.env and fill in every value:

DATABASE_URL=postgresql://hypercommit:hypercommit@localhost:5432/hypercommit

BETTER_AUTH_SECRET=         # generate with: openssl rand -hex 32
BETTER_AUTH_URL=http://localhost:3000

GITHUB_CLIENT_ID=           # from github.com/settings/developers
GITHUB_CLIENT_SECRET=

GITHUB_TOKEN=               # optional but recommended — see below

NEXT_PUBLIC_APP_URL=http://localhost:3000

GitHub OAuth app: go to github.com/settings/developers, click New OAuth App, set the homepage URL to your app URL, and set the callback URL to <your-url>/api/auth/callback/github.

GitHub token (recommended): without a token, GitHub's API is limited to 60 requests/hour per IP. With a token you get 5 000 requests/hour. To create one:

  1. Go to github.com/settings/tokens and click Generate new token (classic).
  2. Give it a descriptive name (e.g. hypercommit).
  3. Select the public_repo scope (read-only access to public repository data is enough).
  4. Click Generate token and copy the value into GITHUB_TOKEN.

No extra scopes are needed — Hypercommit only reads public repository metadata.

3. Start the database

docker compose up -d

4. Run migrations

cd apps/web
bunx drizzle-kit push

5. Start the dev server

cd ../..
bun dev

The app is now running at http://localhost:3000.


Project structure

hypercommit/
├── apps/
│   └── web/                  # Next.js application
│       ├── app/
│       │   ├── page.tsx       # Home: repo list and add form
│       │   ├── [slug]/        # Public repo page + admin + claim
│       │   └── api/           # Auth and repository API routes
│       ├── lib/
│       │   ├── schema.ts      # Drizzle schema
│       │   ├── db.ts          # Database client
│       │   └── auth.ts        # Better Auth config
│       └── drizzle/           # SQL migrations
└── packages/
    └── ui/                    # Shared component library

Add a badge to your project

Let your users know your project has a Hypercommit page by adding a badge to your README.md:

[![Hypercommit](https://img.shields.io/badge/Hypercommit-DB2475)](https://hypercommit.com/your-slug)

Replace your-slug with your actual slug. Example for a project at hypercommit.com/linux:

[![Hypercommit](https://img.shields.io/badge/Hypercommit-DB2475)](https://hypercommit.com/linux)

Which renders as:

Hypercommit


Contributing

Pull requests are welcome. For significant changes, open an issue first to discuss what you want to change.

# run type checking
bun typecheck

# run linting
bun lint

All contributions must be compatible with the AGPL-3.0 license.


License

GNU Affero General Public License v3.0

This means: you can use, modify, and self-host Hypercommit freely. If you run a modified version as a network service (like a SaaS offering), you must release your source code under the same license.


Star History

Star History Chart

About

An open source linktree for GitHub repositories

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages