# Development

Source: https://docs.interop.io/desktop/developers/seed-project/development/index.html

## Overview

Development mode starts **io.Connect Desktop** from the installed components with your project modifications. Complete the [initial setup](https://docs.interop.io/desktop/developers/seed-project/overview/index.md#quick_start) before starting the platform.

## Starting the Platform

To apply the base and development modifications and start the platform, execute:

```cmd
npm run dev
```

The CLI resets tracked modifications before applying `/modifications/base`, followed by `/modifications/dev`. Use these folders for changes that must survive component updates.

> ℹ️ *For details on file replacement, JSON merging, and processing order, see the [Modifications](https://docs.interop.io/desktop/developers/seed-project/modifications/index.md) section.*

## Starting Apps

If apps in `/apps` use development servers, start their development scripts in a separate terminal before running `npm run dev`:

```cmd
npm run apps-dev
```

This command also copies the development modifications of the apps (e.g., app definitions pointing to the development servers) to `/modifications/dev`, so the platform applies them on its next start. The copied files remain there, so later development and test runs also load these apps from their development servers.

> ⚠️ *Note that the platform may fail to start if required custom apps aren't running. Keep their development servers running while using the platform.*

## Launch Arguments

To pass additional arguments to the **io.Connect Desktop** executable, use the `--extraLaunchArgs` option:

```cmd
npm run dev -- --extraLaunchArgs "--inspect --someFlag"
```

The CLI splits the value on spaces before passing it to the executable.

> ℹ️ *For details on installing or updating the platform runtime, see the [Components](https://docs.interop.io/desktop/developers/seed-project/components/index.md) section.*
