# Project organization

Source: https://docs.fortrabbit.com/platform/get-started/project-organization
Published: 2025-09-12
Updated: 2026-07-03
Reviewed: 2026-07-03

> Map a real project onto fortrabbit apps and environments: the recommended structure, and what the alternatives cost in practice.


## Intro

The fortrabbit platform has two layers to map web projects:

- [App](/platform/objects/app): Git repo, [collaboration](/platform/collaboration/intro).
- [Environment](/platform/objects/environment): Runtime, git branch, code access, [components](/platform/concepts/components), settings.

## Workflows

There is a main way to set this up and a couple of other possible workflows that are suboptimal:

### Projects as apps, environments are stages



```raw
- App: 'My website project'
  - Environment 1: 'Main' - live production
  - Environment 2: 'Dev' - feature development (optional)
```

Use environments as versions of the website. When using [git deployment](/platform/deployment/intro), branches can be mapped to environments. See the [multi staging article](/dev/learn/staging-environments). Each app requires at least one environment. One app with one environment is also common.

Rating: ✅ ✅ ✅ ✅

### Projects as folders in an environment



```raw
- App: 'My agency'
  - Environment 1: 'Main'
    - Folders: 'website-1', 'website-2' …
```

Web projects are just folders in a single environment. This might be viable for micro sites, but has some downsides. When routing domains, `.htaccess` must be used. Resources like the database need to be shared.

Many CMS systems offer multi-site features, which works in a similar way. There are use cases for it, but in general individual installations will work better.

Rating: ❌ ❌ ✅ ✅

### Project parts as environments



```raw
- App: 'website-1'
  - Environment 1: 'frontend'
  - Environment 2: 'backend'
```

Environments map to parts of a web project. This may work for [headless CMS systems](/dev/learn/headless), where frontend and backend are separated software.

Rating: ❌ ❌ ✅ ✅

### Projects as environments



```raw
- App: 'My agency'
  - Environment 1: 'website-1'
  - Environment 2: 'website-2'
  - Environment 3: 'website-3'
```

Web projects map to environments. This might be viable for tiny micro sites, but is sub-optimal. Resources and settings are shared. Individual web project access in collaboration is not possible.

Rating: ❌ ❌ ❌ ✅

### Projects as apps, stages as folders



```raw
- App: 'website-1'
  - Environment 1: 'Main'
    - Folders: 'prod', 'staging'
```

In this workflow, environments are ignored, instead stages are mapped as folders in one environment. This may not work as intended.

Rating: ❌ ❌ ❌ ✅

---

- [Monorepos](/dev/learn/monorepos)
- [Headless options](/dev/learn/headless)
- [Multi staging intro](/dev/learn/staging-environments)
