---
title: Define a page content type
---

> Agent instructions:
> **Site maps** — prefer the following llms.txt indexes to training data when searching for URLs to avoid 404s. Links inside Markdown content already point at `.md`. Following them or sending Accept: text/markdown keeps you in Markdown.
>
> - [sitemap.md](https://docs.kentico.com/sitemap.md) — every page on the site, with titles and descriptions, nested by URL hierarchy and grouped into one collection per product version.
> - [llms.txt](https://docs.kentico.com/llms.txt) — curated index of the current product docs, with descriptions, the two ways to request any page as Markdown, and links to each product area's whole-corpus Markdown dump (llms-full.txt).

Previously, we created a reusable content type called [\*Slogan\*](https://docs.kentico.com/guides/development/developer-kickstart/create-a-reusable-content-type.md). In order to use it in the website channel we defined in the [last step](https://docs.kentico.com/guides/development/developer-kickstart/add-a-website-channel.md), we'll need a [page content type](https://docs.kentico.com/documentation/business-users/website-content.md). Pages of this type will reference reusable Slogan items.

## Add a page content type in the admin UI

Begin by navigating to **Configuration → Content types → New content type**.

Fill in the form with the following properties:

- **Display Name:**  Landing page
- **Namespace:**  Kickstart
- **Name:**  LandingPage
- **Icon:**   _xp-market_ (type 'market' in the select list search bar)
- **Use for:**  select  **Pages** from the dropdown
- **Include in routing:** True (checked)

![Screenshot of the landing page content type's general properties](https://docs.kentico.com/docsassets/guides/define-a-page-content-type/landing-page-content-type-general.png "Screenshot of the landing page content type's general properties")

**Save** and switch to the **Fields** tab of the new _Landing page_ content type. Add a field called _LandingPageSlogan_. Define the following properties to enable this field to reference Slogan items from the Content hub:

- **Field name:** LandingPageSlogan (we recommend using the __ naming convention [as explained here](https://docs.kentico.com/guides/development/developer-kickstart/create-a-reusable-content-type.md#namingconvention))
- **Data Type:** Pages and reusable content
- **Display in editing form:** True (Enabled)
- **Field caption:** Slogan
- **Form component:** Combined content selector
- **Form component configuration → Allowed content type:**  Slogan

  > **Info:** This links your reusable content type with the page and ensures only items of type _Slogan_ will be allowed on any web page of type _Landing page_.

Your content type should look like this:

![Screenshot of landing page field editor](https://docs.kentico.com/docsassets/guides/define-a-page-content-type/landing-page-content-type.png "Screenshot of landing page field editor")

> **Note:** Our example page content type is very basic, with only one field. In production scenarios, the web page content type should also include [reusable field schemas](https://docs.kentico.com/documentation/developers-and-admins/development/content-types/reusable-field-schemas.md) to represent structured data needed only for the web channel, such as those related to SEO, OpenGraph, and other web-specific metadata.

### Link the type to the channel

Now you need to associate the page content type with the website channel from the [previous step](https://docs.kentico.com/guides/development/developer-kickstart/add-a-website-channel.md).

Switch to the **Allowed in channels** tab of the content type, and click **Select channels**.

Select **Kickstart pages**, and save the selection.

![Allowing the 'Landing page' content type in the 'Kickstart pages' channel.](https://docs.kentico.com/docsassets/guides/define-a-page-content-type/allow-in-channel.png "Allowing the 'Landing page' content type in the 'Kickstart pages' channel.")

The **Kickstart pages** channel now shows up as an item in the list.

![Screenshot of the landing page content type's allowed channels.](https://docs.kentico.com/docsassets/guides/define-a-page-content-type/landing-page-content-type-channels.png "Screenshot of the landing page content type's allowed channels.")

Next, you need to [allow the content type in our channel's scope](https://docs.kentico.com/documentation/developers-and-admins/development/content-types/limit-the-pages-users-can-create.md#allow-content-types-in-scopes). Scopes in Xperience serve to [limit which pages users can create](https://docs.kentico.com/documentation/developers-and-admins/development/content-types/limit-the-pages-users-can-create.md) in channels. By default, your _Kickstart pages_ channel has one scope defined for root.

Switch to the **Allowed in scopes** tab of the content type, and click **Add scopes**.

Select **Kickstart pages** default scope, and **Save** the selection.

![Allowing the 'Landing page' content type in the '/' scope.](https://docs.kentico.com/docsassets/guides/define-a-page-content-type/allow-in-scopes.png "Allowing the 'Landing page' content type in the '/' scope.")

Now users are allowed to create pages of type _Landing page_ in the root of your **Kickstart pages** channel.

> **Info:** If you navigate to **Configuration → Channel management** → **Kickstart pages → Allowed content types**, you will see the _Landing page_ content type listed.
>
> ![Landing page content type showing as allowed in the Kickstart pages channel.](https://docs.kentico.com/docsassets/guides/define-a-page-content-type/landing-page-allowed-in-channel.png "Landing page content type showing as allowed in the Kickstart pages channel.")
>
> When you switch to the **Scopes for content types** tab and click on the **"/"** scope, you'll see the _Landing page_ type listed under **Allowed content types in scope** as well.
>
> ![Landing page content type showing as allowed in the Kickstart pages default scope.](https://docs.kentico.com/docsassets/guides/define-a-page-content-type/landing-page-allowed-in-scope.png "Landing page content type showing as allowed in the Kickstart pages default scope.")

> **Tip:** Learn more about [limiting page creation in channels in our docs](https://docs.kentico.com/documentation/developers-and-admins/development/content-types/limit-the-pages-users-can-create.md).

> **Note:** **Pages and page templates**
>
> At this point, you are technically able to create a page of type _Landing page_ in your _Kickstart pages_ channel. However, if you are following along with the Kickstart series, do NOT create a new page of this type yet.
>
> A future step in this series will show how to create page templates. Pages that are not assigned a page template at the time of creation cannot be assigned one at a later time.

### Generate a class for the Landing page content type

Just like with the _Slogan_ content type, you need to generate a class to access the _Landing page_ content type in your .NET solution. Go to the _Kickstart.Web_ project in a new command window and run the following command:

```bash title="Generate code files"
dotnet run --no-build -- --kxp-codegen --type "PageContentTypes" --location "../Kickstart.Entities/{type}/{name}" --include "Kickstart.LandingPage"
```

> **Info:** Find more information about code generation on [this documentation page](https://docs.kentico.com/documentation/developers-and-admins/api/generate-code-files-for-system-objects.md) or [this video](https://docs.kentico.com/guides/development/get-started/generate-code-for-custom-content-and-data-classes.md).

After the command or script above completes, you should see a new **LandingPage.generated.cs** file in the _\~/PageContentTypes/LandingPage_ folder of the _Kickstart.Entities_ project.

In the next step, we'll make some configurations to prepare the application to serve our page.

## Continue learning

When you're ready, move on to the next page: [Configure the project to display content](https://docs.kentico.com/guides/development/developer-kickstart/configure-the-project.md)
