Setting Up Your Development Environment
1
Clone the Repository
2
Install Dependencies
This project uses pnpm through Corepack.
3
Start Infrastructure Services
If you want to run the app directly on your machine with This starts the following infrastructure services:
pnpm dev, start only the infrastructure services:- PostgreSQL — Database (port 5432)
- Redis — AI Agent workspace streams/state (port 6379)
- SeaweedFS — S3-compatible storage (port 8333)
From v5.1.0 onwards — PDF generation now runs entirely in the browser via
@react-pdf/renderer, so no Browserless or Chromium container is required for development.4
Configure Environment Variables
Create a
.env file in the project root:5
Run Database Migrations If Needed
The server startup path runs migrations before serving traffic. To apply migrations manually without starting the app,
export
DATABASE_URL because Drizzle Kit reads directly from process.env:6
Start the Development Server
Available Scripts
Here are the most commonly used scripts during development:Development
Database
Internationalization
Understanding the Project Structure
Understanding the project structure will help you navigate the codebase:Working with the Database
Viewing the Database
Use Drizzle Studio to explore and manage your database:Making Schema Changes
- Edit the schema in
packages/db/src/schema/* - Generate a migration:
- Apply the migration:
Working with Translations
Reactive Resume uses Lingui for internationalization.Adding Translatable Text
Use thet macro for strings or <Trans> component for JSX:
Extracting Translations
After adding new translatable text, extract them to the locale files:apps/web/locales in .po format.
Code Quality
Linting & Formatting
Uses Biome for linting, formatting, import organization, and Tailwind class sorting:Type Checking
Run TypeScript type checking:Troubleshooting
Port 3000 or 3001 is already in use
Port 3000 or 3001 is already in use
The Vite web server uses
PORT (default 3000), and the Hono server uses SERVER_PORT (default 3001).
Either stop the conflicting process or choose alternate ports:Database connection refused
Database connection refused
Ensure Docker containers are running:Check that PostgreSQL is healthy and accessible on port 5432.
S3/Storage errors
S3/Storage errors
Verify SeaweedFS is running and the bucket exists:If the bucket wasn’t created, restart the bucket creation service:
Type errors after pulling changes
Type errors after pulling changes
The route tree may need regeneration. Run the dev server which auto-generates routes:Or run type checking to see specific errors:
Next Steps
Project Architecture
Deep dive into the project architecture and codebase structure.
GitHub Repository
View the source code and contribute to the project.