I Tried Laravel 13 Upgrade With Boost /upgrade vs Laravel Shift

Laravel Daily| 00:13:54|Mar 23, 2026
Chapters8
Introduces the two main upgrade paths: Laravel 13 boost AI command and Laravel shift, and explains the comparison goal.

Laravel 13 upgrades: Boost AI’s upgrade-lift vs Laravel Shift’s deeper, code-aware PRs—both have their place depending on how thorough you want the upgrade to be.

Summary

Laravel Daily’s latest drill-down compares two popular upgrade paths for Laravel 13: the new Boost AI skill approach and the well-established Laravel Shift workflow. Jason demonstrates upgrading a real project from Laravel 12 to 13 using the Boost command, showing minimal, targeted changes (composer.json tweaks, CSRF token renames, config/cache updates) and a green test suite after a swift composer update. He contrasts this with a Laravel Shift pull request that lays out multiple commits—code style shifts, PHP 8.3 readiness, and broader skeleton tweaks—which requires you to review and merge on your end. Boost aims for minimal disruption and automatic local upgrades, while Shift goes deeper, updating skeleton defaults, package compatibility, and even PKG-related helpers like Laravel Zap. The video also notes practical caveats: Shift’s PRs may trigger test failures initially because Shift relies on GitHub Actions that expect composer install behavior, not always matched by the AI-driven flow. By the end, the takeaway is clear: Boost provides fast, compatible upgrades, but Shift remains valuable for thorough, deterministic code reviews and broader skeleton alignment. If you’re deciding today, consider your tolerance for manual review versus automation and how deeply you want your codebase aligned with Laravel 13’s new defaults.

Key Takeaways

  • Boost upgrade (needs Laravel Boost >= 2.3.2) upgrades Laravel 12.x to 13 with minimal changes: CSRF token rename, config cache, and a straightforward composer update.
  • Laravel Shift PR for the same project demonstrates a multi-commit approach that touches PHP 8.3 readiness, attributes, default ENV values, and even package tweaks like Laravel Zap.
  • Shift highlights updates not just in the framework, but in the skeleton and related files, including styling and code-cleanup changes that a fresh Laravel 13 app would have.
  • Boost focuses on compatibility and a quick green test run, whereas Shift provides deeper codebase modernization and deterministic upgrades through reviewable PRs (including automatic skeleton-alignment).

Who Is This For?

Essential viewing for Laravel developers weighing a fast, automated upgrade path versus a thorough, human-reviewed upgrade. Ideal for teams starting Laravel 13 projects or migrating existing apps who want to understand the trade-offs between Boost AI upgrades and Laravel Shift PRs.

Notable Quotes

"Hello guys, with the recent Laravel 13, the core team released a new way to upgrade your projects, which is Laravel boost AI skill."
Introduction to the two upgrade paths and Boost AI feature discussed in the video.
"Laravel shift does not do that for you. That's why the tests here for this PR fail because in the check section here for GitHub actions I have tests and part of that script is composer install not composer update."
Shows a concrete difference in how Shift handles upgrades vs. Boost automation.
"Shift is going through changes in the skeleton so that the code would not be just working with Laravel 13 but also updated to Laravel 13 like it would be created with Laravel 13 in the first place."
Highlights how Shift updates go beyond mere version bumps.
"As with everything AI related, if we ask AI to do something, we are not 100% guarantee that it will succeed... it is non-deterministic by definition."
Candid note on limitations of AI-based upgrades versus deterministic ones.
"Shift is still valuable and goes much deeper than the default upgrade command by AI agent."
Concludes the comparative value of Shift for thorough upgrades.

Questions This Video Answers

  • How does Laravel Boost upgrade handle Laravel 12 to 13 with minimal changes?
  • What are the key differences between Laravel Shift and Laravel Boost when upgrading a Laravel project?
  • Is PHP 8.3 required for Laravel 13, and how do upgrades prepare for it?
Laravel 13Laravel BoostLaravel ShiftPHP 8.3ComposerFilamentLivewire Starter KitTinkerCLI upgrade commandsCode skeleton upgrades
Full Transcript
Hello guys, with the recent Laravel 13, the core team released a new way to upgrade your projects, which is Laravel boost AI skill. So you can just run upgrade Laravel 13 in your AI agent and the Laravel project would be upgraded from Laravel 12 to 13. But then it raised the question, what about Laravel shift? So for many years, many people from the community use Laravel shift to upgrade new versions. So what about this? Is it different? And in this video, I will try both in action and compare and show you why Laravel shift is still in business and still needed because the approach to upgrade is very different. And in fact, even in the official upgrade guide by Laravel, they mentioned both. So upgrade Laravel V13 is the Laravel boost way, but Laravel shift with the link is still mentioned even earlier actually than Laravel boost way. So I tried both in action. I had a project recently demo project for AI experiments for accountants to book the appointments. This is how it looks. And then there's filament admin panel. This is also based on live wire starter kit. And this is the composer JSON of that project. I upgraded to latest Laravel 12.x to be able to see the difference only for minor versions. And also I upgraded Laravel boost because to be able to use that AI skill command you need to be on Laravel boost at least version 2.3.2 because that's what added upgrade Laravel guide command. And now in the terminal I launched cloud code and now we'll launch upgrade Laravel 13 command and we'll show you the difference what it changed versus the same change produced PR from Laravel shift on the same project. So let's dive in. We launch Laravel 13 guide and let's see what happens actually in the action. So first it checks the version checks get creating the branch great and basically this is the list what needs to be changed with the Laravel 13 small changes. So dependency versions is probably the main thing but also a few things on top. So it launches the test first to make sure that the test worked before the upgrade. Then it makes the change to prevent. So this is the renamed CSRF token thing. Also this thing was added to config cache. Then it upgrades the version of Laravel and Tinker composer update. So didn't change the version of anything else any other packages just those two. Composer update succeeded. Laravel 13 is installed. also running pinned and test as per agent cloud MD instructions after every prompt and probably it will be done all tests pass changes made a few changes to composer JSON CSRF token and serializable classes also it had a list of things to also change but that was not needed because the project already had the newest versions or not used because that project was created in like latest Laravel 12.5 something. So it had all the kind of latest Laravel 12 skeleton things and then the upgrade is on the branch. Let's take a look at the code. But actually you've seen all of that already here. But just so that you would believe this is the change in composer JSON in VS code only those two things upgraded in the panel provider just rename of the CSRF token middleware for filament and cache adding this value. That's it. And with composer update also Laravel boost changes something in cloudmd. So v13 of laravel framework and also I see it removed separately laravel v12 rules which were here previously. So I guess the models became better with the skeleton changes in laravel 11. So 11 12 and then 13. There's no need to instruct something like this. And I noticed the same thing that was in my guidelines earlier. things from Laravel 10. Now it's not needed anymore for at least Frontier models like OPUS or GPT5. So okay, these are the changes by upgrade guide. Basically minimal changes. So the project would work would be upgraded to Laravel 13. And if we refresh now, the page still loads well. The filament admin panel still works. Nothing broken. Test still passing. So it's good. And now let me show you what Laravel shift did for the same project and you would see the difference in approach and the goal of that upgrade. So this is the PR by Laravel shift. And disclaimer I asked Laravel shift creator Jason to run it for me. I'm not getting paid for this video but I received that shift for free. I asked him personally just for demonstration in this video but I didn't promise Jason to tell that shift is better. This is still unbiased review for YouTube. So this is the pull request and the main difference from update locally and update with shift that it does the pull request which you need to then clone down the branch check out and review locally on the branch and then run composer update yourself. So Laravel shift does not do that for you. That's why the tests here for this PR fail because in the check section here for GitHub actions I have tests and part of the test is job failed and I will show you why install dependencies because part of that script is composer install not composer update. So at first I thought there is something wrong with the shift but then I realized it's totally understandable the part of the script doesn't do what it's supposed to do. So you basically use Laravel shift differently from upgrade guide of Laravel boost and if we go back to what was changed you will understand why. So Laravel shift is happening in multiple separate commits like this. So here's the list apply code style shift core files shift this and that only at some point bump dependencies and we have separate comments kind of by myself but I didn't do that myself. It's automatically by shift. So first thing it did it changed or introduced a few PHP attributes. I will show you the code in a minute. Then it changed the default values for these. Envy variables. Then also serializable classes which you saw already with upgrade guide by boost. Then it's advising to rename those variables again with NV. So basically it's going through the changes in the skeleton of Laravel 13 which might be useful if you have those values in your project. The next thing Laravel 13 requires PHP 83 or higher. So upgrade guide by Laravel boost did not change that in composer JSON. Then also Laravel shift points out at the package that may be upgraded separately which I use in this project. Let's take a look at that package very popular now. Laravel Zap and yes it looks like it does support Laravel 13 last month but neither upgrade guide nor Laravel shift actually performed that update but shift at least mentioned the package. Also it added the index to expiration column which was part of Laravel 13 change also a small change to reset mail subject. So basically shift is going through all the small changes, small details under the hood which were not even announced or not really emphasized. So tracks the changes to the defaults to the skeleton so that the code would not be just working with Laravel 13 but also updated to Laravel 13 like it would be created with Laravel 13 in the first place. So yeah, this is the final comment. Now let's take a look at the code changes. So files changed. I had artisan command and it changed the artisan command signature and description to PHP attributes. This is kind of a personal preference in a way. Recently I had a video on my channel about those attributes and on Laravel daily website I have the full list of those new attributes which is 36 attributes in Eloquent and others. So Laravel shift decided for me that I want those attributes. This is not necessarily the case. I think the community is pretty mixed with emotions whether we should use them or not but okay I can live with that. Then the same change in the config cache. Then a few changes again to the Laravel 13 skeleton probably. So default values also using ENV here. Also I noticed quite a few code styling changes like comma disappearing here but also session serialization was kind of unseen change also interesting thing kind of a cleanup so Laravel shift noticed by the way it's not related to Laravel 13 that factory does not really need to define the model because Laravel since like Laravel 11 or so automatically detects the factory if the factory name is the same as eloquent model. So Laravel shift did cleanup along the way with Laravel 13 upgrade. So this is one of the benefits of using shift. It's not just upgrade guide. It's also checking the code for kind of unrelated but very useful changes. So index expiration we can see that change in the default Laravel skeleton Laravel Laravel it's not even in the framework. So if we take a look at that cache table migration, we look at history and on January 13, we may see this change. So this is another thing that Laravel shift does. What was changed in the framework and in skeleton and in related files since Laravel 12 to Laravel 13. Next, if we look through shift, there are styling changes which I don't really like. Actually, I'm not even sure what style preset does it use. Is it Laravel pint default? Not sure. So get ignore changes probably. Same thing with Laravel. Laravel also some styling here and also PHP 8.3. So this is another thing that Laravel upgrade guide by boost upgrade AI command did not do and also it upgraded more versions. So framework and tinker was handled by AI by Laravel boost but also Laravel shift handled firstparty packages cashier fortify flux and also in the dev also Laravel boost pale pint and sale. So again it did more than upgrade guide for local AI agent including actually package JSON so front end dependency and this last one is probably styling change. So yeah do you now see the difference? So Laravel boost upgrade AI command is aiming for compatibility. So will the project work with Laravel 13? That is the goal with minimal changes with pretty short list of things inside of upgrade guide. But it doesn't cover anything left and right which is not directly related to the upgrade guide. Laravel shift goes much deeper. That said, you may not like everything that Laravel shift does. As you saw in my review of that commit of that pull request, I don't like attributes forced to me and some styling changes could be optional. But still the goal of Laravel shift upgrade is so that you would feel that Laravel project would have been created with Laravel 13 syntax default values and stuff skeleton changes and so on. So yeah, if you're serious about upgrading your projects, I think Laravel shift is still here to stay. is still valuable and goes much deeper than the default upgrade command by AI agent. And here's an important tweet I want to emphasize. So, Lelesia is saying that they ate a bit of market chunk from shift by releasing that upgrade command. But push back, the author of that command, as I understand from the coral laravel team, is saying himself that serious project will still use shift because it's deterministic. As with everything AI related, if we ask AI to do something, we are not 100% guarantee that it will succeed, whether it will work at all and how exactly will it perform. It's kind of like 99% guaranteed if you have all the guidelines in place, but still it's non-deterministic by definition. And also later, same push back tweeted about misunderstanding that they didn't want any harm to Laravel shift creator. The idea was that they thought that people would still use AI to upgrade Laravel and probably they do and probably some of you do. So they just release that as a command as a skill. But it's not a replacement to Laravel shift. It was never meant to be. Those two things have just different goals. Minimal compatibility versus review of your code for important changes not necessarily directly related to upgrade guide of Laravel 13. And also I want to mention one article I found online real story of upgrading with shift and with Laravel boost by Stuart Brel. So pretty good article comparing those two and I will link that article in the description below so you may read what happened, why and what Stuart thinks about Laravel Shift versus Laravel Boost. What do you guys think? We can as usual discuss in the comments below. And in general, have you upgraded your projects to Laravel 13 already? Or are you waiting for some packages to be updated or you're just not in a hurry? We can also discuss that in the comments. That's it for this time and see you guys in other videos.

Get daily recaps from
Laravel Daily

AI-powered summaries delivered to your inbox. Save hours every week while staying fully informed.