We have a huge system built about 10 years ago using Laravel 5. So far, we have been able to upgrade the laravel version to 11. The system was built on Blade, jQuery and Ajax. We are considering upgrading the system to separate the API and introduce Nuxt JS as a separate frontend. Based on our assessment, a complete overhaul is very risky, given that we have a list of active clients and users which will require fresh training. Besides, it won't be easy and straightforward to convince our clients to migrate to the newly upgraded system, given that they have historical data ranging from a period of 10years. Not to mention the risks associated with data migration and getting our clients settled into the new system. Because of such risks, we decided never to do a system overhaul and to do incremental upgrades. Now the challenging question is, how do we approach it? The main goal is that in the end, we should have a separate Nuxt JS frontend served by APIs. We need the upgrade to be so smooth that clients won't even easily notice the changes
I am sure one of us on this platform has experienced a similar challenge. How did you approach it? Which is the safest route to take? Please share your experiences
#The proper way to upgrade legacy system.
4 messages · Page 1 of 1 (latest)
I'd probably recommend to version the API, and have a api/v2/blah endpoint which will be consumed by your new front-end.
After a while you can slowly deprecate the old API and close up shop, only leaving the new API running on the same codebase.
Thank you@wide loom, could it be possible to gradually roll out the new frontend? For instance, roll out a feature once it's done
Mixing a Nuxt front end with a legacy Blade implementation will be challenging, particularly if you are envisioning the Nuxt implementation to be a SPA-like experience. Blade by definition is not SPA. That isn't to say it can't be done (different routes could conceivably render as part of the SPA versus a Blade-rendered route), if you use Sanctum to issue session tokens. But, it will be a bit of a challenge because every time you go from a Nuxt page to a pure Blade page and back, your SPA will be fully re-initializing. Saving/restoring state to/from session storage might help, but I'd definitely want to approach this "app section by app section," if there are logical divisions.