PHPackages                             capell-app/frontend - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Templating &amp; Views](/categories/templating)
4. /
5. capell-app/frontend

ActiveLibrary[Templating &amp; Views](/categories/templating)

capell-app/frontend
===================

Public routing, rendering, themes, assets, and cache-safe delivery for Capell CMS.

v1.0.35(2w ago)0408MITPHPPHP ^8.4CI passing

Since Jul 11Pushed 1w agoCompare

[ Source](https://github.com/capell-app/frontend)[ Packagist](https://packagist.org/packages/capell-app/frontend)[ Docs](https://github.com/capell-app/frontend)[ RSS](/packages/capell-app-frontend/feed)WikiDiscussions main Synced 2w ago

READMEChangelog (10)Dependencies (24)Versions (37)Used By (8)

Capell Frontend
===============

[](#capell-frontend)

[![Capell Frontend site and locale resolution flowing into the responsive Foundation theme](docs/assets/readme/hero.jpg)](docs/assets/readme/hero.jpg)

[![Latest Release](https://camo.githubusercontent.com/b0b3105e0b8b2825b37621e8b72f54691a62203238d84f9e9c8138d8bb6b011a/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f72656c656173652f636170656c6c2d6170702f66726f6e74656e643f7374796c653d666c61742d737175617265266c6162656c3d72656c65617365)](https://github.com/capell-app/frontend/releases/latest)[![Latest Version on Packagist](https://camo.githubusercontent.com/c184611c61bdeeb54570e762d46f8abbabe68734f1acc023343c964b13bb7860/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f636170656c6c2d6170702f66726f6e74656e642e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/capell-app/frontend)[![Tests](https://github.com/capell-app/capell/actions/workflows/test-full.yml/badge.svg?branch=main)](https://github.com/capell-app/capell/actions/workflows/test-full.yml)[![PHP Quality](https://github.com/capell-app/capell/actions/workflows/code-quality-and-styling.yml/badge.svg?branch=main)](https://github.com/capell-app/capell/actions/workflows/code-quality-and-styling.yml)[![PHP](https://camo.githubusercontent.com/d072d1f17b6a8dc799e782e39d676d25cab3e73854efe49206d6ffcb6473abd4/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d382e342d3737374242343f7374796c653d666c61742d737175617265266c6f676f3d706870266c6f676f436f6c6f723d7768697465)](#requirements-and-support-policy)[![Laravel Compatibility](https://camo.githubusercontent.com/3de86a11de662dbc58d1e00a4062becaad50f53851dddd6cef6d00277774332b/68747470733a2f2f62616467652e6c61726176656c2e636c6f75642f62616467652f636170656c6c2d6170702f66726f6e74656e643f7374796c653d666c6174)](https://packagist.org/packages/capell-app/frontend)[![Livewire Compatibility](https://camo.githubusercontent.com/566c9bc1fd982a4c6e268756ce6b3353e826e9823f92e30f528a2b842dbae8f3/68747470733a2f2f62616467652e6c61726176656c2e636c6f75642f6c697665776972652d62616467652f636170656c6c2d6170702f66726f6e74656e643f7374796c653d666c6174)](https://packagist.org/packages/capell-app/frontend)[![Documentation](https://camo.githubusercontent.com/74103e2593167ea862d42050aa01301e640df4e220bea126345e2310db5fe14e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f646f63732d646f63732e636170656c6c2e6170702d626c75653f7374796c653d666c61742d737175617265)](https://docs.capell.app)

`capell-app/frontend` is the public rendering package for Capell CMS. It resolves Core page, site, language, layout, and theme records into Laravel responses and exposes the frontend extension points used by themes and frontend add-ons.

Use this package when a Capell install needs public page routing. It owns the minimal built-in `default` theme fallback, but richer visual themes and in-page authoring remain optional add-ons.

Package Boundary
----------------

[](#package-boundary)

Frontend owns:

- public page routes, frontend middleware, context resolution, page rendering actions, frontend settings, and page-view/cache integration hooks
- Blade components, Livewire page integration, render hooks, frontend asset manifests, Tailwind source aggregation, and cache invalidation registries
- the built-in `default` Blade theme fallback and its static navigation, content, listing, CTA, and footer views
- frontend install, after-install, upgrade, static HTML generation, and public render performance reporting commands

Frontend does not own:

- editor UI, settings pages, or admin dashboards; those are Admin surfaces
- opinionated theme demos, interactive widgets, carousels, lightboxes, or vertical-specific templates; those belong in optional theme/widget packages
- generated static HTML cache packages; those are optional cache packages layered on top
- in-page authoring controls; those must load after page load from an authenticated admin-only beacon package

Install
-------

[](#install)

Frontend depends on `capell-app/core` and is optional — omit it for headless setups. The recommended path is the installer (`composer require capell-app/installer` → `php artisan capell:install`), which adds Frontend when you select it. To add it manually to an existing Capell app:

```
composer require capell-app/frontend
php artisan capell:frontend-install
php artisan capell:frontend-after-install
```

For Vite development builds, both install commands accept `--dev`.

On existing apps, use:

```
php artisan capell:frontend-upgrade
```

Public routing depends on the host app's web server sending unmatched public page requests to Laravel. See the server configuration docs before debugging route fall-through issues.

Runtime Surfaces
----------------

[](#runtime-surfaces)

- Provider: `Capell\Frontend\Providers\FrontendServiceProvider`
- Config: `config/capell-frontend.php`
- Routes: `routes/web.php`
- Controller: `Capell\Frontend\Http\Controllers\PageController`
- Middleware aliases: `frontend.resolve`, `frontend.etag`, `frontend.asset-optimization`, `frontend.anonymous_cacheable_render`, `frontend.rendering_strategy`, `frontend.maintenance`, `workspace.context`
- Main commands: `capell:frontend-install`, `capell:frontend-after-install`, `capell:frontend-upgrade`, `capell:generate-html`
- Main extension registries: `RenderHookRegistry`, `FrontendResourceRegistry`, `CacheInvalidationRegistry`, `ReservedFrontendPathRegistry`, `FrontendRouteMiddlewareRegistry`, `FrontendComponentRegistry`, `FrontendRuleConditionRegistry`, `FrontendResponseRendererRegistry`, `TailwindAssetsRegistry`

The package always registers `index.php` and a fallback page route. `/` is only registered when `CAPELL_FRONTEND_REGISTER_HOME_ROUTE=true`. Reserved paths prevent internal or package-owned routes from falling through to public theme rendering.

Public Output Safety
--------------------

[](#public-output-safety)

Public frontend responses must not expose admin/editor implementation details. Blade views, cached HTML, theme output, and public assets should not include authoring JavaScript, editable markers, model IDs, field paths, package names, signed editor URLs, or permission hints.

Frontend authoring must be a post-load admin feature. The public page loads as ordinary HTML; only an authenticated admin beacon response may add edit controls.

When changing public rendering, cache behavior, themes, or beacon integration, keep or add tests that prove anonymous and non-admin responses contain no authoring surface.

Editor-authored rich text must cross a `SafeHtml` boundary before Blade renders it. Build the value with `SafeHtml::sanitize($html, $sanitizer)` (or use `RenderHtmlContentAction`) and output it with normal escaped Blade braces: `{{ $safeHtml }}`. The constructor is private so an arbitrary string cannot be mislabeled as safe HTML.

Data And Cache Behavior
-----------------------

[](#data-and-cache-behavior)

Frontend reads Core records and owns frontend settings. Its main persistence impact is settings state; generated page cache files are owned by optional cache/static packages.

The `capell:generate-html` command writes static artifact metadata to `storage/framework/capell-static-artifacts` by default. Set `CAPELL_FRONTEND_STATIC_ARTIFACTS_PATH` when a deployment needs those artifacts written to a separate writable directory.

Cache invalidation is model-event aware and can run through queues depending on package configuration. If async invalidation is enabled, a queue worker must be running.

Tailwind source/import generation depends on installed packages declaring their frontend sources. Missing package sources usually show up as incomplete generated CSS, not as PHP exceptions.

Verification
------------

[](#verification)

From the split repository root, with development dependencies installed, run package tests after changing frontend routing, render actions, cache invalidation, or public safety checks:

```
vendor/bin/pest tests
```

For public output changes, include the safety-focused tests:

```
vendor/bin/pest tests/Feature/StaticBladeRenderingTest.php tests/Feature/MediaComponentMetadataTest.php --configuration=phpunit.xml
```

Requirements And Support Policy
-------------------------------

[](#requirements-and-support-policy)

SurfaceSupported versionsPHP`^8.4`Laravel`^13.0`Livewire`^3.0` or `^4.0`CoreThe same release as this packageEach Capell 1.x minor receives security fixes for 24 months from its release date, and the latest 1.x minor is always supported. Upgrade all installed Capell foundation packages together to the same supported release before requesting a fix. See the [Capell security policy](https://github.com/capell-app/capell/security/policy) for vulnerability reporting.

Support covers the dependency ranges above. When an upstream release reaches its own end of life earlier, upgrading that dependency may be required to receive a safe fix.

Troubleshooting
---------------

[](#troubleshooting)

- A Capell route catching admin or package URLs usually means the frontend route regex or reserved path registry needs checking.
- Published pages returning 404 should be debugged through site, domain, language, page URL, and layout resolution before changing theme code.
- Stale public output usually means cache invalidation did not run, the queue worker is stopped, or the optional cache package has stale artifacts.
- Missing Tailwind styles usually mean a package did not register its source/import path or frontend assets were not regenerated.
- If `/` does not resolve, check `CAPELL_FRONTEND_REGISTER_HOME_ROUTE`; the package does not register the home route by default.

Development
-----------

[](#development)

Package development and coordinated verification happen in the [capell-app/capell monorepo](https://github.com/capell-app/capell). Split package repositories are release mirrors; use [docs.capell.app](https://docs.capell.app) for cross-package guidance. See the [contribution guide](https://github.com/capell-app/capell/blob/main/CONTRIBUTING.md), [security policy](https://github.com/capell-app/capell/security/policy), and [licence](https://github.com/capell-app/capell/blob/main/LICENSE.md).

Further Reading
---------------

[](#further-reading)

PageCovers[Frontend overview](docs/overview.md)Frontend responsibilities and the package docs index.[Page and site loading](docs/page-site-loading.md)Site, page, language, theme, and layout resolution.[Security](docs/security.md)Package-specific public rendering safety notes.[Server configuration](docs/server-config.md)Static-cache fallback and web server routing rules.[Tailwind assets](docs/tailwind-assets.md)Package Tailwind source and import registration.[Render hooks](docs/extending-render-hooks.md)Public render hook registration.[Testing frontend](docs/testing-frontend.md)Frontend package test patterns.The complete frontend and public-output safety guides are published at [docs.capell.app](https://docs.capell.app).

###  Health Score

49

—

FairBetter than 94% of packages

Maintenance97

Actively maintained with recent releases

Popularity10

Limited adoption so far

Community20

Small or concentrated contributor base

Maturity63

Established project with proven stability

 Bus Factor1

Top contributor holds 71.7% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~1 days

Total

32

Last Release

17d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/85b211531c530cd60c8e1b7b2c125c7e42192c820cde99fb6b201b1dde7a9d96?d=identicon)[capell-app](/maintainers/capell-app)

---

Top Contributors

[![howdu](https://avatars.githubusercontent.com/u/533658?v=4)](https://github.com/howdu "howdu (43 commits)")[![capell-app-user](https://avatars.githubusercontent.com/u/213955377?v=4)](https://github.com/capell-app-user "capell-app-user (11 commits)")[![github-actions[bot]](https://avatars.githubusercontent.com/in/15368?v=4)](https://github.com/github-actions[bot] "github-actions[bot] (4 commits)")[![web2w](https://avatars.githubusercontent.com/u/23355558?v=4)](https://github.com/web2w "web2w (2 commits)")

---

Tags

bladecachingcapellcapell-cmscmsfrontendlaravellaravel-packagephprenderingthemeslaravelcmsfrontendcapell

### Embed Badge

![Health badge](/badges/capell-app-frontend/health.svg)

```
[![Health](https://phpackages.com/badges/capell-app-frontend/health.svg)](https://phpackages.com/packages/capell-app-frontend)
```

###  Alternatives

[unopim/unopim

UnoPim Laravel PIM

10.9k2.6k](/packages/unopim-unopim)[bagisto/bagisto

Bagisto Laravel E-Commerce

28.0k177.2k9](/packages/bagisto-bagisto)[code16/sharp

Laravel Content Management Framework

79466.8k10](/packages/code16-sharp)[statamic/cms

The Statamic CMS Core Package

4.9k3.9M1.2k](/packages/statamic-cms)[nasirkhan/laravel-starter

A CMS like modular Laravel starter project.

1.4k2.8k](/packages/nasirkhan-laravel-starter)[filament/support

Core helper methods and foundation code for all Filament packages.

2437.3M325](/packages/filament-support)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
