Axivo CMS Case Study | PHP to Go Migration & Redesign — Lenka Studio
Axivo CMS dashboard preview

Axivo
CMS

Industry

Technology / SaaS

Client

Axivo

Services

UX Design, UI Design, Web Development, API Integration

Technology

Go, Microservices, REST API

Axivo CMS interface overview
Full Stack
Migration from PHP to Go
Monolith → Micro
Architecture redesign
100%
API-first with decoupled frontend & backend
Background

A powerful CMS held back by the architecture it was built on.

Axivo had built a functional content management system over the years, serving its users with core CMS capabilities. But like many products that grow organically, the underlying technology had become a bottleneck.

The platform was built as a PHP monolith — a single, tightly coupled codebase where every component depended on every other component. Adding new features meant risking breakage elsewhere. Performance was degrading as usage grew. And the development team was spending more time working around the architecture than building on top of it.

Axivo needed more than a facelift. They needed a full architectural migration that would set the platform up for the next five years of growth — without disrupting the experience their existing users relied on.

Challenge

Rebuilding the engine while the car is still running.

This was not a greenfield project. Axivo had existing users, existing data, and existing workflows that could not be disrupted. The migration needed to be invisible to end users while fundamentally transforming everything underneath.

  • Language and architecture migration — Moving from PHP to Go required rewriting the entire backend. Every API endpoint, every data model, every business logic function needed to be rebuilt in a new language with a new architectural philosophy.
  • Monolith to microservices decomposition — The tightly coupled monolith needed to be broken into independent, deployable services. This required careful domain mapping to determine where to draw service boundaries without creating unnecessary complexity.
  • Data migration continuity — Existing user data, content, and configurations needed to migrate seamlessly. No data loss, no downtime, no broken references.
  • Frontend redesign without user confusion — The interface was being redesigned alongside the backend migration. The new UI needed to feel modern and improved — not unfamiliar. Users should feel the product got better, not that it became a different product.
  • API-first integration design — The new architecture needed clean, well-documented APIs so the frontend and future third-party integrations could interact with each service independently.
Approach

Decompose, redesign, migrate — in that order.

We approached this project in three parallel workstreams: architecture planning, UI/UX redesign, and phased migration.

Domain-driven decomposition

Before writing any code, we mapped the entire monolith's functionality into logical domains — content management, user management, media handling, permissions, analytics. Each domain became a candidate microservice. We evaluated coupling between domains and defined clean API contracts between services before separating them.

Go backend development

Each microservice was built in Go — chosen for its performance, concurrency handling, and suitability for API-heavy architectures. Services communicate through well-defined REST APIs with clear versioning, making each service independently deployable and testable.

API integration layer

We designed a unified API gateway that routes requests to the appropriate microservice. This layer handles authentication, rate limiting, and request routing — giving the frontend a single, clean interface while the backend services operate independently.

UI/UX redesign

Simultaneously, we redesigned the CMS interface from the ground up. We conducted usability testing with existing Axivo users to understand their workflows, pain points, and mental models. The new design preserved familiar navigation patterns while modernizing the visual language — cleaner typography, better information hierarchy, and faster task completion for common operations like content editing and publishing.

Phased migration

Rather than a risky big-bang switchover, we migrated service by service. Each microservice was deployed alongside the legacy system, with traffic gradually shifted over. This allowed us to validate each service in production before decommissioning the corresponding monolith component.

Result

A modern platform built to scale — without losing a single user along the way.

The Axivo CMS was successfully migrated from a PHP monolith to a Go microservices architecture with a completely redesigned frontend. The migration was completed with zero data loss and minimal disruption to existing users.

The new architecture gives Axivo's development team the foundation they need to ship features faster, scale individual services independently, and onboard new developers without requiring knowledge of the entire system.

The redesigned interface, validated through multiple rounds of usability testing, modernized the product experience while preserving the workflows existing users depended on.

  • Complete backend migration from PHP to Go
  • Monolithic architecture decomposed into independent microservices
  • API-first design enabling clean frontend-backend separation
  • Redesigned CMS interface with improved usability scores
  • Zero data loss and seamless migration for existing users
  • Independent service deployment enabling faster feature releases
“The migration was seamless — our users didn't even notice the transition, but the performance improvements speak for themselves.”
— Axivo Team

Planning a platform migration or architecture overhaul?

We've helped teams move from legacy systems to modern stacks without disrupting their users. Let's talk about your project.

Get a Free Consultation Get a Free Consultation