Getting Started
This guide will help you set up your development environment for the Billy monorepo.Welcome Fellow Dev
As a Billy developer, you should have an email[email protected]
and access to the following accounts:
Essential Services
- Pennylane sandbox - Your company development environment on Pennylane
- 1Password - Credentials and secrets management
- Vercel - Deployment and hosting
- Supabase - Database and authentication
- Upstash (Redis / Qstash) - Redis database and message queuing
Development Tools
- CloudFlare - DNS, CDN, and Workers
- Sentry - Error monitoring and performance tracking
- Slack - Team communication
- Loco (translations) - Internationalization management
- Hookdeck - Webhook testing and management
- Inngest - Background job orchestration
- Checkly - Monitoring and testing
Prerequisites
Before you begin, ensure you have the following installed:- Node.js (v24 or higher)
- pnpm package manager
- Git
Initial Setup
1. Clone and Install Dependencies
2. Install Global Tools
3. Link to Vercel
If you don’t have access to Vercel, contact any Billy developer to get access.4. Link to Turbo
Enable Remote Caching :Local Development Environment
Setting Up Local Supabase
Billy uses Supabase for local development. Follow these steps to set up your local database:1. Install Docker
Option 1 :2. Start Supabase CLI
apps/app/supabase/migrations
folder. The SQL schema already imported is probably not compatible with the successive changes of those migrations
3. Configure Environment Variables
After starting Supabase, add these variables to your.env.local
:
4. Access Local Supabase
- Supabase UI: http://localhost:54323/
5. Populate Database
Setting Up Upstash (Redis)
For local development with Redis:- Go to Upstash Console
- Create a new database named “billy dev” in “eu-central-1”
- Add these environment variables to
.env.local
:
Setting Up Pennylane Sandbox
To use your own Pennylane sandbox:- Go to Pennylane Sandbox
- Create your own sandbox
- Get your API key from the developer settings
- Add to
.env.local
:
- Reset your SQL schema and run
pnpm populate
Starting Development
Basic Commands
For your first run, make sure to launchAccess Your Application
- Main App: https://localhost:3000
- Gotenberg (PDF): http://localhost:3045/health
Development Tools
Cloudflare Workers
Hookdeck (Webhook Testing)
Install the CLI from here: https://hookdeck.com/docs/cliGraphQL Development
React Developer tools
Useful to find which components are on screen for example for better and quicker debugging. Install here: https://react.dev/learn/react-developer-toolsDatabase Management
Creating Migrations
Applying Migrations
Configure Slack GitHub Reminders
To stay updated on GitHub activities and receive real-time alerts:- Join the Slack channel:
#squad-billy-github-reminder
- Configure GitHub integration: Go to GitHub Settings > Reminders
- Enable real-time alerts: Follow the documentation at Pennylane Tooling GitHub
- Pull request reviews and comments
- Issue updates and assignments
- Repository activities
- Team collaboration updates
Troubleshooting
Common Issues
- Supabase won’t start: Ensure Podman is running and Docker compatibility is enabled
- Port conflicts: Check if ports 3000, 54321-54324, 3045 are available
- Environment variables: Ensure
.env.local
is properly configured
Next Steps
Once you have your environment set up:- Read the Development Workflow guide
- Explore the Architecture Overview
- Review Contributing Guidelines
- Start developing! 🚀