World is now on Opti ID! Learn more

John-Philip Johansson
Nov 19, 2019
  159
(0 votes)

Introducing Episerver CMS Labs

Episerver CMS Labs are CMS add-ons that solve a big problem in a small way, where the "happy paths" of a user flow are tested and fixed, while other paths and scenarios are left aside. The Labs are open sourced on Episerver's GitHub account so that you can contribute fixes to the scenarios that block your use cases. The main purpose of Labs is to validate potential features before implementing them fully and supporting all of Episerver CMS' complex features.

Episerver CMS is a complex application. Any feature added needs to work together with all existing features. This creates a lot of moving parts that must be taken into consideration when designing a new feature; it has to work from a user experience point of view as well as a technical architecture one. Supporting language management, content approvals, and projects, are the three most time-consuming aspects of CMS to support in any new feature.

The release method, by publishing a NuGet package that needs to be installed, means that clients tend to be some minor version away from the latest. This means some feedback on anything new can be very quick from our engaged community, especially EMVPs, which is great, but the main work in form of bugs and support cases, which might show us how a feature should have been arrive very late - often when we've moved on to another feature. This also means that we need to release without any known bugs, as users will have to live with them until their installation is upgraded.

Those two aspects mean that when we need to tackle a very big problem, it is hard for us to validate our ideas "in the wild" without doing a fully fleshed-out and working solution. To counter this, the Episerver CMS UI team is experimenting with "Labs" add-ons. These are open sourced add-ons released on the Episerver NuGet feed, and the main user paths are verified with QA, but leaving out most complex scenarios and edge cases. They will focus on a complex usage area each, and can include one or more proposed solutions. We encourage the use of these add-ons, and appreciate feedback. Ultimately, we will gather usage data from them to properly validate which solution will make it into the main CMS UI product, or released as a fully-supported CMS add-on.

Our first Labs is Block Enhancements (NuGet, blog post on v0.1.0) and has been well received, from what we currently can gather. The download numbers are respectable for such a new package. :) Each release has been well met in the comments section (blog posts on v0.2.0, v0.3.0, v0.4.0, and v.0.5.0). It focuses on simplifying block publishing, and shows seven (!) ways to tackle that complex usage. Without supporting Content Approval sequences and Projects... Now we're reaching a point where we need to understand which of these seven ways should be supported fully, as supporting all of them would take a very long time and potentially bloat the user experience, as we do not know how they overlap or replace each other in a user's regular work day. We are still considering the different ways we can get this understanding. Either way, it's an exciting time!

For Labs to be a succesful way for us to validate solutions, they need to be used. So download EPiServer.Labs.BlockEnhancements now and help us out in the GitHub repo!

Legal notice

There are a few things you should expect from each release:

  • Functionality may be added, removed, or change.
  • Labs projects have not been through the same quality assurance process as the versioned products and, in some cases, may show unexpected behaviour.
    • The Episerver CMS UI team notes that:
      • the scenarios in the Readme of each CMS Lab's repo will be verified and supported us
      • the Labs add-on may or may not work with other add-ons, we are not testing them
      • any such issues found, such as scenarios outside of the the Readme, can be fixed by the community by submitting a Pull Request on the Github repo
  • The software may not work on all environments.
    • The Episerver CMS UI team notes that:
      • Although it should work on base installations of CMS UI in Chrome and Firefox
  • There is no Episerver support; however, we will gratefully receive all feedback
    • The Episerver CMS UI team notes that:
      • Issues created on Github will be triaged, and if accepted, fixed by us

Existing packages with the same name

There are some packages that have been previously released with the Labs monicker, such as "EPiServer.Labs.LanguageManager" and they will still be around. The CMS UI team will make it clearer by prefixing future packages with "EPiServer.CMS.Labs", and consider republishing "EPiServer.Labs.BlockEnhancements" as "EPiServer.CMS.Labs.BlockEnhancements".

Nov 19, 2019

Comments

Please login to comment.
Latest blogs
Make Global Assets Site- and Language-Aware at Indexing Time

I had a support case the other day with a question around search on global assets on a multisite. This is the result of that investigation. This co...

dada | Jun 26, 2025

The remote server returned an error: (400) Bad Request – when configuring Azure Storage for an older Optimizely CMS site

How to fix a strange issue that occurred when I moved editor-uploaded files for some old Optimizely CMS 11 solutions to Azure Storage.

Tomas Hensrud Gulla | Jun 26, 2025 |

Enable Opal AI for your Optimizely products

Learn how to enable Opal AI, and meet your infinite workforce.

Tomas Hensrud Gulla | Jun 25, 2025 |

Deploying to Optimizely Frontend Hosting: A Practical Guide

Optimizely Frontend Hosting is a cloud-based solution for deploying headless frontend applications - currently supporting only Next.js projects. It...

Szymon Uryga | Jun 25, 2025

World on Opti ID

We're excited to announce that world.optimizely.com is now integrated with Opti ID! What does this mean for you? New Users:  You can now log in wit...

Patrick Lam | Jun 22, 2025

Avoid Scandinavian Letters in File Names in Optimizely CMS

Discover how Scandinavian letters in file names can break media in Optimizely CMS—and learn a simple code fix to automatically sanitize uploads for...

Henning Sjørbotten | Jun 19, 2025 |