The verdict in three sentences
For a 2012 PHP 5 SaaS serving 1,100 paying customers, a progressive migration (the strangler fig pattern) is almost always less risky than a full rebuild, even though its cumulative cost is similar. A full rebuild only makes sense if the code can no longer evolve and the vendor can accept a 9 to 14 month feature freeze. In both cases, the real cost to watch is technical debt, which absorbs around 30% of the team's time and is already quietly funding part of the rebuild.
Full rebuild or progressive migration: 2026 figures
The CTO of an Amsterdam software vendor compares two paths. The first rebuilds the application in Next.js and TypeScript, with a Node API and a modernised PostgreSQL database, then switches every customer at once. The second puts a proxy in front of the PHP application and replaces modules one at a time: authentication, billing, dashboards, then the core business engine.
| Criterion | Full rebuild | Progressive migration |
|---|---|---|
| Indicative budget | EUR 150,000 to 350,000 excl. VAT | EUR 8,000 to 20,000 excl. VAT per month |
| Duration | 9 to 14 months | About 18 months |
| Cumulative cost | EUR 150,000 to 350,000 | EUR 144,000 to 360,000 |
| Feature freeze | Yes, almost total | Partial, module by module |
| First production release | Month 9 to 14 | Month 2 to 3 |
| Cutover risk | High (big bang) | Low and spread out |
| Reversibility | Low | High, per module |
Cumulative budgets overlap widely. The difference is the risk profile: a rebuild concentrates all risk on cutover day, while a migration splits it into 8 to 12 small releases.
The hidden cost: technical debt and churn during cutover
A team of 6 developers at EUR 75,000 fully loaded per year represents EUR 450,000 in payroll. If 30% of that time goes into workarounds, PHP 5 security patches and regressions, the debt costs about EUR 135,000 per year. That is the core argument for the board: doing nothing is not free.
The second cost is churn. A 12-month freeze lets competitors ship while the vendor stands still, and a failed cutover generates tickets, perceived data loss and cancellations.
| Risk factor | Full rebuild | Progressive migration |
|---|---|---|
| Estimated extra churn | 3 to 8% over the year | 1 to 2% |
| Customers lost (base 1,100) | 33 to 88 | 11 to 22 |
| MRR lost (ARPA EUR 250/month) | EUR 8,250 to 22,000 | EUR 2,750 to 5,500 |
| Cutover regressions | Concentrated | Isolated per module |
| Support load | 3 to 6 week spike | Smoothed |
| Unmaintained PHP 5 exposure | Until cutover | Decreasing |
These 2026 orders of magnitude are estimates from comparable projects. They show that 5% churn on a EUR 250 ARPA costs about EUR 165,000 in annual revenue, the budget of an entire rebuild.
A realistic progressive migration schedule
| Phase | Month | Deliverable |
|---|---|---|
| Audit and mapping | 1 | Module inventory, dependencies, database |
| Foundation | 2 to 3 | Proxy, unified auth, CI/CD, monitoring |
| Peripheral modules | 4 to 8 | Billing, exports, settings, dashboards |
| Core engine | 9 to 15 | Main engine, batched data migrations |
| Decommissioning | 16 to 18 | PHP 5 shutdown, database cleanup |
Every module follows the same rule: regression tests written against the old behaviour, release behind a feature flag, then rollout to 5%, 50% and 100% of customers.
Need a professional website?
Kolonell builds websites that attract clients, optimized for the Sénégalese market. Free quote in 2 minutes.
Mini case study
Daan, CTO of an Amsterdam vendor of software for accounting firms, has 1,100 customers at EUR 250 per month, or EUR 3.3M ARR. Option A: rebuild at EUR 260,000 over 12 months, estimated extra churn of 5%, so 55 customers and EUR 165,000 of ARR lost. Option B: migration at EUR 14,000 per month over 18 months, EUR 252,000 in total, extra churn of 1.5%, so 17 customers and EUR 51,000 of ARR. For nearly the same budget, option B preserves about EUR 114,000 of ARR, and the team gradually recovers the 30% of lost time from month 6.
FAQ
How much does a PHP to Next.js SaaS rebuild cost in 2026?
For a mid-sized product, expect EUR 150,000 to 350,000 excl. VAT for a full rebuild. A progressive migration runs EUR 8,000 to 20,000 per month over about 18 months.
Can we keep shipping features during the migration?
Yes, that is the point of the strangler fig method. In practice, 60 to 70% of capacity goes to migration and 30 to 40% to customer-requested features.
Should we migrate the database at the same time?
Not necessarily. Most projects keep the existing MySQL database for the first 6 to 9 months, then move to PostgreSQL in batches once modules are rewritten.
What is the main risk of a big bang rebuild?
The single cutover: with 1,100 customers, one critical regression can hit everyone on the same day. Observed extra churn ranges from 3 to 8% over the year.
How long before a first visible result?
With progressive migration, the first modern module ships in month 2 or 3. With a full rebuild, nothing is visible for 9 to 14 months.
Let's scope your project. An audit of your PHP codebase, a choice of path and a monthly or fixed budget, with a module-by-module schedule. Detailed quote within 48 h. WhatsApp +221 77 596 93 33.
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.