Shift with red gradient lettering

Frequently Asked Questions

Does Shift do more than the Laravel Upgrade Guide?

Yes. A lot more.

The Laravel Upgrade Guide focuses on new features and breaking changes, treating the rest as optional. Over time, only following the steps outlined in the Laravel Upgrade Guide will accumulate technical debt.

Shift upgrades all changes. This ensures your Laravel application is fully up-to-date with your version of Laravel and there are no future surprises. The goal is for your Laravel application to be as if it were running that version of Laravel all along.

Does Shift upgrade everything?

Probably not everything.

Shift attempts to upgrade your Laravel application so you just need to run composer update. However, given the dynamic nature of PHP, the infinite possibilities of code customizations, and changes within third-party dependencies, this is not always possible. When Shift can not reliably perform a change, a detailed comment will be added to the PR for you to review. You are also encouraged to review the CHANGELOG or Upgrade Guide for your third-party dependencies.

Can I upgrade multiple versions at once?

To improve context and focus, Shifts are run incrementally. Doing so allows you to verify each upgrade to ensure you don't miss anything.

For tips on completing Shifts efficiently and running multiple Shifts, watch the Reviewing the Shift Pull Request and Upgrading old Laravel applications videos.

What if my Laravel application is not on Bitbucket/GitHub/GitLab?

Currently, these are the services which allow Shift to quickly connect to your Laravel application.

All of these services offer free private repositories. You may always push a temporary copy of your repository to one of these services in order to run Shift.

Why does Shift need write access to my repositories?

Shift requires write access to create a new branch and open a Pull Request. This allows the process to be seamlessly automated from start to finish.

Once you merge the Pull Request, you are welcome to deauthorize the Laravel Shift application.

Does Shift keep a copy of my code?


Your code only lives on the Shift server while the upgrade process is running - less than a minute on average. After it completes, your code is forcefully removed from the Shift server. We're talking rm -rf *.

What if my boss/client/legal/paranoia won't let me share my Laravel application?

Some code comes with policies or agreements which prevent you from sharing it. No worries. That's why there's Shift for Docker - so you may run any Shift against one of your Laravel applications locally.

Can I pay with PayPal?


Start your order. Once you reach checkout, send payment via PayPal to and include your Shift number.

Can I run the same Shift more than once?

All Shifts are single use. This is by design. For example, you don't need to upgrade to Laravel 10 twice.

Of course if there is an issue, or you believe the automation might be improved by making some changes first, you may request a rerun by sending your Shift number to

How can I change the code formatting Shift applies?

Some Shifts automatically apply the Laravel code style. This helps improve the automation by ensuring a consistent code format.

Of course code style can be a very personal thing. You may configure Shift to apply your own code style by adding a PHP Code Sniffer, PHP CS Fixer, or Pint configuration in your project root folder. Shift will automatically detect and apply your code style when formatting.

For more details, watch our short video on customizing the code style.

What if my Laravel application is in a subfolder or I have multiple Laravel applications in my repository?

Shift will automatically find your Laravel application based on the location of common files. For example, for Laravel applications, Shift will look for artisan. For projects using Tailwind, it will look for tailwind.config.js.

If you have restructured your Laravel application or have multiple Laravel applications within your repository, you may control which one Shift chooses by creating a .shiftrc file in the desired project folder. This file does not need to contain any configuration options. The presence of this file alone is enough to force Shift to choose that project.

What if something goes wrong?

If a Shift fails, you will receive immediate feedback on how to resolve common problems yourself. Once you have, you may rerun your Shift again. If the rerun fails, you will need to contact contact support for more help.

What is the refund policy?

Any incomplete Shift or unused subscription purchased within the last 30 days is eligible for a refund, less the payment processing fees. You may contact support with your order information to request a refund.

Completed Shifts, used subscriptions, or repeat purchases are not eligible for a refund. If you are experiencing an issue with Shift's services, please contact support.

How may I contact Shift for additional support?

For basic support feel free to email

If you want hands-on support with upgrading your Laravel application, check out the Human Shifts.

Still have questions?

No problem! Try browsing our Shifty Videos for demos of Shift's services, or email your question to

Sign in with any of the following services to connect Shift with your Laravel project.

Don't use one of these services?

Temporarily push your project to a free, private repository on one of these cloud-based services or upgrade your project locally with Shift for Docker.