Configuration
This guide covers all configuration options for both the core CMS and visual editing packages.
Core CMS Configuration
Section titled “Core CMS Configuration”The main configuration file is config/filament-cms-core.php:
return [ /* |-------------------------------------------------------------------------- | Content Blocks |-------------------------------------------------------------------------- | | Register content blocks for the builder. Each block must implement | JFA\FilamentCMSCore\Contracts\ContentBlock. | */ 'content_blocks' => [ 'default' => [ // Package defaults (auto-populated by FilamentCMSCorePlugin) ], 'custom' => [ App\CMS\Blocks\Hero::class, App\CMS\Blocks\Cta::class, App\CMS\Blocks\Team::class, // ... ], ],];content_blocks
Section titled “content_blocks”Register your custom content block classes:
'content_blocks' => [ 'custom' => [ App\CMS\Blocks\Hero::class, App\CMS\Blocks\Mission::class, App\CMS\Blocks\Team::class, App\CMS\Blocks\Testimonials::class, ],],Livewire Frontend Configuration
Section titled “Livewire Frontend Configuration”The Livewire package publishes config/filament-cms-livewire.php:
return [ /* |-------------------------------------------------------------------------- | Section Components Path |-------------------------------------------------------------------------- | | The namespace where frontend Livewire section components are located. | The Page class uses this to resolve section components by slug. | */ 'sections_class_path' => 'App\\Livewire\\',];sections_class_path
Section titled “sections_class_path”Defines where the CMS looks for frontend Livewire components:
'sections_class_path' => 'App\\Livewire\\',Given a section with slug hero, the CMS resolves:
App\Livewire\HeroIf your components are in subdirectories:
'sections_class_path' => 'App\\Livewire\\Sections\\',Resolves:
App\Livewire\Sections\HeroVisual Editing Configuration
Section titled “Visual Editing Configuration”Visual editing is configured in config/filament-cms-livewire.php:
return [ /* |-------------------------------------------------------------------------- | Visual Editing |-------------------------------------------------------------------------- | | Control whether visual editing features are enabled. When disabled, | renderField() outputs plain values and the contentUpdated listener | becomes a no-op. | */ 'visual_editing' => [ 'enabled' => env('VISUAL_EDITING_ENABLED', true), ],];Environment Variables
Section titled “Environment Variables”VISUAL_EDITING_ENABLED=trueThe ve-filament-cms-livewire package (if installed) provides its own separate configuration for middleware, image storage, and other advanced features.
Filament Panel Configuration
Section titled “Filament Panel Configuration”Admin Panel
Section titled “Admin Panel”use JFA\FilamentCMSCore\FilamentCMSCorePlugin;use BezhanSalleh\FilamentShield\FilamentShieldPlugin;
public function panel(Panel $panel): Panel{ return $panel ->default() ->id('admin') ->path('admin') ->colors(['primary' => Color::Amber]) ->plugins([ FilamentCMSCorePlugin::make(), FilamentShieldPlugin::make(), ]);}Editor Panel
Section titled “Editor Panel”use JFA\FilamentCMSCore\FilamentCMSCorePlugin;
public function panel(Panel $panel): Panel{ return $panel ->id('editor') ->path('editor') ->brandName('Content Editor') ->colors(['primary' => Color::Blue]) ->plugins([ FilamentCMSCorePlugin::make(), ]);}Database Configuration
Section titled “Database Configuration”Ensure your database supports JSON columns:
'default' => env('DB_CONNECTION', 'pgsql'),
'connections' => [ 'pgsql' => [ // ... 'charset' => 'utf8', 'prefix' => '', 'prefix_indexes' => true, 'search_path' => 'public', 'sslmode' => 'prefer', ],],Spatie Configuration
Section titled “Spatie Configuration”Media Library
Section titled “Media Library”'disk_name' => env('MEDIA_DISK', 'public'),
'path_generator' => Spatie\MediaLibrary\Support\PathGenerator\DefaultPathGenerator::class,Settings
Section titled “Settings”'setting_model' => Spatie\LaravelSettings\Models\SettingsProperty::class,No additional configuration required.
Route Configuration
Section titled “Route Configuration”Standard web routes:
use App\Livewire\Pages\HomePage;use App\Livewire\Pages\About;use App\Livewire\Pages\Services;
Route::get('/', HomePage::class)->name('home');Route::get('/about', About::class)->name('about');Route::get('/services', Services::class)->name('services');Tailwind CSS Configuration
Section titled “Tailwind CSS Configuration”Ensure your CSS includes Tailwind:
@import 'tailwindcss';
@theme { --color-primary: #f59e0b; --color-primary-dark: #d97706;}Best Practices
Section titled “Best Practices”- Keep block registration in config (not hardcoded)
- Use environment variables for feature flags
- Configure image disk for your hosting environment
- Set up proper database charset for JSON support
- Use separate panels for different user roles