> ## Documentation Index
> Fetch the complete documentation index at: https://mintlify.com/rowboatlabs/rowboat/llms.txt
> Use this file to discover all available pages before exploring further.

# Contributing Overview

> Get started contributing to Rowboat development

Rowboat is an open-source project built as a monorepo containing multiple applications and packages. This guide will help you start contributing to the codebase.

## Prerequisites

Before you begin, ensure you have the following installed:

* **Node.js** 18+ (with npm)
* **pnpm** (required for workspace protocol)
* **Git** for version control

<Note>
  Rowboat uses pnpm as its package manager because it's required for the `workspace:*` protocol used in the monorepo.
</Note>

## Quick Start

<Steps>
  <Step title="Clone the repository">
    ```bash theme={null}
    git clone https://github.com/rowboat-ai/rowboat.git
    cd rowboat
    ```
  </Step>

  <Step title="Install dependencies">
    Navigate to the Electron app directory and install dependencies:

    ```bash theme={null}
    cd apps/x
    pnpm install
    ```
  </Step>

  <Step title="Build workspace packages">
    Build the shared packages in the correct order:

    ```bash theme={null}
    npm run deps
    ```

    This builds: `shared` → `core` → `preload`
  </Step>

  <Step title="Start development mode">
    ```bash theme={null}
    npm run dev
    ```

    This starts the Electron app with hot-reload for the renderer process.
  </Step>
</Steps>

## Repository Structure

The Rowboat monorepo contains several applications:

* **apps/x** - Electron desktop app (primary focus)
* **apps/rowboat** - Next.js web dashboard
* **apps/rowboatx** - Next.js frontend
* **apps/cli** - Command-line interface tool
* **apps/python-sdk** - Python SDK
* **apps/docs** - Documentation site (Mintlify)

<Note>
  Most development work focuses on the Electron app (`apps/x`), which has its own nested workspace structure.
</Note>

## Development Workflow

### Running the Electron App

```bash theme={null}
cd apps/x
npm run dev       # Builds deps and starts app
npm run lint      # Run linter
npm run lint:fix  # Fix linting issues
```

### Making Changes

1. **Shared types/utilities** - Edit `apps/x/packages/shared/src/`, then run `npm run deps`
2. **Core business logic** - Edit `apps/x/packages/core/src/`, then run `npm run deps`
3. **Main process** - Edit `apps/x/apps/main/src/`, requires dev server restart
4. **Renderer (UI)** - Edit `apps/x/apps/renderer/src/`, hot-reloads automatically
5. **Preload scripts** - Edit `apps/x/apps/preload/src/`, then run `npm run deps`

<Warning>
  Changes to the main process don't hot-reload. You must restart the dev server to see changes.
</Warning>

## Tech Stack

The Electron app is built with modern web technologies:

| Layer | Technology |
| - | - |
| Desktop | Electron 39.x |
| UI | React 19, Vite 7 |
| Styling | TailwindCSS, Radix UI |
| State | React hooks |
| AI | Vercel AI SDK, OpenAI/Anthropic/Google/OpenRouter |
| IPC | Electron contextBridge |
| Build | TypeScript 5.9, esbuild, Electron Forge |

## Key Documentation

* [Monorepo Structure](/development/monorepo-structure) - Understand the workspace layout
* [Electron App](/development/electron-app) - Deep dive into the Electron architecture
* [Building](/development/building) - Build system and packaging instructions
* [Testing](/development/testing) - Testing guide and best practices

## Getting Help

For detailed context when working with AI coding agents, refer to the `CLAUDE.md` file in the repository root. This file contains comprehensive information about the codebase structure, common tasks, and key reference files.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.