loicdelanoe / statamic-inertia-adapter
Seamlessly integrate Statamic CMS data with Inertia.js-powered Laravel front-ends.
Package info
github.com/loicdelanoe/statamic-inertia-adapter
pkg:composer/loicdelanoe/statamic-inertia-adapter
Fund package maintenance!
Requires
- php: ^8.3
- illuminate/contracts: ^10.0||^11.0||^12.0
- inertiajs/inertia-laravel: ^v2.0.0
- spatie/laravel-package-tools: ^1.16
- statamic/cms: ^5.48||^6.0
Requires (Dev)
- laravel/pint: ^1.14
- nunomaduro/collision: ^8.1.1||^7.10.0
- orchestra/testbench: ^10.0.0||^9.0.0||^8.22.0
- pestphp/pest: ^2.0||^3.0
- pestphp/pest-plugin-arch: ^2.5||^3.0
- pestphp/pest-plugin-laravel: ^2.0||^3.0
- spatie/laravel-ray: ^1.35
This package is auto-updated.
Last update: 2026-03-26 11:15:19 UTC
README
⚠️ Warning: This project is currently in development. APIs and features may change without notice.
Introduction
This adapter allows you to use Inertia.js with Statamic. For more information on Statamic’s features and how they work, please refer to the official documentation: https://statamic.dev
Installation
To setup the package in an existing Statamic project, run the following command:
composer require loicdelanoe/statamic-inertia-adapter
After that, you will need to set up Inertia.js. For guidance, follow the official documentation.
If you prefer a ready-to-go setup, you can use the Statamic Inertia.js starter kit. Currently, it only supports Vue.js, but it should be easy to adapt for React or Svelte.
Usage
Layouts and Templates
This package supports Layouts and Templates as defined in Statamic.
- Layouts must be placed in
resources/js/layouts - Templates must be placed in
resources/js/pages
⚠️ Important:
For Statamic to recognize available layouts and templates, you must also create corresponding (empty) view files in the default resources/views directory.
For example, if you create a template at:
resources/js/pages/Home.vue
You must also create one of the following files:
resources/views/home.antlers.html
or
resources/views/home.blade.php
These files can remain empty, they are only needed to register the template with Statamic.
Shared Data
The package exposes shared data using Inertia.js. For more information about Inertia’s shared data system, see the official documentation.
The following data is shared globally:
-
Navigations: all menus defined in your CMS are available in the frontend.
-
Globals: global fields or settings accessible across pages.
-
Multisite support: if you are using Statamic Pro’s multisite feature, a variable is available to help implement a site switcher.
- To make the site switcher more accurate, a
related_pagekey is also provided. It corresponds to the equivalent page in other sites/languages, allowing you to link users to the correct localized page directly.
- To make the site switcher more accurate, a