Modernize Legacy Software Without Stopping The Business
Legacy modernization brings an old system up to date in stages while people keep using it. We upgraded Autobuffy from Angular 8 to 13 in 20 days and moved Coach Catalyst from Vue 2 to Vue 3.
Reviewed by Azmat Rana, CEO & Founder · Updated
What Modernization Covers
Old software rarely fails all at once. It gets slower to change, harder to hire for and riskier to deploy, until every new feature costs more than it should.
Core capability
Framework upgrades
Moving off versions that no longer get security fixes, such as AngularJS, Angular 8 or Vue 2, one tested release at a time.
Rewriting the worst parts first
Replacing the modules that cause the most bugs or slow everyone down, like Coach Catalyst’s CoffeeScript chat, while the rest keeps running.
Replacing manual data feeds
Swapping FTP uploads, CSV imports and spreadsheets for APIs and background jobs, as Autobuffy’s inventory microservice did.
Making old apps readable to search engines
Adding server-side rendering to single-page apps that search engines struggle to read. Autobuffy gained search visibility after we added it.
Moving to modern hosting
Taking apps off aging servers onto managed cloud infrastructure, with automated deploys and monitoring in place first.
Project story · Autobuffy
Upgrading a live store from Angular 8 to 13 in 20 days
Autobuffy is a US online store selling more than 100,000 auto parts. Its storefront ran on Angular 8, and the pages were built in the browser, which made them hard for search engines to read.
- Upgrade
- Angular 8 to 13
- Time
- 20 days
- Team
- 6 engineers
- Stack
- Angular, Ruby on Rails, Elasticsearch, AWS
The problem
The outdated front end held back technical SEO, so the store was harder to find than it should have been. Inventory still arrived by FTP, CSV and Excel, which left stock levels depending on manual imports.
What we changed
- 01Upgraded the storefront from Angular 8 to Angular 13 in 20 days.
- 02Added server-side rendering, so search engines receive complete pages.
- 03Replaced the FTP, CSV and Excel inventory imports with a microservice that syncs vendor stock through APIs in real time.
- 04Gave the SEO team a way to update SEO attributes themselves, without a developer.
Where it stands
The upgrade raised search visibility, clicks and sales, and inventory is now accurate without manual work. Most modernization looks like this: a series of contained upgrades, each one shipped and checked before the next.
Read the full Autobuffy case studyHow A Modernization Runs
We change one part at a time and keep the system working at every step.
Assess
Map The System
We read the code, the hosting and the data, and list what is outdated, what breaks most often and what blocks new features.
Plan
Order The Upgrades
Each change gets a scope and a test plan. The riskiest or most expensive problems usually go first.
Upgrade
Change It In Stages
We upgrade one module, framework or data feed at a time, behind tests, and release it before starting the next.
Verify
Check And Hand Over
Each release is checked against the old behavior, monitored in production and documented for your team.
Technology We Modernize
The frameworks and platforms we upgrade most often, and the ones we move them to.
Rewrite Or Modernize?
A full rewrite is tempting and usually the riskier option. These are the questions we ask before recommending either.
Does the core logic still work?
If the business rules are right and only the technology is old, upgrade the technology and keep the logic.
Is it the framework or the design?
An old framework can be upgraded in steps. A data model that no longer fits the business may need rebuilding, starting with that part.
Can you pause new features?
A rewrite means months of building in parallel. If the business cannot wait that long for new features, modernize in stages.
Who still knows the system?
If the people who built it have gone, start by reading and testing it before changing anything.
Rewrite when the platform is a dead end
If hiring, hosting or security fixes are no longer possible for the platform, rewrite one module at a time.
Keep it running throughout
Old and new can run side by side while traffic moves across, so customers never notice the switch.
Modernization In Action
Live products we upgraded without taking them offline.
Related services
Projects like this one usually involve these as well.
Further reading: Moving a Xamarin app to .NET MAUI, step by step
Prefer to add engineers to your own team?
Hire full-time developers in the stacks we use for this work.
Legacy Modernization FAQs
What teams ask before they upgrade a system people depend on.
Bringing an older system up to date, whether that is its framework, hosting, data feeds or design, while the business keeps using it. It is usually done in stages rather than as one big rewrite.
It should not. We release each stage separately and test it against the old behavior first. Coach Catalyst moved from Vue 2 to Vue 3 while coaches kept using it.
Yes. We upgraded Autobuffy from Angular 8 to 13 in 20 days, and our Angular developers handle AngularJS migrations as well.
Yes. We start by reading the code and adding tests around the parts we will change, so we know what the system does before touching it.
Yes, hosting is often part of the work. We set up automated deploys and monitoring before moving traffic, then move one service at a time.
You do. Everything we build for you, including the source code and the intellectual property in it, belongs to you.
Ready To Modernize Your System?
Tell us what you are running today and what keeps breaking, and we will suggest the first upgrade to make.