Project Setup¶
After this guide you'll understand what init.py configured, where configuration lives, and how to onboard a teammate.
What init.py does¶
You run init.py once during Quick Start. It:
- prompts for your app name, mode (
b2c/b2b), and database; - generates the
.envfiles acrossbackend/,frontend/,landing/, andbackend/db/; - starts Docker PostgreSQL and runs migrations (with seed data);
- installs backend (
uv) and frontend/landing (npm) dependencies; - generates the type-safe API client (see Type-Safe API Client).
Pass --dry-run to preview without making changes. In development the email provider defaults to stub, so nothing is sent — verification and invitation links appear as [STUB EMAIL] blocks in the backend logs (see Transactional Email). Once setup works, you can safely delete init.py; it's only needed once.
Onboarding teammates¶
Only the first developer runs init.py. Everyone else starts from your committed, pre-configured repository.
-
Push to your own repository:
-
Teammates clone and configure:
- Clone your repository (not the FastReact template).
- Install the prerequisites (uv, Node.js 22+, Sqitch, Docker).
- Create
.envfiles by copying each.env.example(backend/,frontend/,landing/,backend/db/). - Start the database:
docker compose -f backend/docker-compose.yml up db -d - Run migrations:
cd backend/db && ./sqitch.sh dev deploy - Install deps:
uv syncinbackend/,npm installinfrontend/andlanding/ - Create a local admin:
cd backend && uv run scripts/create_admin.py
Never commit .env files
They contain secrets and are gitignored. Share values through a secure channel (1Password, Doppler, a shared secrets manager).
See Configuration for the full variable reference.