The CMS is Composer packages. The site is still your Laravel app.
A few custom resources are the right answer for a few stable screens. The maintenance problem starts when pages also need URLs, layouts, previews, revisions, media, publishing rules, multiple languages, and consistent public delivery.
That repeated work gets named owners: Core for the content model, Admin for editor concerns, Frontend for public delivery, and Composer packages for optional capability.
The first custom Filament resource is usually cheaper than adopting a CMS. The decision changes when the team keeps rebuilding the same page model, URL handling, layout rules, preview path, media workflow, revision history, and publishing controls across resources or projects.
Capell turns that repeated work into explicit boundaries. Core owns the shared Eloquent content model and page types. Admin gives editors a Filament workspace. Frontend connects hydrated data to project-owned presentation. Optional capability arrives as Composer packages through public extension points.
What to inspect before adoption
- Whether repeated page structures can be expressed as page types and shared layouts.
- Whether Filament is acceptable for the admin even though public presentation stays independent.
- Whether anonymous public output excludes model IDs, field paths, permissions, package internals, and signed editor URLs.
- Whether package migrations, routes, configuration, compatibility, tests, and upgrade guidance are visible before installation.
Capell does not ship a public delivery API, and it is the wrong fit for a non-Laravel stack or a team that rejects Filament. If a few custom resources still cover the work cleanly, keep them. Adopt the shared CMS layer when those resources have started recreating a product surface the team now has to maintain.
How the packages fit together
Capell uses Laravel concepts the team already knows: Eloquent models, service providers, Actions, data objects, policies, views, tests, queues, and Composer packages. The important question is whether each concern stays in its assigned layer as the site grows.
Which boundary owns the change?
Pages remain Eloquent models. Core appends revisions after PageSaved; Admin provides Page History, field comparison, validated rollback, and roll-forward. Publishing Studio owns isolated workspaces, assignments, comments, approvals, scheduling, atomic releases, and cross-entity recovery.
Reusable page structure
- Outcome
- Keep pages as Eloquent models and build the public site with normal Laravel conventions.
- Source
- Foundation
- Maturity
- Released
Page history and recovery
- Outcome
- Keep page-only revision history in Core while pages remain Eloquent models.
- Source
- Foundation
- Maturity
- Released
Team publishing workflow
- Outcome
- Keep deeper workflow isolated in an optional package.
- Source
- Optional package
- Maturity
- Released
AI and agent delivery
- Outcome
- Track public-safe agent delivery with validation and application-owned boundaries.
- Source
- Roadmap
- Maturity
- Labs
Automation and integrations
- Outcome
- Track Laravel-native automation and integration extension points.
- Source
- Roadmap
- Maturity
- Labs
Experimentation and growth
- Outcome
- Track structured experimentation and measurement without presenting Labs work as shipped.
- Source
- Roadmap
- Maturity
- Labs
Trust, compliance, and operations
- Outcome
- Track application-owned diagnostics, governance, and recovery capability.
- Source
- Roadmap
- Maturity
- Labs
Customer self-service
- Outcome
- Track self-service capability built on the existing Laravel domain model.
- Source
- Roadmap
- Maturity
- Labs
Strict coding standards
Capell treats coding standards as product infrastructure: strict typing, PHPStan, Pest, Actions, data objects, and package-level checks keep CMS features clear to inspect before they reach editors or public pages.
Reliability comes from one release workflow
Capell packages are assessed together as one Laravel system rather than solely as isolated downloads.
Automated checks catch repeatable failures, AI-assisted analysis challenges cross-package behaviour and unsupported claims, and an authorised human owns the decision for the exact artifact.
22 of 46 eligible first-party releases currently carry exact-release review evidence.
-
Boringly explicit package boundaries
Dependencies, extension points, permissions and public rendering responsibilities stay declared and inspectable.
Automated AI-assisted -
Behaviour before boot tests
Primary workflows, failure paths, authorisation, public output and lifecycle behaviour need meaningful tests.
Automated AI-assisted -
A human owns the release
AI can find missed interactions; it cannot issue the public verdict or inherit approval across changed code.
AI-assisted Human sign-off
