Solutions Architect

Modernizing ABC Without Throwing Away Their Existing CMS Investment

ABC is exactly the type of legacy modernization challenge I solve: keep what still creates value, remove what blocks scale, and re-architect the system for secure, modern delivery.

3 layersModernization Pattern
M360 + NodeJs servicesCore Runtime Shift
Umbraco (.NET + SQL)Legacy Preserved
Elasticsearch-backed APISearch/Data Runtime

American Botanical Council

A legacy Umbraco CMS modernization program that preserved years of investment while unlocking scalability, security, and syndication.

ABC operated a legacy Umbraco-centric stack (.NET + SQL Server) that had served the organization for years, but critical growth capabilities were blocked by architectural constraints.

I designed a modernization path that did not touch the old Umbraco operational workflow. Instead, we deployed M360 + microservices next to it, solved the SSO pain point, and introduced multitenant runtime controls.

The result was a practical transformation: widget-based syndicated distribution, ES-backed subset retrieval by tenant and subscription, better security posture, and a platform that evolves without sacrificing prior investment.

Challenge Landscape

  • Members had to authenticate across disconnected systems, creating a poor user journey that drove users mad.
  • Legacy third-party membership constraints blocked proper SSO behavior across ABC-owned websites.
  • MFA could not be introduced reliably due to platform and rendering limitations.
  • Syndicating a subset catalog to partner-owned websites was restricted by server-side architecture constraints.
  • High traffic demanded oversized server resources, driving unnecessary monthly infrastructure cost.

Core Platform Components

Layer 1 - VueJS Channels and Syndicatable Widgets

Rebuilt websites as modern VueJS frontends and introduced a second distribution for syndicatable widgets.

Widgets were shipped to ABC customers and hosted directly on customer websites.

Each channel uses a unique key and communicates through the multitenant gateway with tenant-aware controls.

Layer 2 - Gateway and Custom Microservice Runtime

The gateway authorizes keys, injects configuration context, and enforces traffic management, security, and throttling.

The microservice uses configuration to decide which drivers/models to load for each tenant and subscription context.

This layer solved the SSO pain point and enabled MFA pathways with modular multi-driver architecture.

Layer 3 - Umbraco Focused on Back Office

Umbraco remained untouched as the editorial engine, preserving ABC's existing .NET + SQL Server investment and operator workflow.

Content created in Umbraco was synchronized to Elasticsearch for fast, feature-rich retrieval.

API responses returned controlled data subsets from Elasticsearch, not direct runtime reads from Umbraco.

ABC high-traffic architecture diagram after modernization

High-Traffic Architecture Blueprint

This diagram captures the final layered architecture: modern frontend channels and widgets, gateway-controlled service runtime, and streamlined back-office CMS support designed for secure scale.

Strategic Response

  • Implemented a three-tier modernization strategy to decouple delivery channels from legacy runtime constraints.
  • Rebuilt frontend channels in VueJS, including syndicatable widgets shipped and hosted on ABC customer websites.
  • Placed M360API Gateway in front of custom microservices to handle authorization, multitenancy, security, throttling, and configuration-driven driver loading.
  • Added modular multi-driver and multi-model layers inside microservices for legacy membership systems and future extensibility.
  • Synced Umbraco-origin data into Elasticsearch so API responses were served from ES using tenant, subscription, and access-policy filters.
  • Containerized the solution for Docker/Kubernetes-ready deployment and autoscaling support.

Platform Evolution Timeline

Layer 1 - VueJS Frontend Channels

Redesigned websites and widgets as dynamic frontend channels, each securely connected to the multitenant gateway using dedicated keys.

Layer 2 - M360API + Custom Microservice

Introduced a gateway-driven service runtime with caching, security controls, membership integration, and support for SSO/MFA-ready capabilities.

Layer 3 - Streamlined Umbraco Back Office

Retained Umbraco for editorial and CMS operations while exposing APIs that feed modern channels through the microservice layer.

Key Architectural Decisions

  • Re-architected the application into a three-layer model: VueJS channels, M360 + NodeJs microservice runtime, and untouched Umbraco back office.
  • Introduced a multitenant API Gateway to centralize authorization, traffic management, throttling, and secure request orchestration.
  • Built a custom NodeJs microservice with MongoDB-backed operational models, multi-driver loading, and legacy membership integration.
  • Synced Umbraco SQL data to Elasticsearch and served catalog/search subsets from Elasticsearch instead of querying Umbraco directly at runtime.

Measured Impact

  • Resolved the SSO login issue that was creating major user frustration and repeated login friction.
  • Enabled MFA-ready flows and syndication capabilities previously blocked by legacy constraints.
  • Preserved prior CMS investment while modernizing user-facing architecture and runtime operations.
  • Reduced infrastructure strain through containerization and scalable deployment options.
  • Created an extensible platform foundation for future integrations and growth paths.

If your legacy CMS is slowing business growth, I design modernization paths that keep critical investments alive while introducing the architecture needed for secure, scalable evolution.

Incent GmbH

A full-stack reconstruction of a legacy employee-benefits platform into a scalable, modern architecture built for growth.

>