Docs
Concepts

Projects

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

View as Markdown

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

ThingNotes
Models and entriesA model's namespace is unique within its project. Two projects can both have article.
MediaFiles are uploaded to one project. Their URLs are public, so any site can show them.
KeysA key reads exactly one project. The key alone says which, so /api/ needs no project id.
MembersPeople are invited to a project with a role. Someone can belong to many projects with a different role in each.
Webhooks, settings, publishing historyPer project.
Plan and billingPer 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.

Changing the slug breaks every bookmark and shared link that uses the old one. Capa does not redirect from the old address.

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.