numberninecms/cms
NumberNine CMS is a Laravel-based content management system offering a modular admin interface, page and content management, and extensible building blocks for rapidly launching custom websites. It follows Laravel conventions and supports Blade templates for easy integration.
composer require numberninecms/cms and confirm the PHP/Laravel version constraints in composer.json. The package service provider is auto-discovered.php artisan vendor:publish --provider="NumberNine\Cms\CmsServiceProvider"
php artisan migrate
Check the published config file first — it typically controls route prefix, middleware, storage disk, and module registration.php artisan route:list) to find the admin entry point (commonly /admin or a configurable prefix), then log in with a seeded/admin user.$request->all() (the behavior corrected in 0.4.5). Use $request->validated() for persistence and $request->file() explicitly when handling uploads.auth/role middleware, keep public content routes separate, and cache routes only after clearing config cache in production.0.4.*) and review the changelog before upgrading. Run smoke tests for admin forms, uploads, and page rendering after each update.all() instead of get()) is a reminder that request-shape assumptions can shift; audit any custom code that reads request arrays directly.$request->get() vs $request->all(): get() returns input data only and can miss uploaded files or merged request data. all() returns the full input array including files. If custom form or upload code relied on get(), switch to all() or use input()/file() explicitly.php artisan config:clear and php artisan route:clear. “My module/page isn’t showing” is frequently a cached config or route issue.php artisan storage:link. Missing files usually indicate a disk mismatch or missing symlink rather than a code bug.php artisan route:list to confirm admin/public routes, Laravel logs or Telescope for request payload issues, and a temporary test route that dumps $request->all() to see exactly what the CMS receives.app/ or a separate package so they survive composer update. Prefer package events/hooks or decorators over patching core classes.How can I help you explore Laravel packages today?