Template structure
The Creopse template structure is based on the backend used for its installation. Creopse adds the directories required for its operation, while the host backend's native structure remains fully functional.
With a Laravel backend
Supported Laravel versions are 10, 11, 12 and 13. During installation, Creopse automatically detects the version in use and integrates the necessary directories, files and packages into the existing structure.
WARNING
The installation must be fresh. Creopse overwrites certain files during installation; any pre-existing custom files may be lost.
Elements marked with ✦ are added by Creopse. Everything else belongs to Laravel's native structure.
With a Vue frontend
my-site/
...
├── config/
│ ├── creopse.php # ✦ Creopse configuration
├── public/
│ ├── creopse/ # ✦ Administration panel files
├── resources/
│ ├── css/
│ ├── js/
| | ├── assets/
│ | ├── components/
| | | ├── sections/ # ✦ Section components
| | | ├── widgets/ # ✦ Widget components
| | ├── composables/
| | | ├── dataloader.ts # ✦ Data preloading composables
| | ├── pages/
| | | ├── Container.vue # ✦ Application root component
| | | ├── NotFound.vue # ✦ 404 page component
| | ├── stores/ # ✦ Pinia stores
| | ├── app.ts
| | ├── App.vue
| | ├── constants.ts # ✦ Global constants
| ├── views/ # Blade views
├── storage/
│ ├── plugins/ # ✦ Application plugins
...Notable elements
creopse.php— Creopse configuration entry point.public/creopse/— Compiled administration panel assets. This directory is managed by Creopse; do not modify manually.resources/js/components/sections/,resources/js/components/widgets/— Components scaffolded through the CLI, see Sections & Widgets.resources/js/pages/Container.vue— Root component that receives page data from Inertia and orchestrates the rendering of sections and widgets.resources/js/composables/dataloader.ts— Composable executed at platform startup for asynchronous client-side data preloading — see the shared store pattern in Content Models.resources/js/stores/— Application Pinia stores. Creopse injects a few of its own stores at startup.plugins/— Storage directory for installed plugins. Each plugin is isolated in its own{vendor}-{name}/subdirectory.
With a React frontend
my-site/
...
├── config/
│ ├── creopse.php # ✦ Creopse configuration
├── public/
│ ├── creopse/ # ✦ Administration panel files
├── resources/
│ ├── css/
│ ├── js/
| | ├── assets/
│ | ├── components/
| | | ├── sections/ # ✦ Section components
| | | ├── widgets/ # ✦ Widget components
| | ├── hooks/
| | | ├── dataloader.ts # ✦ Data preloading hooks
| | ├── pages/
| | | ├── Container.tsx # ✦ Application root component
| | | ├── NotFound.tsx # ✦ 404 page component
| | ├── stores/ # ✦ Zustand stores
| | ├── app.tsx
| | ├── constants.ts # ✦ Global constants
| | ├── i18n.ts # ✦ Translation configuration
| ├── views/ # Blade views
├── storage/
│ ├── plugins/ # ✦ Application plugins
...Notable elements
creopse.php— Same as the Vue configuration. Creopse configuration entry point.resources/js/components/sections/,resources/js/components/widgets/— Components scaffolded through the CLI, see Sections & Widgets.resources/js/pages/Container.tsx— React equivalent ofContainer.vue. Receives Inertia props and orchestrates the rendering of sections and widgets.resources/js/hooks/dataloader.ts— Hook executed at platform startup for asynchronous client-side data preloading.resources/js/stores/— Application Zustand stores.plugins/— Storage directory for installed plugins. Each plugin is isolated in its own{vendor}-{name}/subdirectory.
Next steps
Once this structure is in place, see Sections & Widgets, Pages, Content Models, Permalinks, and Menus to build out the template's content, and Utilities for the list of composables/hooks and helpers available in a component.