Engineering Blog
Technical insights on Optimizely CMS, Commerce, and the modern .NET ecosystem.
Upgrading Ginbok CMS from Optimizely 12 to 13: A Step-by-Step Developer Guide
Optimizely CMS 13 is currently available as a developer preview. It introduces a more composable, headless-first architecture — and with it, several breaking changes that require hands-on code migr...
Get Shit Done: A Solo Developer's Guide to Shipping Faster with GSD and Claude Code
If you're a solo developer who codes with AI — you've probably hit this wall. You open Claude Code, start describing your feature, write some code, ask for fixes, write more code… and somewhere a...
How I Used AI to Build Ginbok.com — From Idea to Production in My Spare Time
Ginbok.com started as a side project I spun up in my spare time — a personal blog powered by Optimizely CMS 12 on the backend and Next.js 14 on the frontend. What made this build different from my...
Playwright E2E Testing: Writing Resilient Tests for Next.js Apps
Imagine you have just finished building a beautiful web application using Next.js. It looks great, but how do you know it actually works for your users? Manual testing is tedious and prone to human...
How We Built Google OAuth Authentication Between a Next.js Frontend and a Headless CMS Backend
Overview When building a modern content platform, one of the most interesting architectural challenges is connecting a Next.js frontend to a headless CMS backend with a smooth, secure authenticatio...
Modernizing Optimizely CMS: From Razor Templates to Headless Next.js
Introduction For years, Optimizely CMS (formerly Episerver) developers have relied on Razor templates and server-side rendering (SSR) to deliver web content. While robust, the modern web demands th...

Optimizely CMS 13: GEO and the Rise of the AI-First CMS
Over the past few years, we’ve talked a lot about headless, composable architectures, and developer experience. But a much bigger shift is happening quietly in the background: AI is no longer just ...