Skip to content

Contribution Guidelines

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:
  • Rename .env.example to .env.local.
  • Add your API keys:
    GROQ_API_KEY=XXX
    HuggingFace_API_KEY=XXX
    OPENAI_API_KEY=XXX
    ...
    
  • 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