Skip to main content

David LewisDirector - Optimizely CMS

Blogs from this Author

Woman Hands With Pen Writing On Notebook In The Office.

11 Considerations for Building Optimizely CMS Content Types

One of the things that I love to see is developers that take an extra interest in the user experience for the content authors.  Oftentimes, it is that extra attention to detail that makes a project successful. Creating content types that are friendly for editors is an essential aspect of managing a successful CMS. A […]

Istock 1194783078

Seven Reasons for Google Optimize Customers to Move to Optimizely Experimentation

If you are a Google Optimize customer, then September 30th is an important date for your organization. Google  Optimize and Optimize 360 will no longer be available after this date. Businesses that rely on Google Optimize will have to find a new solution and should start researching alternatives. Optimizely, the leader in experimentation, is the […]

A man and woman collaborating and discussing work on a computer

Optimizely CMS: Content Delivery API – The Case of the Duplicate API Refresh Token

A couple of weeks ago I came across an interesting case where a mobile app was calling into the Content Delivery API to retrieve some data, but the calls would fail with a 406 HTTP Status Code.  After some investigation, we found that the duplicate refresh tokens were being added to the system.  Revoking the […]

tiethnic colleagues sitting at desk looking at laptop computer in office. stock photo

Optimizely CMS 12 – Implementing a Reverse Proxy with YARP

The last few CMS implementations that I’ve done have required reverse proxies to surface external content.  By the time I had completed my last CMS 11 project, I was a pro with reverse proxies. And then CMS 12 came and changed everything.  CMS 12 moved to .Net Core on Linux web apps. This change removed […]

Istock 491218012

Optimizely Integration within Episerver – Part 2: Full Stack A/B Test

This is the second in a series of posts that look at some potential ways that the Optimizely and Episerver products can be integrated.  In this post we will be updating the code that was created in the first article to include a Full Stack A/B test to determine if an increase in price would affect […]

Optimizely Integration within Episerver – Part 1: Full Stack Feature

With the rebranding of Episerver to Optimizely there have been several questions floating around about the Optimizely stack and how it can be used in a traditional Episerver project. This is a quick four part series where we look at some potential ways the products can be integrated.  Here are the links to all of the […]

Episerver: Add a Copy Preview Link to the Navigation Pane

Recently a friend posted on the forums about the idea of being able to share a preview link to an item. While the solution outlined below may not meet his exact needs, it illustrates how easy it is to tap into Episerver plug-in areas to and add additional functionality to the editing interface. There are […]

Istock 939030682

Episerver Authentication with multiple Azure AD Instances

I recently came across a project where there was a slightly different twist for the site’s authentication needs.  For this project the company had three different authentication scenarios that needed to be covered. Log in via a primary Azure AD tenant. This Azure AD instance was set up with application roles and the users were […]

Office Olympics games of chairs

Episerver: How to Create a Language Selector for Multilingual Sites

Multilingual sites require a way for end-users to switch from one language to another.  This article takes a quick look at the key components for creating a language selector, or drop-down, in Episerver.   The Episerver Methods for the Language Selector Displaying your list of languages and displaying the currently selected language depends on the […]

Episerver: How to quickly create environments with Azure CLI

Many of the Episerver projects that we work on have at least one Azure environment.  This ranges from production environments to integration environments where continuous deployments occur. We needed a way to stand up new environments quickly and be able to replicate the creation of new environments as needed. We had previously accomplished this using […]