Skip to content

Introduction

Filament CMS is a block-based content management system built on top of Laravel and Filament. It is organized into focused packages that work together to provide a complete CMS experience:

filament-cms-core

The core CMS package. Provides Pages, Sections, Posts, Menus, and a block-based content builder via Filament admin panels.

filament-cms-livewire

Livewire frontend rendering. Provides page and section components for Livewire-based frontends.

ve-filament-cms

The visual editing package. Enables inline content editing directly on the frontend pages.

With Filament CMS, you can:

  • Create pages composed of reusable sections with drag-and-drop ordering
  • Build sections using a block-based content builder (headings, paragraphs, rich text, images, custom blocks)
  • Manage blog posts with categories, tags, and media
  • Build navigation menus with nested items
  • Edit content visually by clicking directly on frontend elements
  • Reuse content components across multiple pages

This documentation is organized into three audiences:

| Audience | Focus | |----------|-------| | Administrators | Managing content, pages, posts, menus, users, and settings via the admin panel | | Editors | Creating and editing content using the editor panel and visual editing tools | | Developers | Building pages, sections, content blocks, and integrating the CMS into Laravel applications |

graph TD
    A[Page] -->|has many| B[Section]
    B -->|contains| C[Content Blocks]
    C -->|rendered by| D[Livewire Component]
    D -->|with| E[Visual Editing]

A Page is a URL-routable entity (like /about or /contact).

A Section is a reusable content block that belongs to one or more pages. It stores its content as JSON.

A Content Block is a single unit of content within a section (like a heading, paragraph, or hero block).

A Livewire Component is the frontend PHP class that renders the section's content into HTML.

Visual Editing allows authorized users to click on rendered frontend elements and edit them inline.

Filament CMS follows a separation of concerns architecture:

  • filament-cms-core is the Filament plugin that provides the admin dashboard, data models, and content resolution. It is frontend-agnostic.
  • filament-cms-livewire is a Laravel package that provides Livewire-specific frontend rendering. It depends on the core package.
  • filament-cms-inertia (coming soon) will provide Inertia.js-specific frontend rendering, also depending on the core package.

This means you can use the core CMS dashboard with any frontend technology — Livewire, Inertia, or even a headless API.

  • Three-tier content: Page → Section → Content Block
  • Content resolution: JSON content is resolved into typed objects (SectionContent, BlockData)
  • Source maps: Each rendered HTML element carries metadata tracing it back to its database origin
  • Block-based builder: Content is built using Filament's Builder field with custom block types