Skip to main content
Capell home
My account

Manage cookie preferences

Choose which optional cookies Capell may use.

Essential
Always on

Required for Capell to work — login, security, page rendering.

Analytics

Anonymous usage telemetry to improve editor performance.

Marketing

Personalization for the Capell marketing site.

Cookie policy

A Laravel CMS developers can keep owning

Developers should not have to choose between editor tooling and frontend ownership. Capell keeps CMS records, admin screens, package extension points, and public delivery inside the Laravel application.

That means Actions, data objects, policies, service providers, render hooks, tests, migrations, queues, Scout, and Filament can all remain part of the same engineering workflow.

Actions Render hooks Pest tests

Capell needs to feel like Laravel work. Developers already have tools they trust: Composer, service providers, migrations, Actions, data objects, policies, tests, queues, Blade, Livewire, and Filament. The CMS should fit that world instead of adding a second engineering culture.

The point is inspectability. Public rendering stays in the app. Optional features arrive as packages. Admin behavior stays in Filament. Repeated page structures get names the team can review and test.

What a developer can inspect

  • Which package added a feature, migration, job, or public surface.
  • Which page type, layout, widget, or asset controls repeated content.
  • What happens when an editor previews, publishes, moves, or unpublishes a page.
  • Whether public output leaks anything from the admin side.

The bar is ordinary Laravel maintainability applied to CMS work that usually drifts out of shape. If a developer cannot explain how a public page is built, the CMS has already become too expensive.

Developer toolchain

Use the Laravel habits your team already trusts.

Capell keeps CMS work close to Actions, data objects, tests, static analysis, Composer packages, and project-owned frontend builds.

The stack stays recognisable because Capell is installed into the application, not bolted on as a separate platform.

Hyperreal editorial illustration: A developer at a tidy terminal.

Developer Experience

Build Laravel CMS features with Actions, data objects, page types, render hooks, packages, tests, and Filament admin boundaries.

Start with the practical question: what does the visitor or editor need to do next? Capell keeps that answer tied to the Laravel app, with shared structures for repeated pages and enough room for custom work when the project genuinely needs it.

Questions

Developer experience questions

Capell is for Laravel teams that want CMS structure without giving up application ownership.

Does Capell force a frontend stack?

No. The public site can use Blade, Livewire, Inertia, Vue.js, or custom rendering while Capell provides CMS context.

Can package code be tested?

Yes. Packages are normal Laravel packages, so behavior can be covered with Pest, feature tests, browser tests, and package-level checks.

Where does custom product behavior go?

Keep product behavior in application Actions, services, models, jobs, and policies. Capell should provide CMS structure, not swallow the app.

Next step

Build CMS behavior like Laravel behavior

The next step is capability added through packages: decide which CMS features belong in reusable packages and which should stay local to the application.

Developer boundary Actions, DTOs, packages, render hooks, policies, and tests keep the CMS understandable.

Reviews

Why teams like Capell Core

Simple feedback on keeping CMS structure inside Laravel.

One content model the Laravel app already owns

“Capell Core puts pages, URLs, layouts, media and translations behind one typed model inside the Laravel app. Content can grow without a new bespoke admin screen each time, and rendering stays in the codebase the team already maintains.”

Laravel Technical Lead

AI acting on behalf of a Laravel technical lead

Developer responsibilities Capell keeps explicit

The developer experience is intentionally practical: keep the CMS inside Laravel, keep public rendering in project code, and add optional capability as packages. That gives teams room to extend the CMS without losing the ability to review, test, and deploy it normally.

Area Capell shape Developer check Team outcome
Application boundary Capell runs inside the Laravel app instead of beside it. Use existing Laravel practices for config, routes, policies, jobs, events, and tests. The CMS feels like part of the product rather than an external platform.
Rendering boundary Frontend output is prepared and rendered by the app team. Build Blade, Livewire, Inertia, Vue, or custom renderers around approved data. Design changes do not require replacing the CMS.
Extension boundary Packages add focused CMS features with declared install impact. Review each package like any dependency: migrations, service providers, views, commands, and public output. Capability grows while core stays focused.
Maintainability Repeated structures become page types, layouts, widgets, and assets. Prefer shared contracts over one-off page templates when behavior repeats. Year-five maintenance stays visible instead of buried in bespoke screens.
Adoption path

How keeping the CMS inside Laravel stays intact

Name the Laravel owner

Keep product rules in application Actions, services, policies, jobs, and tests. Capell gives the CMS a durable shape, while the app team keeps responsibility for domain behavior, release timing, and deploy decisions.

Developer path

Model repeated structure once

When pages share behavior, define page types, layouts, widgets, assets, and metadata contracts instead of copying another template. The payoff is boring maintenance: one shared rule can improve every repeated page.

Content management

Review extension impact

Before installing a package, understand the setup path, data it adds, public surfaces it can affect, and operational work it may introduce. Treat CMS capability like any Laravel dependency that deserves code review.

Package-based features

Render from prepared context

Public Blade, Livewire, Inertia, or Vue output should receive resolved content, links, media, and approved package contributions. That keeps visitor pages clean while still letting the frontend team own presentation.

Render rules
Loading footer