Legacy PHP to Laravel Migration, One Module at a Time
I move an old custom PHP or CodeIgniter app to Laravel module by module, while the old app keeps running, so you never face a big-bang switch. Every project starts with a Codebase Assessment. For small SaaS teams and businesses. From $1,300 ($1,000 founding) per monthly milestone; typical projects take 3+ months, from $3,900 ($3,000 founding).
See a sample report, proposal and weekly update- Price
- from $1,300
- Founding
- from $1,000
- Timeline
- 1 month each
- Format
- Fixed scope, fixed price
- Hours
- US Eastern Time, async
Who this is for.
A good fit if
- Businesses running on custom PHP, CodeIgniter or an old framework nobody wants to touch
- Founders whose app can’t get new features because every change breaks something
- Teams that tried a full rewrite before and it stalled
Common triggers
- The app only runs on an end-of-life PHP version
- No developer wants to work on the codebase
- A security finding that can’t be fixed in the old structure
Not a fit if
- You want a fixed price for the whole rewrite before any assessment
- You need it finished in a month
- The app is WordPress or a closed-source product
What I do, and what you get.
What I do
- Require a Codebase Assessment first, then write a module-by-module plan with an order and a price per module
- Put Laravel in front of the old app, so each request goes to Laravel if the module is migrated, or to the old code if not
- Share login and sessions between old and new so users notice nothing
- Migrate one module per milestone: routes, logic, database access, tests
- Keep the same database at first and change the schema only where a module needs it
- Deploy each module on its own, with a switch back to the old code if needed
What you get
- Module plan with order, risk and price per module
- Laravel app running in front of the legacy app from milestone 1
- Each migrated module with tests, deployed to production
- A progress count: which routes still reach the old code
- Monthly milestone report
- Handover notes per module, and a final one when the old code is retired
Your part
- A completed Codebase Assessment
- A person who knows how each module should behave and can test it
- Decisions on which old behavior to keep or drop
- A staging environment (or budget for one)
Included
- Laravel front and fallback to legacy code
- Module migration with tests
- Shared login between old and new
- Per-module deploy and switch-back
- Monthly milestone reports
Not included
- Whole-app fixed price before assessment
- New features during migration (quoted separately)
- Visual redesign
- Data cleanup and content entry
- Mobile apps
Fixed prices, agreed before work starts.
One or more modules as priced in the plan
Priced per module after the Codebase Assessment. From 3 monthly milestones of $1,300 ($1,000 founding). The Codebase Assessment (from $520) is required first and credited toward the project.
Build your scope
- Timeline
- 1 month each
- Payment
- Monthly milestones, each paid at the start of the month
- Earliest start
- Oct 5
Founding price: 3 of 7 spots left, until Mar 31, 2027 — one-off work, in return for a testimonial. How it works
Prices are in USD, paid by bank transfer against an invoice. Work under $1,000 is paid upfront; larger work is 50% to start and 50% before handover, or monthly milestones. How working together works
Variations
- CodeIgniter 3/4
- Routes and controllers map closely, so each module usually moves faster.
- Plain PHP (no framework)
- A front controller is added first, with more work on routing and security.
- Very old PHP (5.x/7.x)
- The old code runs in its own container or server until retired (see Containerize a Legacy App).
- Front end
- Kept as is (Blade or existing templates) unless a Vue front end is quoted.
How it runs.
- 01
Codebase Assessment
Every project starts with a Codebase Assessment.
- 02
Module plan
You get a module plan and a quote per module.
- 03
Laravel in front
Milestone 1 puts Laravel in front, shares login and moves a first low-risk module.
- 04
Monthly modules
One or more modules move each monthly milestone, each tested and deployed.
- 05
Retire the old code
The old code is retired when no requests reach it, followed by a final handover.
Where I have done this before.
Questions buyers ask.
Why not rewrite everything at once?
Big rewrites often stall and miss edge cases the old app handled. Module by module, you get working, deployed parts every month.
Will users notice?
They shouldn’t. URLs and logins stay the same while modules move behind the scenes.
Why is an assessment required?
Without it, any price would be a guess. The assessment finds the modules, risks and hidden dependencies.
Can we pause between milestones?
Yes. Each milestone leaves the app working.
Can you add features along the way?
Yes, quoted separately so the migration keeps moving.
Ask about Legacy PHP → Laravel.
Tell me what you have and where it hurts. I reply within one US business day with either a fixed quote or the entry step that makes a fixed quote possible.
Helpful to include
- Framework (or none) and PHP version
- Approximate size (files or lines)
- Main modules
- Database
- Hosting
- Who knows the business rules
- Target date and reason
More in Application Modernization
Laravel Upgrade
I upgrade your Laravel app to Laravel 13, including packages, PHP version, tests and deploy, not just the code diff. For small SaaS teams and agencies. From $390 ($300 founding) for one version hop with tests; typical timeline 1–3 weeks. Laravel 12 security fixes end 24 Feb 2027. Email your versions to start.
End-of-Life Runtime Upgrade
I move your app off an end-of-life PHP, Node.js, Python, MySQL or Ubuntu version, before or after the deadline. Server upgrades are done by building a fresh server and moving to it, never in place. For small teams and agencies. From $390 ($300 founding) for one runtime; typically 1–3 weeks. Email your versions to start.
Containerize a Legacy App
I package an older app, without rewriting it, into Docker containers so it runs the same way on any server, deploys repeatably and can be moved or upgraded later. I find the hidden state old apps keep, such as local uploads, cron jobs and config files. From $650 ($500 founding), about 1–3 weeks.