Drivebase Logo

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

  1. Clone the repo:

    git clone https://github.com/drivebase/drivebase.git
    cd drivebase
  2. Install dependencies:

    bun install
  3. Environment Setup: Create a .env.local file based on .env.example. You will need a running PostgreSQL and Redis instance.

  4. Start development server:

    bun run dev

    This 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 --write before 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 run bun run codegen to update generated types.

Submitting a Pull Request

  1. Fork the repository and create a new branch.
  2. Make your changes and ensure tests pass.
  3. Submit a Pull Request with a clear description of the changes and the problem they solve.
  4. Adhere to the existing code style and naming conventions.

Thank you for contributing to Drivebase!

On this page