Skip to content

What is Capell?

Capell CMS banner showing the Pages admin surface

Latest Version on Packagist GitHub Tests Action Status Total Downloads Documentation

Capell is a CMS layer for Laravel, built on Filament. It gives your app the content model most teams rebuild on every project — pages, multi-site, multi-language URLs, media, redirects, roles, settings — while leaving the public frontend entirely in your hands.

You keep Laravel: Eloquent models, queues, Blade, Composer, tests, and your deploy pipeline. Capell adds the CMS, an editor workspace, and clean extension points, so a content site never turns into an endless series of one-off page builds.

Capell admin dashboard

Capell’s admin is a Filament workspace for real content operations: page trees, media, settings, theme workflows, diagnostics, and package-backed tools all sit inside the Laravel app you already deploy.

SurfaceWhat it shows
Admin interfaceDashboard, Pages, Media, Settings, Theme Library, and Site Health screenshots with notes on when editors use each screen.
Create your first pageA step-by-step page authoring flow with screenshots for site selection, parent pages, slug previews, content, draft saves, and settings.
Music store CMS exampleA realistic content model showing how Capell maps pages, articles, events, products, artists, and navigation into a Laravel project.
  • Stay in Laravel. Content lives in your database as normal Eloquent models — no separate CMS product to sync with.
  • The frontend stays yours. Render with Blade, Livewire, Inertia, Vue, static HTML, or your own stack. Capell supplies the content context; you own the output.
  • Multi-site and multi-language are first-class, not bolted on — site domains, translated URLs, URL history, and redirects are built in.
  • Features arrive as packages, not patches. Add fields, widgets, themes, and workflows through stable extension points without forking core.
  • Built for the long haul. Page moves, slug redirects, draft previews, per-site editor scoping, and targeted cache invalidation are defaults, not afterthoughts.

New to the idea? Why Capell compares it head-to-head with a custom Filament build, Statamic, and rolling your own — and is honest about when not to choose it.

Capell’s content model is a small set of nouns. Learn these and the rest of the system follows:

ConceptWhat it is
SiteA publishing surface with its own domain(s), languages, and settings.
LanguageA translation scope within a site; drives translated URLs and fields.
PageThe primary routable content entity. Pages form a tree and belong to a site.
Page URLA page’s per-language address, with URL history and automatic redirect records.
BlueprintThe reusable definition behind a page, theme, site, or element type.
LayoutThe theme-aware template structure a page renders into.
ThemeThe presentation layer: templates, assets, and named layout areas.
MediaUploaded files (images, documents) with a swappable storage backend.
TranslationTranslatable field values, keyed per language.
SettingsTyped, schema-driven configuration surfaced on the admin Settings page.

The path from authoring to a public page:

Site → Language → Page → Layout + widgets + assets → your frontend output

Definitions for every term — editor-facing and developer-facing — live in the Glossary. For the model in depth, read How Capell works.

For a disposable local trial with demo content:

Terminal window
composer create-project laravel/laravel music-store
cd music-store
composer require capell-app/installer
php artisan filament:install --panels
php artisan capell:install --demo --url=http://localhost:8000
php -S 127.0.0.1:8000 -t public public/index.php

Open http://localhost:8000/admin for the admin panel and http://localhost:8000 for the frontend. The Quickstart covers database setup, queue notes, screenshots, and first-run fixes.

Pick the path that matches what you are doing. The full route map lives at docs/README.md.

I want to…Read this
Try Capell in a fresh Laravel appQuickstart
Install Capell into an existing appInstall guide
Learn the core concepts in orderCapell Learn
Understand the developer architectureHow Capell works
Build or extend a Capell packagePackages
Spend my first session as an editorFirst session
Build with Inertia, Vue, or interactivityInertia runtime · Interactions

This repo is the 4.x host monorepo: the five foundation packages every Capell site is built on. First-party feature packages (themes, SEO, Publishing Studio, and more) live separately and install via Composer — browse the package catalogue.

PackageComposer nameWhat it ownsDocs
Corecapell-app/coreThe content model: sites, languages, pages, URLs, layouts, themes, media, translations, settings, registriesOverview
Admincapell-app/adminThe Filament editor workspace: resources, dashboards, settings, media, users, admin extension pointsOverview
Frontendcapell-app/frontendPublic routing, site context, themes, assets, render hooks, response delivery, optional cache/static outputOverview
Installercapell-app/installerThe browser installer and installer cleanup flowOverview
Marketplacecapell-app/marketplaceExtension discovery, install authorization, and package acquisitionOverview

Each package also ships a source README: core · admin · frontend · installer · marketplace.

Require the installer and run the guided flow. The installer pulls in capell-app/core, then capell:install composer-requires the admin and frontend packages you choose (default: all installable) and writes them into your app’s composer.json. It is removable once setup finishes.

Terminal window
composer require capell-app/installer
php artisan capell:install

The full walkthrough — requirements, panel scaffolding, model patches, and headless/CI flags — is in the install guide.

Skip the installer and require exactly the packages you want. capell-app/core is the only hard dependency; admin and frontend are optional and each depend on core.

Terminal window
# Full stack, no installer
composer require capell-app/core capell-app/admin capell-app/frontend -W
# Headless / core only
composer require capell-app/core -W
# Core + admin, no public frontend
composer require capell-app/core capell-app/admin -W

Then run php artisan capell:install to apply migrations and setup; pass --packages= to scope it (for example --packages=capell-app/admin). capell-app/capell is the host monorepo repository, not an install target.

Capell draws deliberate package boundaries so concerns stay separate and replaceable:

  • Core owns the reusable content model and the registries packages extend. It depends on nothing opinionated.
  • Admin gives editors a Filament workspace over that model.
  • Frontend connects the model to the public site through routing, site context, themes, assets, render hooks, and response delivery — then hands the final HTML to your app.
  • Packages add fields, widgets, integrations, themes, workflows, and tools as normal Laravel packages.

Two conventions keep this clean: domain writes go through Actions, and structured boundary state uses Data objects. That keeps business rules out of Filament resources, Livewire components, controllers, and templates.

One safety rule underpins frontend output: anonymous and non-admin HTML must never leak authoring markup, model IDs, selectors, signed editor URLs, or package internals. See the Public HTML safety contract.

Packages and apps add behaviour through registries instead of patching host classes:

SurfaceEntry point
Page typesCapellCore::registerPageType(...)
Admin surfaces & widgetsCapellAdmin::contributeToAdminSurface(...), registerDashboardFilamentWidget(...), registerWidget(...)
Form field schemastagged extenders such as PageSchemaExtender::TAG
SettingsSettingsSchemaRegistry::register(...)
Frontend render hooksRenderHookRegistry::register(...)
Cache dependenciesCacheInvalidationRegistry::registerDependency(...)

Not sure which to reach for? Use the Extension point chooser, the API reference, or build one end to end.

ToolSupported versions
PHP8.4+
Laravel12.41.1+ or 13.x
Filament4.7+ or 5.2+
DatabaseMySQL 8+, MariaDB 10.3+, SQLite, or your configured Laravel database
Node.js20+
Composer2.7+

See the install guide for required PHP extensions, permissions, and install paths.

This section is for working inside this monorepo. Installing Capell into your own app does not require any of it — start with the Quickstart instead.

Common Composer scripts:

CommandPurpose
composer testRun the Pest test suite
composer test:fastRun the sharded fast Pest command
composer lintRun changed-file Pint formatting
composer analyzeRun the fast PHPStan configuration
composer preflightRun PHPStan and changed-file formatting
composer preflight:allFull non-mutating quality gate (checks, PHPStan, audit, Pest)
composer serveBuild and serve the Testbench workbench at localhost

A Docker harness is available when you need a clean shell for agent, CI, or local verification (docker compose up -d, then docker compose exec app composer test). It is a CLI package-development harness, not an application runtime, and provides MariaDB, Redis, Mailpit, Node, and the required PHP extensions.

For local path-repository setup, branch guidance, and the contribution workflow, see CONTRIBUTING.md and the Development docs.

Capell is commercial, proprietary software ("license": "proprietary"). Each licensed copy may run in one production environment at a time, and the license does not include updates or support unless those are part of the commercial agreement. See LICENSE.md for the full terms.

Public pricing, trial access, and what the free Foundation tier includes versus premium packages are published at capell.app. Some packages in the catalogue are premium add-ons that require a separate entitlement.