Fixing TinyMCE Initialization Failures in Optimizely CMS: A Hidden Pipeline Issue with .NET SDK Versions

Over the past few weeks, several Optimizely CMS projects began experiencing a puzzling failure: XHtmlString fields stopped initializing TinyMCE in the edit interface. The editor simply refused to load, leaving users unable to manage rich text content. This issue surfaced in multiple unrelated projects, so it was clear the root cause wasn’t project-specific code. After …

Continue reading Fixing TinyMCE Initialization Failures in Optimizely CMS: A Hidden Pipeline Issue with .NET SDK Versions

How to Add Multiple Authentication Providers to an Optimizely CMS 12 Site (Entra ID, Google, Facebook, and Local Identity)

Modern websites often need to let users sign in with their corporate account (Entra ID), their social identity (Google, Facebook), or a simple email/password for internal users. If you’re building on Optimizely CMS 12, you can support all of them at once — without breaking the built-in CMS login system. In this post, we’ll walk …

Continue reading How to Add Multiple Authentication Providers to an Optimizely CMS 12 Site (Entra ID, Google, Facebook, and Local Identity)

How to Use IPlacedPriceProcessor in Optimizely Commerce to Preserve Custom Line Item Prices (Donation Example)

Optimizely Commerce 12+ automatically validates line item prices based on catalog data, which can overwrite user-entered prices for donations or custom amounts. To avoid this, you can extend the IPlacedPriceProcessor to preserve user-defined prices by using a custom flag. This method maintains the pricing system's integrity while accommodating unique business models.

Resolving High CPU Consumption Due to Database Queries in Optimizely CMS

Have you ever encountered a scenario where your database server's CPU consumption spiked to 100%, causing major disruptions? In this blog post, we'll delve into a real-life case where a client experienced precisely that, and how we identified and resolved the root cause. The Problem Unveiled Our client, let's call them ClientX, was facing intermittent …

Continue reading Resolving High CPU Consumption Due to Database Queries in Optimizely CMS

Getting Started with Optimizely SaaS Core and Next.js Integration: Deploying to Vercel

This article illustrates the benefits of Vercel as a quick and convenient platform for deploying Next.js applications. It guides through the process of creating a Vercel account, connecting to GitHub, importing a repository, and configuring it for deployment. On successful deployment, Vercel assigns a public domain name, automatically updated with any changes pushed to GitHub.

Getting Started with Optimizely SaaS Core and Next.js Integration: Content Areas and Blocks

The blog guide elaborates on improving content rendering by exploring content areas and blocks within the Optimizely CMS. It walks through setting up a ContentArea, creating blocks, populating content, and integrating these blocks in Next.js. The guide also discusses creating a helper class, a Content Area Factory class, and finally incorporating the factory into the Content Page. This allows dynamic rendering of different block types without extensive modifications.

Getting Started with Optimizely SaaS Core and Next.js Integration: Creating Content Pages

The blog post discusses the creation of additional page types with Next.js and Optimizely SaaS Core. It provides a step-by-step guide on how to create content pages, query content, and build pages in Next.js. The post also explains how dynamic routing and the implementation of a Factory class can streamline the creation process and enhance code maintainability.

Getting Started with Optimizely SaaS Core and Next.js Integration: Testing Content Updates

The blog post discusses the challenges of content updates on a website using Optimizely CMS, Next.js, and the Apollo Client due to Apollo's local caching feature. The local caching enhances application speed but fails to reflect real-time updates. A temporary solution used is the revalidate parameter set to revalidate the cache every 5 seconds, ensuring content updates are reflected. However, this is not ideal for long-term use, and more targeted cache updates are preferable in a production environment.