chuckbe / chuckcms
A lightweight Laravel CMS for easy control of a website.
Requires
- php: ^8.2
- barryvdh/laravel-dompdf: ^3.0
- laravel/framework: ^10.0||^11.0||^12.0||^13.0
- laravel/ui: ^4.2
- mcamara/laravel-localization: ^2.0
- spatie/eloquent-sortable: ^4.0||^5.0
- spatie/laravel-honeypot: ^4.5
- spatie/laravel-permission: ^6.0
- spatie/laravel-sitemap: ^7.2||^8.0
- spatie/laravel-translatable: ^6.3
- unisharp/laravel-filemanager: ^2.6
Requires (Dev)
- orchestra/testbench: ^8.0||^9.0||^10.0||^11.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
- dev-master
- v0.3.3
- v0.3.2
- v0.3.1
- v0.3.0
- v0.2.15
- v0.2.14
- v0.2.13
- v0.2.12
- v0.2.11
- v0.2.10
- v0.2.9
- v0.2.8
- v0.2.7
- v0.2.6
- v0.2.5
- v0.2.4
- v0.2.3
- v0.2.2
- v0.2.1
- v0.2.0
- v0.1.52
- v0.1.51
- v0.1.50
- v0.1.49
- v0.1.48
- v0.1.47
- v0.1.46
- v0.1.45
- v0.1.44
- v0.1.43
- v0.1.42
- v0.1.41
- v0.1.40
- v0.1.39
- v0.1.38
- v0.1.37
- v0.1.36
- v0.1.35
- v0.1.34
- v0.1.33
- v0.1.32
- v0.1.31
- v0.1.30
- v0.1.29
- v0.1.28
- v0.1.27
- v0.1.26
- v0.1.25
- v0.1.24
- v0.1.23
- v0.1.22
- v0.1.21
- v0.1.20
- v0.1.19
- v0.1.18
- v0.1.17
- v0.1.16
- v0.1.15
- v0.1.14
- v0.1.13
- v0.1.12
- v0.1.11
- v0.1.10
- v0.1.9
- v0.1.8
- v0.1.7
- v0.1.6
- v0.1.5
- v0.1.4
- v0.1.3
- v0.1.2
- v0.1.1
- v0.1-beta.7
- v0.1-beta.6
- v0.1-beta.5
- v0.1-beta.4
- v0.1-beta.1
- v0.1-beta
- dev-claude/featured-locale
- dev-claude/sitemap-8
- dev-claude/laravel-13
- dev-feature/multisite
- dev-refactor
- dev-regexfix
- dev-userpermissions
- dev-matomo
- dev-repeaters
- dev-Featurepagesux
- dev-development
This package is auto-updated.
Last update: 2026-10-19 15:19:58 UTC
README
Features
ChuckCMS is an opinionated way of building websites and webshops in Laravel. ChuckCMS provides out-of-the-box ui and features by packages in the Laravel eco-system.
- Dashboard with analytics by GA or Matomo.
- Menus, navigation and redirects.
- Page management with Pagebuilder.
- User, role and permission management.
- File management.
- Form management.
- Repeaters and resources, a way to create data objects.
- Settings and configuration management.
Docs
Requirements
- PHP 8.2 or higher
- Laravel 10, 11, 12 or 13 (Laravel 13 needs PHP 8.3+)
Upgrading an existing site from 0.2? See UPGRADING.md.
Installation
ChuckCMS will work best in a fresh installation.
Install ChuckCMS in a freshly scaffolded Laravel project via Composer:
composer require chuckbe/chuckcms
On Laravel 13 with PHP 8.3, add
-W(composer require chuckbe/chuckcms -W). New Laravel 13 apps ship with Guzzle 8, and on PHP 8.3 the sitemap package ChuckCMS uses still needs Guzzle 7;-Wlets Composer switch it. PHP 8.4 needs no flag.
Publish assets and config
You can now publish all assets and config files this package needs:
php artisan vendor:publish --provider="Chuckbe\Chuckcms\ChuckcmsServiceProvider"
Default language
The site's default language is featuredLocale in config/lang.php (nl unless you change it). It must be one of the site's languages. With hideDefaultLocaleInURL the default language has no URL prefix, so changing it moves the other languages under /{locale}/.... With useAcceptLanguageHeader enabled, a first-time visitor is sent to the language their browser asks for instead.
Packages
unisharp/laravel-filemanager package
You can now publish assets for unisharp/laravel-filemanager:
php artisan vendor:publish --tag=lfm_public
spatie/laravel-permission package
You can now publish migrations and config file for spatie/laravel-permission:
php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider"
There is no need to add the middleware for this package. It is already being loaded by ChuckCMS.
spatie/laravel-honeypot package
Forms are protected against spam by spatie/laravel-honeypot. It works without configuration; to change the field names or timing, publish its config:
php artisan vendor:publish --tag=honeypot-config
In your own templates, render the honeypot fields inside every form that posts to ChuckCMS with <x-honeypot />.
Migration
You can now run migrations:
php artisan migrate
Make sure you've added DB credentials to your
.envfile.
Routes
You can now add the routes for this package:
Chuck::auth(); Chuck::routes(); Chuck::frontend();
New site
You can now generate a new site with the following command:
php artisan chuckcms:generate-site
Generate default roles and permission
php artisan chuckcms:generate-roles-permissions
Generate super admin
php artisan chuckcms:generate-super-admin
Visit http://yourapp.local/dashboard/pages
Create a new page
Generate a sitemap
php artisan chuckcms:generate-sitemap
License
Licensed under MIT license.
Author
Written by Karel Brijs in Antwerp.