Oqtane 10.1 Released

February 25, 2026

By: Shaun Walker

The 10.1 release is a minor release which includes developer productivity, usability, security and performance improvements. The theme of the 10.1 release was "content management" and there were a variety of powerful new features which were added to the framework to cater to a variety of enterprise content scenarios.

Site Groups

One of the benefits of a multi-tenant architecture is that you have a control plane where you can easily manage all of the tenants and even group some of them together to define advanced workflows or orchestration. In Oqtane 10.1 a new capability has been introduced called Site Groups where multiple sites can be combined to form a group and that group can be assigned a type which defines its behavior. Some examples of behaviors are content synchonization, change detection, and content localization.

Content Synchronization

A common enterprise scenario is having a Staging site and a Production site. All of the content management activities are performed on the Staging site (ie. adding/modifying/deleting pages, modules, content, files, etc...) and once the site has been fully reviewed and approved by a marketing and/or legal team, the content and configuration is replicated to the Production site. Oqtane 10.1 adds a Content Synchronization capability which enables the Staging/Production scenario, as well as other scenarios where you may want to synchronize content across sites (ie. duplication, testing, etc...)

Content Localization

Oqtane has supported localization for the administrative UI since 2021, however it has never supported localization of user contributed content. In Oqtane 10.1 new field has been added to each site so that the content language can now be specified. A common enterprise scenario for global organizations is having a Primary site where all content is managed in a language which is familiar to the marketing team, and then multiple other sites which are essentially replicas, but with the content translated into a different language. Synchronization is still necessary in this scenario when content is modified on the Primary site, however you do not want the content from the Primary site to overwrite the translated content on the other sites. Instead, you simply want to notify the translators who are responsible for the other sites so they can make the changes. Oqtane 10.1 includes a Content Localization group type and Change Detection group type to satisfy these requirements.

Content Versioning

One of the most common mechanisms from managing content in Oqtane is via the HtmlText module. The module has always supported versioning to preserve all changes and enable you to rollback to a prior version. In Oqtane 10.1 the module has been enhanced with improved caching as well as the ability to automatically trim the number of versions which are retained to optimize performance (previously it retained every version indefinitely).

Global Replace

Sometimes there is a need to update content globally across your entire site. This is common when someone's name or job title changes, a product is rebranded, etc... Since a site is comprised of many different types of content it is often a tedious and manual process to make the updates. In Oqtane 10.1 a Global Replace feature was added that allows you to globally update content across an entire site. It has the options you are familiar with from most word processors and supports Site (name, headcontent, bodycontent), Pages (name, title, headcontent, bodycontent, Modules (title, header, footer), Content (via IPortable).

Copy Page

Oqtane has always supported the ability to add or copy a module from another page to the current page. However if your primary goal was to make an exact copy of all of the configuration and content on a specific page, the process was rather tedious. Oqtane 10.1 provides the ability to copy a complete page in a site, including all modules and their content.

Body Content

The Body Content field in the Site and Page management areas was originally added to provide a way for administrators to add custom script elements to the body of a page. In Oqtane 10.1 this has been enhanced to allow for any type of content to be specified. A perfect example where this is useful, is when integrating Google Tag Manager and including the noscript element in the page body.

Site Tasks

A common type of workload in a web application is an adhoc task which is initiated by a user and needs to run asynchronously so that it does not block the UI thread. For these types of tasks it does not make sense to have to create a distinct Scheduled Job which constantly polls and waits for the specific task to occur. Instead, it is much more efficient to have a queue where these tasks can be registered, and have a single dedicated job which executes them in the background. Oqtane 10.1 includes a new ISiteTask interface as well as a SiteTask API to satisfy this requirement.

Other Developer Enhancements

Oqtane 10.1 includes the ability for developers to use standard Blazor page attributes in their Index.razor components to define the page route where the component will be displayed. For example, specifying @page "/test" would automatically include the component within a module on the "test" page within your Oqtane site. Similarly, support was also added for security attributes... for example @attribute [Authorize] indicates that Registered Users should be able to View the page/module. Behind the scenes this new enhancement utilizes the Routable Modules capability which was added almost 3 years ago.

Another enhancement in Oqtane 10.1 is the ability to define the Title property in your Index.razor component (ie. public override string Title => "My Module Name"; ) and it will be discovered at startup and used as the module name. Previously the only way to specify the name of your module was to create a ModuleInfo.cs and provide a Name in the ModuleDefinition. For simple modules it is not always necessary to create a ModuleInfo.cs.

When working with static assets (ie. JavaScript, CSS, or images) there is sometimes a need to force the browser to reload them rather than using the version in the cache. If the static assets are part of a Theme or Module, a unique fingerprint is used to identify static assets. The fingerprint is based on the last modified date of the Theme or Module. In Oqtane 10.1 if you navigate to the Edit UI for Themes or Modules and click Save it will update the last modified date which will result in a change in the fingerprint which will force the browser to reload the related static assets.

Security

This release has been upgraded to the latest .NET SDK version 10.0.3 which includes security patches for any issues identified in prior .NET 10 SDK releases from Microsoft.

Open Source

To date, the open source project has recorded over 3453 pull requests from 58 contributors and has published 65 official releases, which ranks it among the most active open source projects within the .NET Foundation. The Oqtane framework continues to evolve at a rapid pace to meet the needs of .NET developers. The 10.1.0 release is available for download on Github and is running in production at https://www.oqtane.org, https://www.blazorcms.net, and https://www.blazorkit.net.



Share Your Feedback...
Receive Blog Notifications...