# Working with projects

In the workspace, all repositories of a project sit next to each other, and you start, commit, and push as you would on a local computer.

> Source: https://www.application-platform.com/en/docs/workspace-vm-project-work/

The workspace VM is designed so that the repositories of a project sit next to each other, meaning backend, apps, and homepage in a shared project folder in the home directory. Open this project folder in your editor or AI agent rather than a single repository, so that all parts are visible together and the agent finds the shared configuration from `local-configuration`. How the folder is structured and which conventions apply inside it is described under [Local development]({{< relref "local-development" >}}); the same applies in the workspace.

## Starting an application

You start each repository in the terminal with `ap run-local` from the repository folder. Frontends and homepages have fixed ports per repository, so several applications can run at the same time. What the command does for each repository type and which other `ap` commands exist is described under [Starting applications]({{< relref "workspace-ubuntu-dev-scripts" >}}).

## Committing and pushing changes

The workspace VM clones the repositories on the `main` branch. From there you work as usual: you create a feature branch, review your changes, commit, and push. The pipeline runs on `main` and handles versioning, builds, and the deployment update there. Feature branches produce dynamic build versions without leaving a version commit in the repository. The full flow from merge request to production is described under [Git workflow and deployment]({{< relref "git-workflow" >}}).

The workspace does not replace review. It makes sure that everyone involved works with the same development environment.

