# Contributing

Help us make Cntrl Bridge better.

First off, thank you for considering contributing to Cntrl Bridge!

## Philosophy

Before you dive in, please keep in mind the project's core philosophy:

- **Simple**: We want to keep the feature set focused.
- **Lightweight**: Avoid adding heavy dependencies unless absolutely necessary.
- **Cross-Platform Native**: We prioritize a clean, native experience on both Windows and macOS.

## Getting Started

To work on Cntrl Bridge locally, you'll need:

- **Rust** (latest stable) - Install from [rustup.rs](https://rustup.rs/)
- **Node.js 18+** - For frontend and documentation
- **pnpm** - Build tool and package manager
- **Turbo** - Build system (optional but recommended)
- **Platform-specific tools:**
  - **Windows**: Visual Studio Build Tools
  - **macOS**: Xcode Command Line Tools

### Local Development

1. Clone the repository:
   
   
   ```
   git clone https://github.com/azaek/cntrl.git
   cd cntrl
   ```

2. Install dependencies:
   
   
   ```
   pnpm install
   ```

3. Run in development mode:

You can run all apps simultaneously:
   
   
   ```
   pnpm dev
   ```

Or run a specific app:
   
   
   ```
   pnpm dev:bridge # for the desktop app
   pnpm dev:web    # for the web dashboard
   ```

4. Build for production:
   
   
   ```
   pnpm build
   ```

Or build a specific app:
   
   
   ```
   pnpm build:bridge
   ```
   
   This will create platform-specific installers in `apps/bridge/src-tauri/target/release/bundle/`

## Project Structure

This is a monorepo managed by [Turbo](https://turbo.build/) and [pnpm](https://pnpm.io/).

- **apps/**: Contains the main applications (bridge, docs, web, hub, rhub).
- **packages/**: Shared libraries and UI components.
- **tooling/**: Build and configuration tools.

## Documentation

The documentation is built with [Fuma Docs](https://fumadocs.dev/). To run it locally:

```
   pnpm dev:docs
```

## Pull Requests

- **Small is better**: We prefer small, focused pull requests.
- **Explain the "Why"**: Include a clear description of the problem your PR solves.
- **Consistency**: Try to follow the existing code style.

Thank you for being part of the community! 🚀
