# Quick start

You'll need [Bun](https://bun.sh), a free [Convex](https://convex.dev)
account, a [Clerk](https://clerk.com) application, and an
[OpenRouter](https://openrouter.ai) API key.

```sh
git clone https://github.com/whirlchat/whirl.git
cd whirl
bun install

# 1. Create a Convex dev deployment and push the backend.
cd packages/backend
bunx convex dev            # first run walks you through creating a project

# 2. In another terminal, give the backend its secrets.
bunx convex env set CLERK_JWT_ISSUER_DOMAIN https://your-instance.clerk.accounts.dev
bunx convex env set OPENROUTER_API_KEY sk-or-v1-...

# 3. Point the web app at Convex and Clerk.
cd ../../apps/v2
cp .env.example .env.local  # then fill in the four required values

# 4. Run everything from the repo root.
cd ../..
bun run dev
```

Open [localhost:3000](http://localhost:3000) and say hi. The
[self-hosting guide](https://github.com/Up-to-code/whirl/blob/main/docs/self-hosting.md) covers each step in detail,
including the Clerk JWT template Convex needs and how to deploy to
production.