eminiarts / aura-cms
Aura CMS for Laravel
Requires
- php: ^8.2
- doctrine/dbal: ^3.6|^4.0
- intervention/image: ^2.7
- lab404/laravel-impersonate: ^1.7.5
- laravel/fortify: ^1.20
- laravel/prompts: ^0.3
- laravel/sanctum: ^4.0
- livewire/livewire: ^3.6|^4.0
- spatie/laravel-package-tools: ^1.16
Requires (Dev)
- intervention/image-laravel: ^1.0
- laravel/dusk: ^8.0
- laravel/framework: ^10.0|^11.0|^12.0
- laravel/pint: ^1.18
- nunomaduro/collision: ^8.1
- nunomaduro/larastan: ^2.0|^3.0
- orchestra/testbench: ^9.0|^10.0
- pestphp/pest: ^3.0|^4.0
- pestphp/pest-plugin-laravel: ^3.0|^4.0
- pestphp/pest-plugin-livewire: ^4.0
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0|^2.0
- spatie/laravel-ray: ^1.32
- spatie/ray: ^1.37
- spatie/test-time: ^1.3
This package is auto-updated.
Last update: 2026-07-12 09:57:52 UTC
README
Aura CMS
A content management system for Laravel developers. Define your content types as PHP classes — Aura generates the admin panel around them: forms, tables, search, media, and permissions. Built on the TALL stack (Tailwind CSS, Alpine.js, Laravel, Livewire).
How it works
A resource is an Eloquent model that declares its fields. This class is a complete, working content type:
<?php namespace App\Aura\Resources; use Aura\Base\Resource; class Article extends Resource { public static string $type = 'Article'; public static ?string $slug = 'article'; public static function getFields() { return [ [ 'type' => 'Aura\\Base\\Fields\\Text', 'name' => 'Title', 'slug' => 'title', 'validation' => 'required|max:255', ], [ 'type' => 'Aura\\Base\\Fields\\Wysiwyg', 'name' => 'Content', 'slug' => 'content', ], [ 'type' => 'Aura\\Base\\Fields\\BelongsTo', 'name' => 'Author', 'slug' => 'author_id', 'resource' => 'Aura\\Base\\Resources\\User', ], ]; } }
Drop it in app/Aura/Resources and /admin/article serves a full CRUD interface — index table with sorting, filtering and search, create/edit forms with validation, and policy-based permissions. No migration needed: fields are stored as meta by default, and you can move a resource to its own table when it grows.
Features
- 42 field types — text, dates, media, relationships, repeaters, tabs and panels — plus your own via
php artisan aura:field - Table views — list, grid, and kanban, with saved filters and per-user column settings
- Media manager — drag-and-drop uploads with automatic thumbnails
- Roles & permissions — per-resource permissions enforced by policies
- Teams — optional multi-tenancy with automatic scoping of every resource
- Global search — Cmd+K across all resources, with bookmarks and recent pages
- Visual resource editor — edit fields in the browser during local development; changes are written back to your PHP classes
- Plugins — package resources, fields, and pages with
php artisan aura:plugin
Requirements
- PHP 8.2+
- Laravel 10, 11, or 12
Installation
composer require eminiarts/aura-cms php artisan aura:install
The installer publishes config, assets, and migrations, extends your User model, and offers to run the migrations and create your first admin user. Then log in and open /admin.
Documentation
Full documentation at aura-cms.com/docs — from the 15-minute quick start to the complete field reference.
Working with an AI assistant? The docs are LLM-friendly: aura-cms.com/llms.txt indexes every page, and every page is available as raw markdown by appending .md to its URL.
Testing
composer test
Contributing
Please see CONTRIBUTING for details.
Security
If you discover a security issue, please email info@eminiarts.ch instead of using the issue tracker.
Credits
Built by Emini Arts and all contributors. Aura CMS runs production applications for agencies and startups.
License
MIT. See LICENSE.

