Get started with SaaS Core
Beta
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.

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
- Before you can create your first content item, go to Settings > Content Types to define the content schema.
- Select Create New > Page Type.
- In the Create New Page view, add examplePage to the Name field, Example page to the Display Name field, and click Create.
- 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.
POST https://example.com/_cms/v1/contenttypes
Content-Type: application/json
{
"key": "examplePage",
"baseType": "page",
"displayName": "Example page",
"properties": {
"heading": {
"type": "string",
"displayName": "Heading",
"group": "information"
}
}
}
Create and publish a content item
To create a content instance of the new page type that you just created:
- Open the Edit tab.
- Open the content tree in the Navigation pane. Use the pin icon to keep it open.
- On the Root node, select More > New Page.
- Enter the name of your new page.
- Open the All Properties view and edit the Heading property. (You can click the pin icon to keep it open.)
- 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.
POST https://example.com/_cms/v1/content
Content-Type: application/json
{
"key": "1466b673c02d432ea5d23b62f56afb55",
"contentType": "examplePage",
"locale": "en",
"container": "3fa7d9e7877b11d3827c00a024cacfcb",
"status": "published",
"displayName": "Hello world!",
"property": {
"heading": "Hello, everyone!"
}
}
Define a website and host
This section describes how to define a website.
Beta
This step is currently required to ensure that indexing works. But this requirement is expected to be removed during the Beta phase.
- Go to Settings > Manage Websites.
- 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.
- 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.
- Click Create Website to save.
Run the Optimizely Graph synchronization job
Beta
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:
{
examplePage
{
items
{
Name,
Status,
Heading
}
}
}
This displays a result similar to the one below on the right hand side:
{
"data": {
"examplePage": {
"items": [
{
"Name": "Hello World!",
"Status": "Published",
"Heading": "Hello, everyone!"
}
]
}
},
"extensions": {
"correlationId": "814a782fbff65d32",
"cost": 23,
"costSummary": [
"examplePage(23) = limit(20) + fields(3)"
]
}
}
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.
Updated about 2 months ago