# Add applications without adding drift

Add applications with consistent ports, project tags, tests, and workspace configuration.

## Choose the application boundary

Web, API, worker, Expo mobile, desktop, Apple, site, native Kotlin/Android, and browser-extension applications receive conventions that fit their runtime.

```sh
megamono add app web
```

Every generated project is tagged along four axes

```text
"tags": [
  "platform:web",
  "scope:acme",
  "type:app",
  "visibility:internal"
]
```

## Share code when it is useful

Keep application-specific code close to the app. Extract a library when you need shared behavior, separate tests, or a clearer module boundary. Playstack integrations are optional, so keep using the libraries that fit your product.

## Preview before creating files

Dry runs use the same ordered plan as execution, allowing occupied paths, ports, dependencies, and unsupported combinations to fail before files change.
