# Projects

Source: https://capacms.com/docs/concepts/projects

A project is one site's own space, with its own content, keys, members, plan and URL.

A project holds everything for one site: its models, entries, media, keys, webhooks and members. Nothing is shared between projects, and nothing leaks from one to another.

Most teams run one project per site. An agency runs one per client.

## What belongs to a project

| Thing                                  | Notes                                                                                                           |
| -------------------------------------- | --------------------------------------------------------------------------------------------------------------- |
| Models and entries                     | A model's namespace is unique within its project. Two projects can both have `article`.                         |
| Media                                  | Files are uploaded to one project. Their URLs are public, so any site can show them.                            |
| Keys                                   | A key reads exactly one project. The key alone says which, so `/api/` needs no project id.                      |
| Members                                | People are invited to a project with a role. Someone can belong to many projects with a different role in each. |
| Webhooks, settings, publishing history | Per project.                                                                                                    |
| Plan and billing                       | Per project.                                                                                                    |

The API calls a project a **tenant**, for example in the response of `GET /api/me`. It is the same thing.

## A project's URL

Every project has its own address in the admin:

```
https://app.capacms.com/project/northpeak-outdoor/content
```

`northpeak-outdoor` is the project's **URL slug**. Capa makes it from the project name when you create the project: lowercase, with every other character turned into `-`. If another project already has it, Capa adds `-2`, `-3` and so on.

Renaming the project does not change its slug. To change the slug, see [Manage projects](https://capacms.com/docs/projects/manage#change-the-project-url).

<Callout type="warn">
  Changing the slug breaks every bookmark and shared link that uses the old one. Capa does not redirect from the old address.
</Callout>

## Links to entries

An entry's address in the admin reads like its title:

```
https://app.capacms.com/project/northpeak-outdoor/content/article/winter-field-guide-2026-layering-above-treeline-3f9c1a7b
```

Only the last part, the start of the entry's id, finds the entry. Renaming the entry changes the title part of new links, and old links keep working. Share these links freely with your team.

## Switch between projects

The project switcher sits at the left of the top bar. It lists your five most recent projects, then all of them from A to Z. You can search when you have many.

The admin remembers which project you opened last. Two browser tabs can each have a different project open.

## One project per site, not per environment

A draft key shows drafts, but it reads the same content as your live site. There is one database. A draft key that can publish publishes to your live site.

So use one project per site, with a production key for the live site and a draft key for previews. If you want a place to try things that can never reach the live site, make a separate project.

## Related

* [Manage projects](https://capacms.com/docs/projects/manage): create, rename, transfer and delete.
* [Members and roles](https://capacms.com/docs/projects/members-and-roles): who can do what.
* [Keys](https://capacms.com/docs/concepts/keys): production and draft keys.
