rjcodes / rjcms
A lightweight Laravel CMS package for rapidly building admin dashboards with minimal frontend coding.
Requires
- php: ^8.3
- illuminate/contracts: ^12.0 || ^13.0
- illuminate/support: ^12.0 || ^13.0
- livewire/livewire: ^4.0 || ^4.3
- spatie/laravel-permission: ^7.4
Requires (Dev)
- orchestra/testbench: ^10.0 || ^11.0
- pestphp/pest: ^4.0
- pestphp/pest-plugin-laravel: ^4.0
README
A WordPress-style content management system for Laravel — an admin panel, a visual BREAD field-builder, media library, navigation menus, roles & permissions, site settings, and a public blog — installable into any Laravel 12/13 app.
composer require rjcodes/rjcms
php artisan rjcms:install
That's it. Visit /admin and sign in.
Requirements
- PHP 8.3+
- Laravel 12 or 13
- Livewire 4
Installation
- Require the package:
composer require rjcodes/rjcms
- Run the installer (publishes assets + config, migrates, seeds, creates your admin):
php artisan rjcms:install
You'll be prompted for an admin email and password. Non-interactive / CI:php artisan rjcms:install --admin-email="you@example.com" --admin-password="secret" --no-interaction
- Open
/adminand log in.
Want demo content to explore the BREAD builder? Add --demo:
php artisan rjcms:install --demo
The installer is idempotent — safe to re-run after upgrades.
What you get
| Feature | Description |
|---|---|
| Admin panel | WordPress-style dashboard at /admin. |
| BREAD builder | Define content types and fields (text, image, relationship, repeater, …) visually — no migrations to write. |
| Media library | Upload, browse and pick images; inline uploads from the rich-text editor. |
| Menus | Drag-and-drop navigation builder, rendered via the menu('slug') helper. |
| Roles & permissions | Powered by spatie/laravel-permission, with a super_admin that bypasses every gate. |
| Settings | Typed, grouped site settings, read with the setting('key') helper. |
| Blog | Public blog with categories at /blog. |
Configuration
Publish and edit the config if you need to:
php artisan vendor:publish --tag=rjcms-config
config/rjcms.php lets you change:
prefix— mount the admin panel somewhere other than/admin.user_model— point the CMS at yourUsermodel (it must use Spatie'sHasRolestrait). Defaults to the package's ownUser.super_admin_role— the all-powerful role name.relationship_models— models exposed in the BREAD relationship picker (add your own).register_root_redirect— settrueto redirect/→ the admin panel.
Upgrading
composer update rjcodes/rjcms php artisan migrate php artisan vendor:publish --tag=rjcms-assets --force
Customising the views
Views are namespaced rjcms::. To override any of them, publish and edit:
php artisan vendor:publish --tag=rjcms-views
Published views land in resources/views/vendor/rjcms/ and take precedence.
Contributing / developing the package
See DEVELOPMENT.md — a from-scratch guide to how this package is built (service providers, publishing, Testbench, Packagist). Run the test suite with:
composer install vendor/bin/pest
License
MIT.