Contribution Guidelines

January 28, 2025 Β· View on GitHub

Welcome! This guide provides all the details you need to contribute effectively to the project. Thank you for helping us make bolt.diy a better tool for developers worldwide. πŸ’‘


πŸ“‹ Table of Contents

  1. Code of Conduct
  2. How Can I Contribute?
  3. Pull Request Guidelines
  4. Coding Standards
  5. Development Setup
  6. Testing
  7. Deployment
  8. Docker Deployment
  9. VS Code Dev Containers Integration

πŸ›‘οΈ Code of Conduct

This project is governed by our Code of Conduct. By participating, you agree to uphold this code. Report unacceptable behavior to the project maintainers.


πŸ› οΈ How Can I Contribute?

1️⃣ Reporting Bugs or Feature Requests

  • Check the issue tracker to avoid duplicates.
  • Use issue templates (if available).
  • Provide detailed, relevant information and steps to reproduce bugs.

2️⃣ Code Contributions

  1. Fork the repository.
  2. Create a feature or fix branch.
  3. Write and test your code.
  4. Submit a pull request (PR).

3️⃣ Join as a Core Contributor

Interested in maintaining and growing the project? Fill out our Contributor Application Form.


βœ… Pull Request Guidelines

PR Checklist

  • Branch from the main branch.
  • Update documentation, if needed.
  • Test all functionality manually.
  • Focus on one feature/bug per PR.

Review Process

  1. Manual testing by reviewers.
  2. At least one maintainer review required.
  3. Address review comments.
  4. Maintain a clean commit history.

πŸ“ Coding Standards

General Guidelines

  • Follow existing code style.
  • Comment complex logic.
  • Keep functions small and focused.
  • Use meaningful variable names.

πŸ–₯️ Development Setup

1️⃣ Initial Setup

  • Clone the repository:
    git clone https://github.com/stackblitz-labs/bolt.diy.git
    
  • Install dependencies:
    pnpm install
    
  • Set up environment variables:
    1. Rename .env.example to .env.local.
    2. Add your API keys:
      GROQ_API_KEY=XXX
      HuggingFace_API_KEY=XXX
      OPENAI_API_KEY=XXX
      ...
      
    3. Optionally set:
      • Debug level: VITE_LOG_LEVEL=debug
      • Context size: DEFAULT_NUM_CTX=32768

Note: Never commit your .env.local file to version control. It’s already in .gitignore.

2️⃣ Run Development Server

pnpm run dev

Tip: Use Google Chrome Canary for local testing.


πŸ§ͺ Testing

Run the test suite with:

pnpm test

πŸš€ Deployment

Deploy to Cloudflare Pages

pnpm run deploy

Ensure you have required permissions and that Wrangler is configured.


🐳 Docker Deployment

This section outlines the methods for deploying the application using Docker. The processes for Development and Production are provided separately for clarity.


πŸ§‘β€πŸ’» Development Environment

Build Options

Option 1: Helper Scripts

# Development build
npm run dockerbuild

Option 2: Direct Docker Build Command

docker build . --target bolt-ai-development

Option 3: Docker Compose Profile

docker compose --profile development up

Running the Development Container

docker run -p 5173:5173 --env-file .env.local bolt-ai:development

🏭 Production Environment

Build Options

Option 1: Helper Scripts

# Production build
npm run dockerbuild:prod

Option 2: Direct Docker Build Command

docker build . --target bolt-ai-production

Option 3: Docker Compose Profile

docker compose --profile production up

Running the Production Container

docker run -p 5173:5173 --env-file .env.local bolt-ai:production

Coolify Deployment

For an easy deployment process, use Coolify:

  1. Import your Git repository into Coolify.
  2. Choose Docker Compose as the build pack.
  3. Configure environment variables (e.g., API keys).
  4. Set the start command:
    docker compose --profile production up
    

πŸ› οΈ VS Code Dev Containers Integration

The docker-compose.yaml configuration is compatible with VS Code Dev Containers, making it easy to set up a development environment directly in Visual Studio Code.

Steps to Use Dev Containers

  1. Open the command palette in VS Code (Ctrl+Shift+P or Cmd+Shift+P on macOS).
  2. Select Dev Containers: Reopen in Container.
  3. Choose the development profile when prompted.
  4. VS Code will rebuild the container and open it with the pre-configured environment.

πŸ”‘ Environment Variables

Ensure .env.local is configured correctly with:

  • API keys.
  • Context-specific configurations.

Example for the DEFAULT_NUM_CTX variable:

DEFAULT_NUM_CTX=24576 # Uses 32GB VRAM