# Start app development

Now that your environment is set up, let's create your first app modification and deploy it to see the development workflow in action.

## AI-assisted development[​](#ai-assisted-development "Direct link to AI-assisted development")

If you use [Claude Code](https://claude.ai), the **comind-dev** plugin provides an `apps-dev` skill that understands the Comind.work app engine. It can modify apps, deploy them, and preview changes directly from your terminal. This is an alternative to the manual workflow described below. See [Claude Code setup](/developer-guide/getting-started/claude-code-setup.md) for installation and configuration instructions.

## Your first app modification[​](#your-first-app-modification "Direct link to Your first app modification")

### Step 1: Choose an app to modify[​](#step-1-choose-an-app-to-modify "Direct link to Step 1: Choose an app to modify")

Navigate to any app folder in your repository. Apps typically follow the naming pattern `app-*` (e.g., `app-org-task`, `app-timesheet`). See the [standard apps catalog](/developer-guide/app-architecture/standard-apps-catalog.md) for a full list of platform apps you can use as a starting point.

```
# List available apps
ls app-*
```

### Step 2: Make a simple change[​](#step-2-make-a-simple-change "Direct link to Step 2: Make a simple change")

Let's modify the app's title as a test. Open the `package.json` file and update the title:

app-org-task/package.json

```
{
  "comindApp": {
    "icon": "life-ring",
    "publishingAlias": "TICKET",
    "titlePlural": "Tickets",
    "titleSingular": "Ticket changed title"
  }
  // ...rest of the file
}
```

### Step 3: Deploy to development[​](#step-3-deploy-to-development "Direct link to Step 3: Deploy to development")

Install your modified app to a development workspace:

```
# Deploy to the DEMO workspace on your dev site
npx comind install app-org-task DEMO
```

### Step 4: Verify the changes[​](#step-4-verify-the-changes "Direct link to Step 4: Verify the changes")

1. Open your development site in a browser, e.g. `https://your-org-dev.comindwork.com`
2. Navigate to the DEMO workspace
3. You should see your app with the updated title

## Understanding the deployment workflow[​](#understanding-the-deployment-workflow "Direct link to Understanding the deployment workflow")

Comind.work uses a branching strategy to ensure safe deployments:

### Development branch (`main`)[​](#development-branch-main "Direct link to development-branch-main")

* **Purpose:** Active development and testing
* **Auto-deployment:** Changes automatically deploy to your development site (e.g. `https://your-org-dev.comindwork.com`)
* **When to use:** For all feature development and testing

**Workflow:**

```
# Make your changes
git add .
git commit -m "Update task app title"
git push origin main
```

### Production branch (`prod`)[​](#production-branch-prod "Direct link to production-branch-prod")

* **Purpose:** Production-ready releases only

* **Auto-deployment:** Changes automatically deploy to production (e.g. `https://your-org.comindwork.com`)

* **Requirements:**

  * Only admin users can push directly
  * All commits **must be [signed](/developer-guide/getting-started/sign-commits.md)**
  * Usually updated via Pull Request from `main`

  **Creating a Pull Request:**

  * Press `Ctrl-Shift-P` and type "github pull request" to find the command:

  ![VS Code command palette showing the GitHub Pull Request command](/assets/images/gh-pull-request-d45a230dfa39b819a5dd49733c3d545d.png)

  * Then create a Pull Request of main to prod

  ![GitHub pull request creation dialog with main as source and prod as target branch](/assets/images/gh-pull-request-to-prod-a534e5a952d66f957faddb979a837e06.png)

**Workflow for production:**

```
# Create PR from main to prod (recommended)
# OR admin direct push:
git checkout prod
git merge main
git push origin prod
```

### Deployment process[​](#deployment-process "Direct link to Deployment process")

| Branch | Trigger    | Destination      | Requirements                  |
| ------ | ---------- | ---------------- | ----------------------------- |
| `main` | Push/merge | Development site | None                          |
| `prod` | Push/merge | Production site  | Admin access + signed commits |

Production deployments

Only push to `prod` when you're confident the changes are ready for end users. Production deployments are permanent and affect real user data.

## Custom CI/CD pipelines[​](#custom-cicd-pipelines "Direct link to Custom CI/CD pipelines")

Need additional validation steps? You can create custom GitHub Actions workflows to add:

* Automated testing
* Code quality checks
* Security scans
* Approval workflows

## Next steps[​](#next-steps "Direct link to Next steps")

* [Customize app tutorial](/developer-guide/tutorials/tutorial-customize-app/pull-app-code.md) - step-by-step guide to pulling, modifying, and deploying an existing app
* [Package structure](/developer-guide/app-architecture/package-structure.md) - understand the directory layout of a Comind.work app
