Portrait of web developer Ingo Steinke in Berlin

Case Study: Migration, Modernization, and Maintenance of Legacy Code Projects

As a web developer, I have to deal with different types of legacy code projects. Many web projects perform their tasks quietly and unchanged for a long time until current requirements arise that cannot be implemented without reprogramming. That can be business, legal or technical requirements, for example a security related software update that is incompatible to the existing code.

But even in active projects, changing requirements may make it necessary to modify the code base and business logic during ongoing operations without compromising existing functionality. In the case study below I will highlight a specific project of that kind and compare the solution approach with other, similar, cases from my professional practice.

Native Web Themes

  • Role: Senior Frontend Developer
  • Industry: Online Services (B2B)
  • Time: 01/2025 – 06/2025
  • Project: Front-end web development to replace existing legacy themes and plugins with a native theme featuring dynamically adapted designs and tracking for conversion rate optimisation in a complex multi-domain setup.
  • Tech Stack: PHP, JavaScript, CSS, Cypress, WordPress, Docker
Challenge

The prototype, which was already used by end customers, did not scale as expected. Dependency on numerous third party systems increased maintenance effort and risks du to frequent updates and manual configuration steps. Memory consumption and loading time were not yet optimal either.

All settings should be controlled by configuration or parameters, to allow development to scale for a large number of domains and portals, secured by automated tests. Additional display variants and slots for external content should be added at short notice, and their calls sent to an existing tracking layer.

  • Reduce dependencies
  • Optimize performance
  • Speed up loading time
  • Minimize memory consumption
  • Facilitate maintenance
Implementation

As the existing solution already used WordPress in Docker containers, we decided not to change this platform, so that existing content could remain and we could easily switch between the old and the new frontend.

In addition to the existing monitoring of published websites, we added frontend tests with Cypress to ensure crucial requirements already during the development process.

  • Documentation of existing and new requirements
  • Development of a native web theme without dependencies on additional plugins
  • Frontend tests to ensure crucial requirements
  • New websites going live with the new web theme
  • Switch existing websites to the new web theme step by step
Success

After just four weeks, we were able to successfully deploy a functional prototype of the new theme. In the following months, we added new features that would not have been able to implement efficiently with the previous solution.

Confident in the positive test results and business figures, our customer was able to deploy the new software on all existing portals and quickly and securely create additional websites.

back to the project overview

Comparison with other Modernization and Migration Projects

In another project, I also had to deal with functioning software in live operation. Here, too, an existing WordPress theme was part of a more complex software architecture, which in this case was provisioned with Ansible rather than Docker. Here, too, we could test changes on local and staging instances before deployment.

Comprehensive analysis of existing code, documentation and requirements, the working software and wisely used Ai assistentes by an experiences expert, leads to an understanding that artificial intelligence alone, especially when working with legacy code, cannot achieve in the near future.

The decision between modernization and migration is an important aspect. Even during the development process befor going live, or in a prototype (MVP) phase with only a few customers, a lot of work has usually been invested in development and acceptance, and the reisk of new errors and additional effort is often too high for a new start. On the other hand, some live systems are so outdated that redevelopment seems inevitable.

Part of my responsibilites as a senior web developer, both as a service provider for businesses, and as a freelancer being part of an agency team, is Sowohl als Dienstleister für Unternehmen, als auch als Freelancer im Team einer Agentur, gehört es zu meinen Aufgaben als Senior Web-Entwickler, translating business requirements into technical language, explain advantages and disadvantages of different solution alternatives so that humans will understand, and take responsibility for my decision recommendations as an expert.

Preview servers and automated tests can prevent unpleasant surprises. Web performance in the sense of loading speed optimization can be achieved through various measures in the frontend and on the server side. Economic performance optimisation in the sense of conversion rate optimisation has a lot to do with user experience (UX). Accessibility starts with compliance to certain criteria like sufficient legibility through structure and colour contrast.

Existing legacy code projects can also be secured and optimised retrospectively.