Yurii Shunkin
Yurii Shunkin
On-Demand Webinar "From Traditional Automation to AI Agents: What fits your project best"
Contact us

SaaS Stakeholder Management Software

Legacy software modernization and reengineering that helped a UK-based SaaS solution provider significantly improve performance and accessibility

ABOUT
the project

Client:

Customer Management SaaS Solution Provider

Company Size:

50+ Employees

Industry:

Information Technology

Technologies:

Microsoft Azure

.NET

ASP.NET Web API

Blazor

Azure AI Foundry

OpenAI

Docker

SendGrid

 

Leobit transformed the UK’s leading stakeholder management software provider by migrating their complex, legacy platform to a secure, scalable, and future-proof cloud-native solution. This ambitious modernization initiative helped our customer move to the cloud without disrupting daily operations, improve business resilience, and support future growth and service expansion.

From the very beginning, we aimed to modernize the client’s monolithic WebForms system without disrupting their business operations. By introducing the Strangler Facade, adopting a vertical slice architecture in .NET 9, and using Blazor for the front end, we enabled a safe, incremental migration. This foundation helped our customer reduce operational expenses and simplify support and maintenance.

Vitalii Datsyshyn

Solutions Architect at Leobit

Team

Customer

Our customer is the UK’s leading stakeholder management software provider trusted by both private and public sector organisations. It provides organizations with the tools to support all stakeholder engagement needs, issues management and decision making.

Business Challenge

The customer was constrained by a legacy monolithic ASP.NET Web Forms application with a single-tenant architecture. For more than 130 clients, they had to maintain over 260 separate environments (production and staging), resulting in significant infrastructure overhead and inefficiencies.

Because all business logic, UI, and data access were tightly coupled in the monolith, even small updates were slow, risky, and expensive to deliver. The single-tenant model also made scaling difficult and costly, limiting the company’s ability to grow efficiently. In addition, the outdated architecture hindered the integration of new technologies, raised concerns about performance and security, and left accessibility below modern standards.

Why Leobit

The client initially engaged Leobit to perform a technical audit of their legacy stakeholder management platform. Our team carried out a comprehensive assessment of the system’s architecture, performance bottlenecks, and modernization opportunities. Instead of recommending a risky full rewrite, we proposed a phased migration strategy supported by clear module dependency mapping, practical proofs of concept, and a strong focus on minimizing disruption to ongoing business operations.

What stood out to the client was not only the technical depth of our recommendations but also our work ethic, transparency, and collaborative approach. We realistically outlined possible risks and suggested several scenarios for overcoming them. Impressed by the clarity of our suggestions and the professionalism of our team, the client decided to move forward with Leobit as a long-term technology partner.

Project
in detail

Leobit rearchitected the customer’s platform into a modern, cloud-ready system capable of handling rapid growth, high availability, and advanced integration needs.

Project in detail

We had to devise a strategy that allowed both the old Web Forms app and the new modules to share authentication seamlessly. It allowed a user to log in only once and have access to both applications. Our solution involved developing a centralized identity provider and implementing token-based authentication that both systems could understand and trust.

In some instances, to provide a smoother user experience during the transition, we used iframe integration, embedding old WebForms modules within the new Blazor application. This required careful handling of security protocols and inter-frame communication.

The Blazor-based front end and modular back end enabled a more intuitive interface, smoother integration of new capabilities, and 6x faster response times. For instance, a query with two filter criteria took the old application 8 seconds to process, while the new application returned results in just 1.34 seconds. A more demanding query resulted in a timeout error on the old application after 100 seconds. The new application handled the same query successfully in only 3.86 seconds.

Modernization demonstrated a significant improvement in usability and compliance with accessibility standards. Using Lighthouse audits, the new pages consistently achieved a maximum score of 100, while the same legacy pages ranged from 68 to 93.

By moving from single-tenant environments to multi-tenancy, the client reduced infrastructure management costs and improved scalability. Our solution is projected to lower monthly infrastructure expenses by up to 80%, delivering significant long-term savings.

Working with the SaaS platform
Early migration phase

Early migration phase

The first step in the modernization was introducing a Strangler Facade. This software pattern sat between the legacy Web Forms application and the new front end, intercepting requests and routing them either to the old system or to newly developed modules. This approach enabled a phased, low-risk migration, thereby avoiding the risks associated with a full “big bang” rewrite.

To guide the process, we created a module dependency graph to determine the optimal migration order and prioritized critical or less dependent modules first. In parallel, we began developing a new ASP.NET Web API back end with a vertical slice architecture and a Blazor front-end application.

Data migration was a critical consideration. Continuing with the existing database risked inheriting outdated schema and performance issues, while introducing a new database added complexity with synchronization between old and new modules. Following thorough analysis, we decided to refactor the current schema, add new tables where needed, and migrate all databases to Azure SQL with Elastic Pool. This approach ensured client data remained securely isolated while improving scalability and performance.

Later migration phase

Later migration phase

In the later migration phase, we continued the iterative modernization and gradually moved more Web Forms modules to the ASP.NET Web API back end and Blazor front end. With each module transition, the Strangler Facade was updated to route more requests to the new components and fewer to the legacy system. In other words, it was progressively “strangling” the old application and reducing its active responsibilities.

A key lesson from this phase was the importance of simplicity and incremental delivery. Rather than overcomplicating the architecture or adopting every new technology at once, we focused on building clean, maintainable modules that delivered tangible value quickly.

The migration process also presented an opportunity to enhance functionality, compliance, and accessibility. We didn’t merely lift and shift existing features; wherever possible, we improved workflows, optimized performance, and updated interfaces to meet modern standards. By combining careful planning with iterative development, this phase laid the foundation for a fully modern, scalable, and user-friendly platform.

Migration strategies used: replatforming, and rebuilding

Migration strategies used: replatforming, and rebuilding

We began modernizing the customer’s platform by moving from Azure-hosted virtual machines to cloud-native services, replatforming workloads to Azure App Service and Azure SQL. This approach reduced administrative effort, enhanced reliability, and optimized costs. It was particularly suitable for smaller, isolated services that needed updates to support modern libraries.

Rebuilding was the primary strategy we employed, with a focus on the core monolithic Web Forms application. We migrated it to a modular monolith back end with a vertical slices architecture while maintaining existing functionality and developing new features. Our experts replaced modules incrementally, which allowed users to continue operating within a single interface, with old and new components running side by side. Over time, the legacy system was fully decommissioned and substituted by a modern, scalable, and maintainable platform with a multi-tenant architecture and enhanced authentication.

Leobit experts designed and implemented a cloud-native architecture on Microsoft Azure. We configured Azure Front Door to route and balance user requests to either the Static Web App or the App Service. The Static Web App delivers front-end content, while the App Service handles APIs and business logic. To ensure the application remains operational even in the event of a zone failure, we deployed critical services across Azure Availability Zones. This multi-zone, managed setup achieves up to 99.99% SLA for core services. We implemented centralized authentication and securely stored secrets and certificates in Azure Key Vault to ensure access is granted only to authorized services. Leobit also configured Azure Monitor to capture logs and performance metrics for observability and troubleshooting. The App Service interacts with Azure SQL and Blob Storage for structured and unstructured data, and we integrated Azure AI Foundry with a separately deployed OpenAI model to enable advanced AI-driven functionality.

Azure-based cloud-native architecture development

Leobit experts designed and implemented a cloud-native architecture on Microsoft Azure. We configured Azure Front Door to route and balance user requests to either the Static Web App or the App Service. The Static Web App delivers front-end content, while the App Service handles APIs and business logic. To ensure the application remains operational even in the event of a zone failure, we deployed critical services across Azure Availability Zones. This multi-zone, managed setup achieves up to 99.99% SLA for core services.

We implemented centralized authentication and securely stored secrets and certificates in Azure Key Vault to ensure access is granted only to authorized services. Leobit also configured Azure Monitor to capture logs and performance metrics for observability and troubleshooting. The App Service interacts with Azure SQL and Blob Storage for structured and unstructured data, and we integrated Azure AI Foundry with a separately deployed OpenAI model to enable advanced AI-driven functionality.

Technology Solutions

  • Using the Strangler Facade pattern to enable gradual, low-risk migration from legacy Web Forms modules to a new system.
  • Migration from ASP.NET Web Forms to ASP.NET Web API (.NET 9) with a modular monolith using vertical-slice architecture.
  • Implementing a centralized identity provider with token-based authentication for secure, seamless login across old and new modules.
  • Performing integration with Azure AI Foundry, using a separately deployed OpenAI model to introduce intelligent, AI-powered features and enable future innovation.
  • Using Microsoft Azure native services to ensure optimized, secure, multi-tenant data management.

Value Delivered

  • Moving from a single-tenant to a multi-tenant architecture is projected to lower monthly infrastructure costs by up to 80%.
  • Leveraging Azure’s cloud-native services, including App Service, Elastic Pools, and Front Door, the platform now scales seamlessly to support customer growth while achieving up to 99.99% availability through multi-zone redundancy.
  • Improved accessibility: Lighthouse audits scored new pages at 100, compared to 68–93 on legacy pages.
  • 6x faster response times thanks to the Blazor-based front end and modular back end.