Contributing
Guide for contributing to the Drivebase monorepo
We welcome contributions to Drivebase! Whether you are fixing a bug, adding a feature, or improving documentation, your help is appreciated.
Development Workflow
Drivebase is built as a monorepo using Turbo and Bun.
Local Setup
-
Clone the repo:
git clone https://github.com/drivebase/drivebase.git cd drivebase -
Install dependencies:
bun install -
Environment Setup: Create a
.env.localfile based on.env.example. You will need a running PostgreSQL and Redis instance. -
Start development server:
bun run devThis starts the API and the web frontend in parallel with hot-reloading.
Monorepo Structure
apps/api: The GraphQL server built with Yoga and Bun.apps/web: The React frontend built with Vite.apps/www: This documentation site.packages/core: Shared types, enums, and base error classes.packages/db: Database schema (Drizzle ORM) and client.packages/*-provider: Implementation of different storage backends (S3, Google Drive, Local).
Coding Standards
- Formatting: We use Biome for linting and formatting. Run
bun biome check --writebefore committing. - Testing: Write tests for new features. We use Bun's built-in test runner. Run
bun test. - GraphQL: If you modify the schema in
apps/api/graphql/schema, remember to runbun run codegento update generated types.
Submitting a Pull Request
- Fork the repository and create a new branch.
- Make your changes and ensure tests pass.
- Submit a Pull Request with a clear description of the changes and the problem they solve.
- Adhere to the existing code style and naming conventions.
Thank you for contributing to Drivebase!