HomeDev GuideAPI Reference
Dev GuideAPI ReferenceUser GuideGitHubNuGetDev CommunitySubmit a ticketLog In
GitHubNuGetDev CommunitySubmit a ticket


Optimizely SaaS Core is in beta. Apply on [Join the waitlist for SaaS Core](🔗) or contact your Customer Success Manager.

## What is SaaS Core

Optimizely SaaS Core is the fully managed flavor of the Optimizely Content Management System (CMS), that is always up to date, with first-class technology-agnostics APIs providing unbounded digital creativity and unencumbered processes for customers aiming to build headless solutions. If you need the ability to extend or customize the CMS itself or if you prefer rendering content using ASP.NET MVC, PaaS Core might be a better choice see [Optimizely Content Management System (CMS) developer guide](🔗).

## Architecture

The SaaS Core architecture consist of five major components.

  • **CMS Platform** – Drives the solution is at its base. This is the same popular platform the drives the PaaS Core. See [Optimizely Content Management System (CMS) developer guide](🔗).

  • **CMS UI** – Provides the user experience for Content Editors and Administrators; it is the same interfaces used by thousands of editors today. See [Optimizely Content Management System (CMS) user guide](🔗).

  • **Optimizely Identity** – Handles authentication and user management for the UI. See [Opti ID user guide](🔗).

  • **Optimizely Graph** – Delivers content to any frontend with high performance and precision using the GraphQL standard. See [Optimizely Graph developer guide](🔗).

  • **REST API** – Manages resources in the CMS programmatically. See [Introduction to the CMS REST API](🔗).

These components run on the same **Optimizely Digital Experience Platform** ([DXP](🔗)) that is used and trusted by thousands of Optimizely customers.

As a customer you can run and host your frontend on any platform, using any technology that you are comfortable with.

Architecture Diagram showing major components.

## Create an instance

The rest of this topic describes how to create a new Optimizely CMS SaaS Core instance and access content externally.

### Define content

  1. Before you can create your first content item, go to **Settings** > **Content Types** to define the content schema.

  2. Select **Create New** > **Page Type**. 

  3. In the **Create New Page** view, add _examplePage_ to the **Name** field, _Example page_ to the **Display Name** field, and click **Create**. 

  4. Configure a property on your content type by adding a text property called _Heading_. The heading will have **Text Type** `String (\<= 255)` and be placed under the **Content** property group. 

See [content types](🔗).

### Define content using the API

You can also create the same content type programmatically using the API.

### Create and publish a content item

To create a content instance of the new page type that you just created:

  1. Open the **Edit** tab.

  2. Open the content tree in the **Navigation** pane. Use the pin icon to keep it open.

  3. On the **Root** node, select **More** > **New Page**. 

  4. Enter the name of your new page. 

  5. Open the **All Properties** view and edit the **Heading** property. (You can click the pin icon to keep it open.) 

  6. Select **Publish?** > **Publish Changes**. 

### Create a page using the API

You can also create a page using the API. The following will create an example page with the same values as created through the UI above and publish it immediately.

### Define a website and host

This section describes how to define a website.


This step is currently required to ensure that indexing works. But this requirement is expected to be removed during the Beta phase.

  1. Go to **Settings** > **Manage Websites**.

  2. Click **Create Website** and add a name and the URL that you will use for your front end. Select the page you just created as your start page. 

  3. Click **Add Host** and copy the hostname of your instance into the **Host Name** field. The value should not include the scheme ('https\://') or the path. Set **Type** to _Edit_ and **Scheme** to _HTTPS_. 

  4. Click **Create Website** to save.

## Run the Optimizely Graph synchronization job


This step is currently required to ensure that indexing works. But this requirement is expected to be removed during the Beta phase.

Before you can access the content externally, synchronize the content needs to Optimizely Graph.

Go to **Settings** > **Scheduled Jobs** and start the **Optimizely Graph content synchronization job**.

## Retrieve content using Optimizely Graph

Go to **Optimizely Graph** in the top navigation to retrieve our new page using a GraphQL query.

Add the following query in the **GraphiQL** interface:

This displays a result similar to the one below on the right hand side:

See [Get started with Optimizely Graph](🔗).

## Create a complete site

After you see the basic components in play, you can start building your own front end based on Optimizely CMS.

For a demonstration that uses Vercel to host the website, go to Github [episerver/cms-saas-vercel-demo](🔗) and follow the instructions there.