<aside> <img src="/icons/confetti-party-popper_red.svg" alt="/icons/confetti-party-popper_red.svg" width="40px" />
The Craft 6.x alpha has launched! Please see the upgrade guide for the latest information.
</aside>
<aside> <img src="/icons/history_lightgray.svg" alt="/icons/history_lightgray.svg" width="40px" />
This document was originally distributed at Dot All Lisbon, in October 2025, and is no longer maintained.
</aside>
Most Craft projects can be upgraded with only minor changes to configuration. We have also taken great care to design a plugin compatibility layer that allows gradual adoption of Laravel features.
For the workshop, you are welcome to upgrade an existing project, or start a new one.
We’ve published a guided upgrade tool for existing projects.
https://github.com/craftcms/craft6-prepper
You can install it as a global Composer package on your host system and run it from any project running Craft 5.8 or later:
# From a Craft 5 project directory:
craft6-revamp
# If the command cannot be found, you can try running it directly
~/.composer/vendor/bin/craft6-revamp
# From anywhere:
craft6-revamp --path /path/to/project
It will restructure your files to match the new craftcms/craft starter for Craft 6, and update your DDEV configuration. After completing some automated updates, the tool will print out some Next steps. You may not see all of these, depending on how your application is configured:
Updating the @web and @webroot aliases in config/general.php
Remove the omitScriptNameInUrls and pathParam settings from config/general.php
Restart DDEV
<aside> <img src="/icons/warning_yellow.svg" alt="/icons/warning_yellow.svg" width="40px" />
After the restart, your DDEV project will use the laravel project type. This means that the ddev craft shortcut is no longer available, but ddev artisan is.
</aside>
Run ddev composer update
Run ddev php artisan vendor:publish --tag=craftcms
The craftcms/craft starter project has also been updated for Craft 6. The process requires a bit more intervention than in 5.x: