[{"data":1,"prerenderedAt":243},["ShallowReactive",2],{"insight-\u002Finsights\u002Flaravel-upgrade-or-rebuild":3},{"id":4,"title":5,"body":6,"category":230,"date":231,"description":232,"extension":233,"meta":234,"navigation":235,"path":236,"readingTime":237,"seo":238,"seoTitle":239,"stem":240,"updated":241,"__hash__":242},"insights\u002Finsights\u002Flaravel-upgrade-or-rebuild.md","Is your Laravel app out of date? Upgrade or rebuild?",{"type":7,"value":8,"toc":219},"minimark",[9,13,21,26,29,32,60,64,67,87,90,94,99,113,118,132,139,143,146,184,187,191,194,198,201,205],[10,11,12],"p",{},"Software doesn’t wear out, but it does age. A Laravel app built a few years ago still works, until the PHP version it runs on stops receiving security fixes, a package it depends on is abandoned, or nobody dares change anything for fear of breaking it.",[10,14,15,16,20],{},"When that happens, you’ll face the question every owner of an ageing application hits: ",[17,18,19],"strong",{},"upgrade it, or rebuild it?"," Here’s how to think about it without needing to read the code.",[22,23,25],"h2",{"id":24},"why-old-versions-matter","Why old versions matter",[10,27,28],{},"Laravel releases a new major version regularly, and PHP does too. Each version gets bug fixes for a while and security fixes for a little longer. After that, nothing. If your app is on a version that’s no longer supported, any newly discovered vulnerability stays unfixed.",[10,30,31],{},"That isn’t just a technical worry. It can affect:",[33,34,35,42,48,54],"ul",{},[36,37,38,41],"li",{},[17,39,40],{},"Security",": unpatched software is the easiest to attack.",[36,43,44,47],{},[17,45,46],{},"Hosting",": providers eventually drop old PHP versions, forcing a rushed upgrade.",[36,49,50,53],{},[17,51,52],{},"Hiring",": developers don’t enjoy working on very old versions, and it’s harder to find good ones.",[36,55,56,59],{},[17,57,58],{},"Cost of change",": the further behind you fall, the bigger and riskier the eventual jump.",[22,61,63],{"id":62},"how-to-check-your-version","How to check your version",[10,65,66],{},"You (or your developer) can find out in a couple of minutes:",[68,69,70,77,84],"ol",{},[36,71,72,73,76],{},"Look at the ",[17,74,75],{},"composer.lock"," file in the project, which lists the Laravel framework version.",[36,78,79,80,83],{},"Check your ",[17,81,82],{},"hosting dashboard"," or ask your host which PHP version you’re running.",[36,85,86],{},"Compare both with the currently supported versions on the official Laravel and PHP websites.",[10,88,89],{},"If either is a few major versions behind, it’s time to plan.",[22,91,93],{"id":92},"upgrade-or-rebuild","Upgrade or rebuild?",[10,95,96],{},[17,97,98],{},"Upgrade when…",[33,100,101,104,107,110],{},[36,102,103],{},"The app does what the business needs and users are broadly happy.",[36,105,106],{},"The code is reasonably structured, even if it’s old.",[36,108,109],{},"You rely on behaviour that would be expensive to recreate.",[36,111,112],{},"You want the lowest-risk, lowest-cost route.",[10,114,115],{},[17,116,117],{},"Rebuild when…",[33,119,120,123,126,129],{},[36,121,122],{},"The core design no longer fits the business (the product has changed fundamentally).",[36,124,125],{},"The code is tangled, untested and no one understands it, and upgrading would cost more than starting fresh.",[36,127,128],{},"The data model is badly wrong in ways that cause constant bugs.",[36,130,131],{},"You’re planning a big change in direction anyway.",[10,133,134,135,138],{},"In my experience, ",[17,136,137],{},"most Laravel apps should be upgraded, not rebuilt."," A rebuild tends to take longer and cost more than expected, and it throws away years of small fixes. The exception is when the foundations genuinely can’t be saved.",[22,140,142],{"id":141},"how-a-safe-upgrade-works","How a safe upgrade works",[10,144,145],{},"A good upgrade is boring, which is exactly what you want:",[68,147,148,154,160,166,172,178],{},[36,149,150,153],{},[17,151,152],{},"Audit first."," Review the code, dependencies, hosting and deployment. You get a plain-English report with a prioritised plan.",[36,155,156,159],{},[17,157,158],{},"Add tests around the critical parts."," Before changing anything, you capture how the important features behave so you can prove they still work.",[36,161,162,165],{},[17,163,164],{},"Upgrade in steps."," Move one version at a time rather than leaping several at once. Release each step to a staging site first.",[36,167,168,171],{},[17,169,170],{},"Fix and replace outdated packages",", and remove ones you no longer need.",[36,173,174,177],{},[17,175,176],{},"Release gradually",", with a rollback plan and monitoring in place.",[36,179,180,183],{},[17,181,182],{},"Document and hand over",", so the next upgrade is easier.",[10,185,186],{},"Done like this, users shouldn’t notice anything, apart from things getting faster and more reliable.",[22,188,190],{"id":189},"what-it-costs-and-how-long-it-takes","What it costs and how long it takes",[10,192,193],{},"It depends on how far behind you are and how well the app is tested. A modest app a version or two behind can be upgraded quite quickly. A long-neglected one takes longer, because there’s more to untangle. The honest way to get a number is a short audit, which usually costs far less than guessing wrong in either direction.",[22,195,197],{"id":196},"keep-it-healthy-afterwards","Keep it healthy afterwards",[10,199,200],{},"The cheapest upgrade is the small one you do regularly. A light maintenance arrangement (security updates, dependency checks and monitoring) means you never fall far behind again.",[22,202,204],{"id":203},"next-steps","Next steps",[10,206,207,208,213,214,218],{},"If you’re not sure where your app stands, a ",[209,210,212],"a",{"href":211},"\u002Flaravel-development\u002Fupgrades","Laravel health check"," will tell you what’s healthy, what’s risky and whether to upgrade or rebuild. If you’d like to talk it through, ",[209,215,217],{"href":216},"\u002Fcontact?topic=upgrade","get in touch",".",{"title":220,"searchDepth":221,"depth":221,"links":222},"",2,[223,224,225,226,227,228,229],{"id":24,"depth":221,"text":25},{"id":62,"depth":221,"text":63},{"id":92,"depth":221,"text":93},{"id":141,"depth":221,"text":142},{"id":189,"depth":221,"text":190},{"id":196,"depth":221,"text":197},{"id":203,"depth":221,"text":204},"Laravel","2026-11-03","An old Laravel or PHP version is a growing risk. How to tell whether to upgrade or rebuild your Laravel app, in plain English, with a practical checklist.","md",{},true,"\u002Finsights\u002Flaravel-upgrade-or-rebuild",7,{"title":5,"description":232},"Laravel Upgrade or Rebuild? A Founder's Guide","insights\u002Flaravel-upgrade-or-rebuild",null,"LIdnKkgsYTLIO4GL-IydpcRzffJ-klY4m2WpdR6cTCU",1793821334660]