Skip to content

Prerequisites

To self-host RankHub, you need the following tools and accounts.

Required

Bun 1.3+

The JavaScript runtime used for development, building, and running scripts.

bash
curl -fsSL https://bun.sh/install | bash
bun --version  # verify >= 1.3.0

Supabase Project

PostgreSQL database hosted on Supabase, used for persistent storage.

  1. Create a project at supabase.com.
  2. Note the project URL, anon key, and service role key from Settings > API.
  3. Get the transaction pooler connection string from Settings > Database > Connection string > Transaction pooler.

Cloudflare Account with Workers

Required for deploying the web app and Durable Object worker.

  1. Create an account at dash.cloudflare.com.
  2. Enable Workers in the account settings.
  3. Note your account ID and API token.
  4. Ensure Durable Objects are enabled for your account.

Optional

Resend Account

For transactional emails (verification, password reset, weekly digest).

  1. Create an account at resend.com.
  2. Generate an API key.
  3. Configure a verified sending domain or use Resend's on-domain email.

PostHog Account

For product analytics.

Sentry Account

For error tracking and performance monitoring.

Local Development

For local development, you can use Supabase's local stack instead of a cloud project:

bash
# Install Supabase CLI
brew install supabase/tap/supabase

# Start local Supabase
supabase start

# This provides local PostgreSQL, Auth, and Storage

The .env.example file in the repository root contains all required environment variables with local defaults already configured.