Home/Services/Legacy modernization
Application modernization · legacy modernization services

Modernize the legacy system without stopping the business.

We replace old applications piece by piece, with the old and new versions running side by side, instead of betting the company on a two-year rewrite. Each step ships to production and proves itself before the next one starts.

The short answer

How to modernize a legacy application safely.

Big-bang rewrites fail because the old system keeps changing while the new one is built, and nobody can prove the new one does everything the old one did. Gigabit modernizes in slices: find out what the system really does, put tests and monitoring around it, move one capability at a time behind the same interface, and retire old code only when the numbers match.

The published Heroku-to-AWS engagement shows the pattern: an 85,000-line Rails monolith, services extracted in order of risk with the payment core last, 48 hours of shadow traffic at a 0.00% discrepancy rate before the final cutover, zero downtime, and deploys cut from 38 minutes to 2.5. AI agents help most here, by reading old code, drafting characterization tests and writing the documentation nobody wrote.

What we build

What modernization includes.

A safety net first, then replacement in slices you can watch and reverse.

System discovery

We trace what the application actually does, undocumented rules included, from the code, the logs and the people who use it.

Safety net first

Characterization tests and monitoring around today's behaviour, so every change is checked against the old system.

Strangler fig extraction

New services take over one capability at a time behind the same interface, with traffic shifted gradually.

Framework and version upgrades

Language and framework upgrades, dependency clean-up and security patches for systems several versions behind.

Cloud and delivery

Containers, infrastructure as code and CI/CD, so the modernized system deploys in minutes.

AI-assisted code archaeology

Agents that map dependencies, explain old modules and draft tests, with a senior engineer reviewing every change.

How it runs

Discover, protect, replace, retire.

01

Discover

Map what the system does and rank what to replace first by risk and value.

02

Protect

Add tests, monitoring and a deploy pipeline around the system as it is.

03

Replace in slices

Move capabilities one at a time, each in production before the next starts.

04

Retire

Switch off old code once the new path has matched it under real traffic.

How it is priced

Published prices, mapped to the job.

Every price here is the same one on the pricing page. Work with no published price gets a fixed price in writing before it starts.

The job
How we deliver it
Price
An assessment and modernization roadmapThe published assessment cost $6,000.
Fixed price in writing, after scoping
Slice-by-slice modernization
$3,000–$7,500 / engineer / mo
A fixed-scope extraction or upgrade
Fixed price in writing, after scoping
Moving off an old store, website or CRM
From $7,000 · fixed · from 4 weeks

Figures in the notes are what past clients paid, from the published case studies; they show the range, not a rate card. Work with no natural end, such as ongoing development, is priced per engineer per month with no lock-in.

An honest read

When to hire us for this, and when not to.

A good fit when
  • The system runs revenue, and nobody wants to touch it.
  • Releases are rare and risky.
  • The people who understand it are leaving or have left.
  • A security review flags versions that are out of support.
Look elsewhere when
  • The system is stable, cheap to run and rarely changes. Leave it alone.
  • A SaaS product now does the job. Configure that instead.
  • You need everything rebuilt in one go by a fixed date. We will tell you why that fails.
Proof

Modernization in production.

A Rails monolith split into services with zero downtime, and an embedded pod that raised test coverage from 34% to 71%.

Series B payments platform, US-based, $14M monthly transaction volume

A 14-week strangler-fig migration off Heroku with zero downtime: -35% infra cost, -93% deploy time, +800% deploy frequency.

Zero
Downtime during migration
38 min → 2.5 min (-93%)
Deployment time
2×/week → 18×/week (+800%)
Deployment frequency

Investment: $74,000 · Timeline: 14 weeks (2-week assessment + 12-week migration)

Read the case study
Series B HR technology SaaS, US-based, $8M ARR

Three embedded engineers lifted sprint velocity 2.3x and shipped 4 stalled features in 3 months — saving $392,400/year vs US hiring.

2.3x (34 → 78 points)
Sprint velocity
$392,400 (65%)
Annual savings vs US hiring
34% → 71%
Test coverage

Investment: $14,400/month (3 engineers) · Timeline: First PRs in 5 days; full sprint velocity in 3 weeks

Read the case study

These are past engagements at the prices those clients paid. For build price, monthly cost and payback side by side, see what ten client projects cost.

FAQ

Legacy modernization, answered

What is application modernization?

Moving an old application onto a current architecture, framework and infrastructure so it is cheaper to run and safer to change. Done well, it happens in slices while the old system keeps serving customers.

How much does legacy modernization cost?

It starts with an assessment; ours cost $6,000 in the published engagement. That project's full migration of an 85,000-line Rails application cost $74,000 over 14 weeks. Longer programmes usually run on an embedded team at $3,000–$7,500 per engineer per month, so you can stop after any slice.

Should we rewrite or refactor?

Usually neither in full. Replace the parts that block the business, behind the same interface, and leave stable parts alone. A full rewrite only makes sense when the old system is small and well understood.

How long does modernization take?

The first slice should reach production within weeks. The published migration finished in 14 weeks; larger systems take longer, but every step delivers on its own.

Can AI help modernize legacy code?

Yes. Agents are good at reading old code, explaining it, mapping dependencies and drafting tests and documentation. A senior engineer still designs the target and reviews every change.

Related

Often scoped alongside.

Go deeper

From the field notes

Start here

Stuck with a system nobody wants to touch?

Tell us what it runs and what it is built on. We reply with how we would protect it first and what to replace first.