# Content stages

Learn more about Hygraph's default content stages and about creating custom content stages.

## Overview

Hygraph has two system content stages, `DRAFT` and `PUBLISHED`.

`DRAFT` allows people to add and edit content without affecting published content. When the content is ready to be pushed live, it is promoted to the `PUBLISHED` stage. Keep in mind that content cannot be consumed by others unless it's published.

**Are you looking for our API Reference?:**

[Check out our API Reference document on content stages](https://hygraph.com/classic-docs/api-reference/content-api/content-stages)

Depending on your plan, you can [create custom content stages](https://hygraph.com/classic-docs/developer-guides/content/content-stages#creating-custom-content-stages). System content stages cannot be edited or deleted.

**Pro Tip:**

Content in Hygraph that has been saved but has never been published, exists only in the `DRAFT` stage.

When promoted to the `PUBLISHED` stage, content will exist in that stage, and also in `DRAFT`.

When you update a content entry and save without publishing, that new content will be saved in `DRAFT` and the entry will show a blue `Published` pill on the content table, indicating that it's **outdated**.

Content being **outdated** means that the version currently saved in the `DRAFT` stage contains changes that have not yet been promoted to `PUBLISHED`.

## What you can do

One of the benefits of content staging is that it allows users to compare versions of content in different stages. When editors want to quickly revert changes to the `DRAFT` stage from the `PUBLISHED` stage, they can compare the two content stages and choose which fields to revert to the `PUBLISHED` stage.

It saves content teams time and energy by ensuring they won't need to do double the work when trying to roll back changes.

This feature can be particularly helpful when using **Custom Roles** to create more sophisticated workflows for the team. For example, if a team member should only be able to create `DRAFT` content but not move it directly to the `PUBLISHED` stage, this is possible with **Custom Roles**.

**Note:**

Check out our [Roles & Permissions](https://hygraph.com/classic-docs/developer-guides/project/roles-and-permissions#custom-roles) document to learn more about **Custom Roles**.

Depending on your plan, you may only have access to the two system content stages - `DRAFT` & `PUBLISHED` - or you may have the possibility to create more. For instance, the following diagram shows a workflow with 3 content stages: `DRAFT`, `APPROVAL` and `PUBLISHED`.

![Hygraph workflow with 3 content stages](https://hygraph.com/images/classic-docs/user-guides/workflow-3-content-stages.png)

**Warning:**

**Content stages are environment specific**. This means their configuration is applied per environment. Take this into consideration if you're working with a project using more than one environment.

## Creating custom content stages

You can create your own content stages from within your project settings. The default screen shows the `DRAFT` and `PUBLISHED` stages, and offers the option to upgrade your plan if you want to configure any additional stages.

![Content Stages Project Settings](https://hygraph.com/images/classic-docs/user-guides/content-stages-settings.png)

The `QA` stage card is grayed out as it's not part of the **Community Plan**. Clicking on the **Upgrade to add this content stage** link at the bottom of this card displays a popup where you can select the best plan for your project.

![QA Stage](https://hygraph.com/images/classic-docs/user-guides/content-stages-qa.png)

You can also change the order of your destination content stages by clicking on the six dots icon - located to the left of each configured stage card - and dragging.

If you haven't reached the limit of stages for your plan, then you will simply be provided with the option of adding a new stage.

![+ Add stage](https://hygraph.com/images/classic-docs/user-guides/content-stages-add.png)

Clicking on `+ Add stage` displays a screen where you will be required to provide a `Display name`, select a label color and, optionally, add a description. The `API ID` field will be autocompleted as you write the display name.

![+ Add stage](https://hygraph.com/images/classic-docs/user-guides/content-stages-create.png)

Finally, click on the `Add` button to create the content stage.

**Note:**

Creating custom content stages is available to paid plans. [Upgrade your plan](https://hygraph.com/pricing).

## Editing custom content stages

To edit a custom content stage navigate to **Project settings > General > Content stages** in your Hygraph project, and click on the `Edit` button on the card of the content stage you want to edit.

![Edit stage](https://hygraph.com/images/classic-docs/user-guides/content-stages-edit.png)

The content stage details page will display. Edit the information you need to change, then click on `Update` to save your changes.

![Edit stage - details screen](https://hygraph.com/images/classic-docs/user-guides/content-stages-edit-details.png)

## Deleting custom content stages

To delete a custom content stage navigate to **Project settings > General > Content stages** in your Hygraph project, and click on the `Delete` link on the card of the content stage you want to delete.

![Delete stage](https://hygraph.com/images/classic-docs/user-guides/content-stages-delete.png)

A confirmation screen displays, where you need to type in the stage name, then click on `Delete stage` to proceed.

![Delete stage - confirmation screen](https://hygraph.com/images/classic-docs/user-guides/content-stages-delete-confirmation.png)
