Getting started
Quickstart
Accept your repository invitation, clone the Godspeeds starter kit, add your environment keys, and get the development server running.
This guide takes you from purchase to a running local instance. Budget about fifteen minutes, most of which is creating accounts with the three services the kit uses.
Prerequisites
- Node.js 20 or newer, and npm.
- A GitHub account — the kit is delivered as access to a private repository.
- A Clerk account for authentication.
- A Convex account for the database and realtime backend.
- A Stripe account for payments. Test mode is enough to start.
Accept your repository invitation
After checkout, the GitHub username you provided is invited to the private repository for your tier. GitHub emails the invitation, and it also appears at the top of your GitHub dashboard.
Clone and install
Once the invitation is accepted, clone the repository and install dependencies.
git clone https://github.com/<org>/<your-repo>.git my-saas
cd my-saas
npm installThe clone URL is shown on your purchase confirmation page. If you want your project to start from a clean history rather than tracking ours, remove the existing remote and point it at your own repository:
git remote remove origin
git remote add origin https://github.com/<you>/my-saas.gitConfigure environment variables
Copy the example environment file and fill in the keys from each service dashboard.
cp .env.example .env.local.env.local is git-ignored and must stay that way. Never commit live keys, and use separate keys for development and production — see Security architecture for how the kit isolates environments.Start the development server
npm run devThe app is now running at http://localhost:3000. Create an account through the sign-up flow to get your first user, then continue to Authentication to grant that user admin access.
Troubleshooting
- `git clone` returns 404 — the invitation has not been accepted yet. A private repository is indistinguishable from a missing one until you have access.
- Build fails on a missing environment variable — confirm every key in
.env.examplehas a value in.env.local. - Auth redirects in a loop — the Clerk keys usually belong to a different Clerk instance than the one your redirect URLs are configured on.
- Stripe webhooks never arrive locally — webhooks cannot reach
localhostdirectly; forward them with the Stripe CLI.