Running The Project

Learn how to run the project locally.

Make sure you have read and followed the instructions on installation before proceeding.

Instructions

Create the .env file

Copy and paste the .env.example file in the root directory and rename it to .env:

cp .env.example .env

Configure the environment variables

The project requires environment variables for each integration.

IntegrationRequired VariablesGuide
DatabaseDATABASE_URLConfigure
AuthenticationBETTER_AUTH_URL, BETTER_AUTH_SECRET, GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET, GITHUB_CLIENT_ID, GITHUB_CLIENT_SECRETConfigure
PaymentsSTRIPE_PUBLISHABLE_KEY, STRIPE_SECRET_KEY, STRIPE_WEBHOOK_SECRETConfigure
EmailRESEND_API_KEY, RESEND_FROM_EMAILConfigure

Each guide walks you through creating accounts, obtaining keys, and updating the .env file.

At minimum, configure the Database to run the project — the rest can be set up later.

Sync the database

Run the following command to sync the database schema:

pnpm db:push

Start the development servers

Run the following command to start all development servers:

pnpm dev

Since we use Turborepo with pnpm workspaces, this starts all apps and packages with a dev script:

PortService
3000Main SaaS application
3001Public website
3333Email live server (React Email)
5555Database admin panel (Prisma Studio)

When Stripe is configured, you'll need to run the Stripe CLI webhook listener in a separate terminal.

Follow the instructions in the Payments section.

At this point, the project should be running locally.