Follow this article to receive email notifications when new packages are available for Optimizely Content Management System (CMS) 13. Product packages are found on the Optimizely NuGet server and include the following products:
Are you looking for the 2026 CMS 12 release notes or the 2026 CMS (SaaS) release notes?
Release highlights
| Date | Release highlights | Type |
| June 1 |
|
Enhancements and bug fixes |
| May 22 | Released Opal tools for CMS 13 | Enhancement |
| May 4 | Added JavaScript SDK support to CMS 13 | Enhancement |
| April 28 | DXP – Added support for Incremental Static Regeneration (ISR) | Enhancement |
| April 24 | (Beta) Serve clean markdown to AI agents | Beta feature |
| April 22 | EPiServer.CMS.Core 13.0.2 | Bug fixes |
| April 9 | EPiServer.CMS.Core 13.0.1 | Bug fixes |
| April 9 | Optimizely Forms – Version 6.0.0 is now compatible with CMS 13. | Enhancement and bug fix |
| April 7 | Released Opal Chat | Enhancement |
| March 31 | CMS 13 general availability (GA) release | GA release |
May 4
-
Added JavaScript SDK support to CMS 13 – The Optimizely JavaScript SDK provides developers with a modern, React-ready solution for modeling, fetching, and rendering CMS content, reducing manual tasks, accelerating development, and simplifying the creation and maintenance of content-driven experiences. See the JavaScript SDK documentation for more information. See JavaScript SDK.
- Structured content modeling – Define content types, property groups, and display templates for clean, predictable content.
- Simple content fetching – Fetch, filter, and sort CMS content with built-in utilities and webhook support.
- Modern rendering – Render pages, experiences, and rich text with live preview and DAM asset support.
- Developer-friendly tooling – Full TypeScript support with autocomplete, error handling, and detailed logs.
- Faster workflows – CLI tools sync content and content types directly from the CMS.
April 24—Beta feature
- (Beta) Markdown for AI agents – Deliver a clean markdown version of your pages to AI agents at the edge, instead of full HTML. Because AI agents process markdown more efficiently than HTML, this reduces ingestion cost and improves the accuracy of AI-generated responses that reference your content. The feature does not affect the page experience for human visitors.
CMS Core—EPiServer.CMS.Core
June 1—13.1.0
Enhancements
-
Expanded property type mappings for external content – Property type mappings for external content sources are now more flexible when you use external content without modifying existing content types. Text properties (
ShortString,LongString) can now map toLongString,XHTMLString,LinkItem, andURL. Number properties (Integer,Decimal) can map toDecimal,ShortString,LongString, andXHTMLString. Content reference properties (ContentReference,ContentReference<T>) can map toLinkItem,URL, andContentReference. These rules also apply to list types. - Applications endpoints in CMS REST API now generally available – The experimental designation has been removed from the Applications endpoints in the CMS REST API.
-
Added external URL indexing for DAM assets in LinkItem properties – When DAM assets are referenced in
LinkItemproperties with the_AssetItemconfiguration, Optimizely Graph now indexes the external URL from_AssetItem.url. Theurl.defaultandurl.hierarchicalfields are now populated with the external DAM asset URL instead of the internal CMS URL. This behavior applies only to sites using the new_AssetItemDAM configuration. Existing sites with legacy DAM configuration are not affected. -
Added VisibleInMenu to the Optimizely Graph schema – The
VisibleInMenuproperty (displayed as Display in Navigation in the CMS edit UI) is now indexed in the Optimizely Graph schema and queryable for all page types. To hide it globally, setCmsFeatureOptions.SectionsVisibility.VisibleInMenuPropertyin your startup configuration. -
Released Graph Conventions API for CMS 13 – Use the Conventions API to customize how content is indexed in Optimizely Graph for CMS 13. Exclude content types from indexing or add computed fields to the Graph schema. Configure it using the
conventionsBuilderparameter onAddContentGraph().
Bug fixes
- CMS-38305 – Fixed an issue where the preview token was not refreshed when switching between On-Page Editing, Visual Builder, and Preview modes, which caused "Not authorized" errors when the token expired.
-
CMS-50924 – Fixed an issue where a URL hash fragment entered in the Remaining URL field of a
LinkItemwas excluded from the URL indexed in Optimizely Graph. -
CMS-51017 – Fixed an issue in the Graph C# SDK where GraphQL queries generated using
OrderBy()on metadata properties such asStartPublish,Status,Variation, andLanguagewere invalid and threw an exception when executed. The generated queries now correctly nest the sort field under_metadata. -
CMS-51656 – Fixed an issue in multisite setups where block content stored in per-application asset folders had null values for
_metadata.url.baseand_metadata.url.defaultin Optimizely Graph queries, making it impossible to filter blocks by site. -
CMS-51671 – Fixed an issue where synonym expansion was not available when using full-text search in the Graph C# SDK. The SDK now supports synonyms through the
BuildFilter<T>()API with aSynonymSlot. - CMS-51700 – Fixed a performance issue in the Graph sync event handler where a redundant synchronous content comparison check caused UI slowdowns during content publish.
-
CMS-51711 – Fixed an issue where calling
Facet(x => x.Name)in a Graph C# SDK query threw anInvalidFacetFieldExceptioneven though theNameproperty supports faceting in Optimizely Graph. -
CMS-51811 – Fixed an issue in CMS 13 where a site could not start when the database was configured in ReadOnly mode using the
DatabaseModesetting inappsettings.json. - CMS-51841 – Fixed an issue where custom localization providers were not applied to property captions and help text on content types. Property labels and help text are now resolved from the highest-priority registered localization provider.
-
CMS-51845 – Fixed an issue in the Graph C# SDK autocomplete validator where
ContentReference,LinkItem, andLinkItemCollectionproperties incorrectly threw an exception even though these types support autocomplete in the Optimizely Graph schema. Also fixed an issue where string properties without[IndexingType(IndexingType.Queryable)]were silently accepted but failed at the Graph gateway. - CMS-52263 – Fixed an issue where upgrading from CMS 12 to CMS 13 could fail when the database contained content type names with characters that CMS 13 considers invalid, such as non-ASCII characters, hyphens, or dots. The upgrade process now includes a migration step to sanitize these names. Content type name validation has also been updated to work correctly regardless of SQL database collation.
April 22—13.0.2
Bug fixes
- CMS-49168 – Fixed the issue where content type conversion did not update the soft link table, which caused a database constraint error and prevented the site from starting after a converted content type was removed.
- CMS-50885 – Fixed the issue where querying Optimizely Graph for a page with a block list property bound to an external content source returned null instead of the expected external content values.
- CMS-50994 – Fixed the validation error that occurred during startup when an automatically created app name contained invalid characters, such as dashes.
-
CMS-51112 – Fixed the issue where a custom dijit property editor that did not implement the
onChangemethod failed to render in the Visual Builder. - CMS-51171 – Fixed the site startup failure that occurred when an add-on or project containing custom property definition types was uninstalled and then reinstalled.
- CMS-51200 – Fixed the issue where the View on website link appeared in the Options menu for root and block content items, where it is not applicable.
-
CMS-51273 – Fixed the issue where a language-shared list property did not display its value in translated language versions after the
[CultureSpecific]attribute was removed from the property definition. -
CMS-51481 – Fixed the site definition migration failure that occurred when a site definition name did not conform to the required naming format. The migration now uses the site's
UniqueIdinstead of its display name.
April 9—13.0.1
Bug fixes
- CMS-49431 and CMS-50893 – Fixed the issue where property values in deeply nested inline blocks were not persisted when the nesting was three or more levels deep.
-
CMS-50556 – Fixed the missing context menu icon for
IList<Block>items in All Properties mode. -
CMS-50716 – Fixed the syntax error that occurred when using
Contains,StartsWith, orEndsWithinFilterBuilderdue to a naming conflict with LINQ. These methods are renamed toFilterContains,FilterStartsWith, andFilterEndsWith. -
CMS-50752 – Fixed the issue where URL fragment anchors (for example,
#section) were stripped from shortcut target links in rich-text and link fields. - CMS-50870 – Fixed the 500 error that occurred when deleting a content source that was actively used in a content binding. The API now returns a 400 status code with a descriptive error message.
- CMS-51034 – Changed the default behavior of the Create a new block option in content area properties to create inline blocks instead of shared blocks. Inline blocks are stored directly on the page, which reduces shared block sprawl in the Assets pane and makes content easier to manage.
Optimizely Forms—EPiServer.Forms
April 9—6.0.0
Enhancement
Made
EPiServer.Formsversion 6.0.0 compatible with CMS 13. See Optimizely Forms for CMS 13.
Bug fix
CMS-50238 – Fixed an issue where an exception was thrown during the import and export flow for newly created content due to security settings not being properly initialized. This fix ensures security is correctly set when content is saved during this process, and prevents unexpected errors when importing or exporting content that includes form field dependencies.
DXP
April 28
Enhancement
- Added support for Incremental Static Regeneration (ISR), which lets you update individual pages without rebuilding your entire site. ISR reduces build times, improves performance for large or frequently updated sites, and reduces infrastructure load. See Next.js ISR caching and Optimizely Graph webhooks.
Optimizely Opal chat—Cms.OpalChat
April 7—2.0.0
Released the Optimizely.Cms.OpalChat 2.0.0 NuGet package that includes Opal Chat, so editors can access AI-powered assistance without leaving CMS.
Optimizely Opal tools—Optimizely.Cms.Opal.Tools
May 22—13.0.0
Released tools to help you create and manage content and content types, optimize for search engines, and improve AI discoverability. See Available tools for CMS 13.
-
paas_cms_list_content_types– Lists all content types in CMS. -
paas_cms_get_content_type_details– Retrieves detailed information about a specific content type, including all property definitions with types, validation rules, and group assignments. -
paas_cms_create_content_type– Creates a new content type with a key, display name, base type, and property definitions. -
paas_cms_update_content_type– Modifies an existing content type's display name, description, or property definitions. -
paas_cms_delete_content_type– Deletes a content type from CMS. The content type must not have any existing content instances. -
paas_cms_list_property_groups– Lists all property groups in the CMS with their names and sort order. -
paas_cms_create_property_group– Creates a new property group with a unique key and optional sort order. -
paas_cms_get_content_data– Retrieves a content item's data including all non-metadata properties. Fetches a specific version or the latest published version. -
paas_cms_update_content_item– Updates properties on a content item. Accepts a JSON object of property name and value pairs. If nocontentkeyis specified, creates a new content item as a draft. Returns acontentKey(GUID) andcontentVersionfor subsequent operations. -
paas_cms_delete_content_item– Moves a content item to the waste basket. An editor can restore the item. -
paas_cms_publish_content_item– Publishes a content item immediately or schedules it for a future date and time. Requires a content version number. -
paas_cms_create_content_variation– Creates a new locale variation of a page or experience content item. -
paas_cms_get_content_preview_url– Generates a preview URL for a specific content version, letting Opal fetch and analyze the rendered HTML. -
paas_cms_seo_analysis– Analyzes content SEO performance and provides AI-powered recommendations. -
paas_cms_seo_edit– Applies SEO recommendations to CMS content. -
paas_cms_geo_analysis– Performs an AI-powered audit of content for LLM discoverability. -
paas_cms_geo_apply– Applies JSON-LD schema templates to the content'sJsonLdTemplatesproperty. Creates a new draft version with the schema markup.
Please sign in to leave a comment.