Skip to content
MCG Filament CMS Demo

Documentation

Filament CMS is a block-based, versioned CMS for Laravel and Filament. Pages are built from an ordered list of blocks. A block is a PHP class and a Blade view. A layout is an anonymous Blade component holding the page chrome and the regions blocks are placed into.

These pages follow the order of the developer guide rather than an alphabetical one. Read Installation first, then The data model. The rest can be read as needed.

Reference inside the panel

The panel generates the pages below from the registries rather than from anything written by hand:

  • Blocks & layouts (/cms/gallery) β€” every registered block with its field contract and a rendered preview, and every layout with the regions it declares.

  • Dashboard (/cms/dashboard) β€” the panel's landing page, holding whatever widgets the application registers.

Where a table here disagrees with the panel, the panel is correct: it reads the registries directly.

Sections

  1. Installation

    Installing the package, wiring up the stylesheet, and creating the first administrator.

  2. The data model

    The six entities of the data model and the path an HTTP request takes through them.

  3. Multilingual sites

    This page explains how one site serves the same page in several languages, how translations are created and linked, and how to rename a locale.

  4. Blocks

    Generating a block, how discovery and registration work, every method on the contract, and how to override one.

  5. Layouts

    Anonymous Blade components that provide the page chrome, and how they are discovered and registered.

  6. Regions

    Named areas blocks can be placed into, how the editor detects them, and shared regions whose blocks belong to the layout.

  7. Draft view and live reload

    Which users see drafts on the public site, the draft banner, sharing a draft by signed link, and how the site window reloads after a save.

  8. Width presets

    How --cms-block-max resolves, and how to change what the measurements mean.

  9. Editing on the page

    How a signed-in editor edits, adds, duplicates and reorders blocks directly on the public site, without returning to the admin panel.

  10. Content types

    How to generate, register and configure a content type: its methods, routing, capability toggles, block rules, panel behavior and structured data.

  11. Skins and the design-token system

    Every color, font and measurement is a custom property declared once. A skin reassigns them.

  12. Media

    The site's media library, and the rules that keep a media id stored in a block resolving to the same image.

  13. Forms

    Building a form in the admin panel, placing it on a page with the Form block, and reading the submissions in the panel.

  14. Permissions

    Which users may perform which actions in the admin panel, decided by Laravel's Gate against a fixed vocabulary of abilities.

  15. Notifications

    Messages to your team in Slack or by email when content changes, sent only for the events you select.

  16. Caching

    The package caches whole pages, as rendered HTML, for anonymous GET requests only.

  17. Search

    How the site search builds its index, matches and ranks queries, and how to add a search page or replace the backend.

  18. Tutorials

    Four step-by-step tutorials: a class-based block, the same block as a Livewire block, a page layout and a skin, each from the Artisan generator to a working result on the site.

  19. The MCP server

    The MCP server exposes the admin panel's operations to an AI client over stdio or HTTP.

  20. The delivery API

    The delivery API serves read-only JSON to a frontend that renders its own components.

  21. Integrating another package

    This page explains how another package owns URLs, is referenced from CMS content, reacts to content events and invalidates cached pages.

  22. Testing your work

    This page explains how to test blocks, content types and layouts in an application, and how to run the package's own suite.

  23. Known traps

    Failures that raise no error, each listed by its symptom first.

  24. Your application's data

    Displaying rows from your application's own Eloquent tables on pages whose surrounding copy an editor still controls in the CMS.

  25. Command and config reference

    This page lists every console command, every config key with its default, and the blocks in the block picker.