Skip to content

Aurora 1.3 is out!

What's new →

Guide

Move a Statamic site to Aurora

Top-down view of a desk with a laptop, sketches, a phone and books

Statamic and Aurora are both Laravel packages, so a Statamic website moves to Aurora inside its own project. Aurora is installed beside Statamic, the website is rebuilt on Aurora while Statamic keeps serving it, and Statamic goes once everything has come across. An AI coding assistant can do most of the work: Aurora comes with a skill that knows the way.

1. Install Aurora beside Statamic

You need Statamic 6 on Laravel 13 and PHP 8.4, and Aurora 1.3.4 or later. Work on a branch of the project.

~ Terminal
$ composer require shipaurora/cms
$ php artisan aurora:install
$ php artisan boost:install   # choose shipaurora/cms when it asks

Statamic's control panel stays at /cp, and Aurora's admin is at /admin. While Statamic's routes are on, Statamic keeps serving the website, and you see the Aurora pages in its visual editor. If Statamic keeps its users in the database (the eloquent repository in config/statamic/users.php), check first: Aurora gives the users table UUID keys. With the default file users, nothing clashes.

2. Ask your AI coding assistant

Boost has installed Aurora's skills for Claude Code, Cursor and the other coding assistants. In the project, ask:

Plain text
Port this Statamic site to Aurora CMS.

The aurora-statamic skill takes it from there, step by step, and asks where the website needs a decision of yours:

  • Templates and layouts become Aurora layouts and block views in Blade, from the Antlers or Blade they were.
  • Bard and Replicator sets become blocks, one for each set, and the text between them rich text blocks.
  • Collections of pages become pages with the same tree and addresses; a blog's entries become pages under the blog; collections of records, such as a team, become models of the site's own with a screen in the admin and blocks that pick them.
  • Globals become a settings tab, and navigation becomes menus.
  • Assets go into the media library with their alt text and folders, and forms become Aurora forms.
  • A multi-site setup becomes Aurora's sites and languages, with each entry's localizations as the page's translations.

3. Check it in the visual editor

The content comes across with an artisan command of the site's own, which updates what it made the last time instead of adding doubles. Run it as often as you need, open the pages under /admin and compare them with the Statamic site until they look the same.

4. Switch over

Run the import one last time, after the editors' last change in Statamic, and turn Statamic's routes off. Aurora serves the website from then on, and /cp still works for comparing.

config/statamic/routes.php PHP
'enabled' => false,

Check the old addresses (a changed one gets a redirect), the forms and the menus. When nobody needs Statamic any more, remove it with composer remove statamic/cms, together with its files: content/, resources/blueprints, resources/fieldsets, resources/forms, users/ and config/statamic/.

Without an AI assistant

The steps are the same by hand. The skill, vendor/shipaurora/cms/resources/boost/skills/aurora-statamic/SKILL.md, has the map from each part of Statamic to Aurora and the calls to Statamic's API that read it.