Websites11 min read

Rewriting a legacy PHP SaaS in Next.js: budget, phasing and risks

Mohamed Bah·Fondateur, Kolonell
November 1, 2026
Share:
Rewriting a legacy PHP SaaS in Next.js: budget, phasing and risks

Rewriting a legacy PHP SaaS in Next.js: budget, phasing and risks

Websites

The verdict in three sentences

For a SaaS company with 400 customers stuck on a PHP 5 codebase with no tests, a big-bang rewrite is the riskiest option: a failed cut-over typically drives away 3 to 8 % of customers as a 2026 order of magnitude. The strangler pattern, which replaces old code module by module behind a single front door, spreads the effort over 6 to 9 months and keeps each incident small. The most underestimated item is the migration of 1.2 million data rows, which deserves its own work package with dry runs.

Diagnose before you price

An ageing PHP 5 SaaS shows familiar symptoms: a PHP version without security patches since 2018, abandoned dependencies, business logic mixed into templates, a MySQL database without integrity constraints, and no automated tests. Every change takes three times longer than planned, and developers dread touching billing.

A 5 to 10 day audit maps modules, measures which features customers actually use, and flags inconsistent data. It is common to find that 20 to 30 % of screens are no longer used, which shrinks the rewrite scope accordingly.

CriterionFull rewriteStrangler pattern
Time to first production release6 to 9 months6 to 10 weeks for the first module
Feature freeze on old codeAlmost total during the projectLimited to the module in progress
Churn risk at cut-over3 to 8 % if things go wrong0.5 to 2 % per badly shipped module
Data migrationSingle cut-overGradual, by domain
Cost of running both systemsLow10 to 20 % integration overhead
Customer perceptionNew version momentContinuous improvement

What a rewrite costs in London and Berlin in 2026

The ranges below reflect agency and consultancy quotes for a mid-size B2B SaaS (40 to 60 screens, API, billing, roles). They are 2026 orders of magnitude.

ItemLondonBerlin
Audit and mappingGBP 4,000 to 10,000EUR 4,500 to 10,000
Full rewrite in Next.js plus APIGBP 70,000 to 200,000EUR 80,000 to 220,000
Single strangler moduleGBP 10,000 to 35,000EUR 12,000 to 40,000
Migration of 1.2 million rowsGBP 7,000 to 22,000EUR 8,000 to 25,000
Automated regression tests10 to 15 % of budget10 to 15 % of budget
Senior developer day rateGBP 550 to 850EUR 600 to 850

At Kolonell, a rewrite of this scope sits in our complex application tier, 7,000,000 to 15,000,000+ FCFA (EUR 10,670 to 22,870+), delivered in two-week sprints with regular demos to your product team. A first strangler module can start in the mid-complexity tier, 4,000,000 to 7,000,000 FCFA (EUR 6,100 to 10,670). Maintenance runs at 35,000, 75,000 or 120,000 FCFA per month. Details on our custom web applications page.

Phase it to protect revenue

The phasing we recommend has four steps. First, a single front door (a reverse proxy or the Next.js routing layer) sends each URL either to old PHP or to new code. Next, low-risk and highly visible modules such as the dashboard or exports, to get fast feedback. Then the business core, with temporary dual writes of data. Finally billing and authentication, last, once the team knows the new database well.

Every module cut-over comes with a tested rollback plan, a pilot group of 10 to 20 volunteer customers and a support ticket tracker. A rise of more than 30 % in tickets over a week should trigger a pause.

Mini case study

Need a professional website?

Kolonell builds websites that attract clients, optimized for the Sénégalese market. Free quote in 2 minutes.

Prefer a call back?

Leave your WhatsApp number and a Kolonell expert will get back to you within 1 business day. Free, no strings attached.

You are :

Hannah, CEO of a London SaaS company, has 400 customers paying GBP 160 a month on average, GBP 64,000 of monthly recurring revenue. A poorly managed full cut-over with 5 % churn would cost her 20 customers, GBP 3,200 a month, GBP 38,400 a year.

With the strangler pattern she splits the SaaS into 6 modules. If one badly shipped module causes 1 % churn, the loss is 4 customers, GBP 7,680 a year, and the team fixes it before the next module. A 15 % integration overhead on a GBP 130,000 budget is GBP 19,500, less than the loss avoided in a single year.

FAQ

Should we upgrade to PHP 8 before rewriting?

If the rewrite will take more than 9 months, a minimal upgrade of the old code to close vulnerabilities is wise. It often takes 10 to 25 days of work, to weigh against the SaaS's exposure.

Is Next.js right for a form-heavy B2B SaaS?

Yes, with React on the front end and a typed API on the server. Server rendering also speeds up dashboards, often by a factor of 2 to 3.

How do we migrate 1.2 million rows without downtime?

With idempotent scripts replayed 2 to 3 times on a production copy, then a night cut-over with a 2 to 4 hour window. Consistency checks compare counts and totals before reopening.

Should we tell customers?

Yes, 3 to 4 weeks before each visible cut-over, with a change guide. A pilot group of 10 to 20 customers sharply reduces surprises.

How many in-house developers should stay on the old code?

At least one person half-time for urgent fixes during the transition. Their knowledge of business rules is valuable for writing regression tests.

Let's scope your project. We audit your existing SaaS, propose a module split and a 6 to 9 month migration plan that protects your customer base. Detailed quote within 48 h. WhatsApp +221 77 596 93 33.

Tags:#software rewrite#legacy PHP#Next.js#London#technical debt#SaaS
Share:

Mohamed Bah

Fondateur, Kolonell

Passionate about digital and entrepreneurship in Africa, Mohamed has been helping Sénégalese businesses with their digital transformation since 2020. Founder of Kolonell, he believes every SME deserves a professional and accessible online présence.