octoper/statamic-blade-components
octoper/statamic-blade-components lets you use Laravel Blade components inside Statamic templates, making it easy to build reusable, maintainable UI pieces while keeping familiar Blade syntax and component workflows.
Architecture fit. The package is a conventional Statamic 3 addon: a Composer package of type statamic-addon with a service provider that registers an Antlers tag, which at render time resolves a Blade component (or Blade view) and passes the Antlers data array through as props/slots. Conceptually this is a clean seam — it does not modify Statamic's core, it sits in the view-rendering path where Laravel's Blade compiler is already available, and it lets a Laravel-centric team reuse an existing component library without rewriting templates in Antlers. For a codebase that already standardizes on Blade components (design systems, UI kits, Livewire-adjacent markup), the fit is strong. For a codebase with no Blade component investment, it adds a second templating paradigm for no benefit.
Integration feasibility. Low ceremony: composer require, provider auto-discovery, no database or config surface implied. The practical blocker is version compatibility. Last release was May 2022, which places it firmly in the Statamic 3 era; Statamic 4 rewrote the Antlers parser and Statamic 5 has since shipped, so the tag registration and parser hooks are the most likely break points. With 10 stars and zero dependents, there is no downstream evidence that anyone has validated it against a modern Statamic/Laravel/PHP combination. Realistically, integration feasibility is "install in an afternoon, then spend one to three days determining whether it actually works on your versions."
Technical risk. High, concentrated in four areas:
The score of 0.55 is consistent with this: the idea has merit (opportunity 2.95) but the artifact is not a durable dependency.
Key questions.
view:cache compatible), or is there per-request compilation overhead?Stack fit. Assumes Laravel + Statamic 3, Blade as the underlying view engine, and Composer-managed addons. It is a good fit only if the team has an existing Blade component library worth reusing. If the team is planning to move templates to Blade/Full Measure anyway, adopting this addon is a detour — Statamic supports Blade templates natively, and the component-in-Antlers bridge is only valuable for the Antlers templates you are keeping.
Migration path. Treat this as a vendor-and-own decision, not a dependency adoption:
composer.json, committed lockfile, and a note in the addon inventory that this package is frozen and fork-owned.Compatibility. Build an explicit matrix before rollout: Statamic 3.x/4.x/5.x × PHP 8.1/8.2/8.3 × Laravel 9/10/11. Expect the package to pass only the Statamic 3 column. Confirm the Blade component namespace and any view path registration do not collide with the host app's component namespace — collisions here produce confusing "component not found" errors at render time rather than at boot.
Sequencing.
Maintenance. Effectively you are the maintainer. Budget a small but recurring cost: a few hours per Statamic major upgrade, plus intermittent fixes when a Blade component's props diverge from what Antlers passes. Assign a named owner; unowned forks rot silently and surface as broken marketing pages during an unrelated deploy.
Support. No upstream support channel, no release cadence, MIT license so forking is unambiguously permitted. Escalation is internal only. Compensate by keeping the integration surface small (one tag, one convention, documented in the team's addon registry) so any engineer can debug it without the original maintainer's context.
Scaling. The dominant cost is rendering: Blade components compiled and cached through Laravel's view cache are cheap, but confirm php artisan view:cache is part of the deploy and that the addon does not resolve components outside the compiled path. Watch for per-request overhead if component resolution does filesystem lookups on every Antlers render — measurable on high-traffic, component-dense pages. Content-side scaling (many Replicator blocks each invoking a component) is the realistic stress case; benchmark one heavy page rather than assuming.
Failure modes.
| Failure | Symptom | Detection | Mitigation |
|---|---|---|---|
| Statamic upgrade breaks the tag | Blank section or 500 on templates using it | Staging smoke test on upgrade | Pinned versions; re-validate step in upgrade runbook |
| Component not found | Exception or silent empty output | Template render tests | Fail loudly in dev; namespace assertion at boot |
| Prop type/escaping mismatch | Malformed markup, double-escaped entities, XSS in slot content | Visual QA + CSP | Coerce and escape at the wrapper, not in each template |
| Blade cache stale after deploy | Old markup served post-release | Deploy verification | view:cache in deploy pipeline |
| Maintainer/package disappears | Composer install fails in CI | CI on clean checkout | Vendored fork, or mirror in private registry |
Ramp-up. The team must hold two templating mental models simultaneously — Antlers (content-facing, array-based, Statamic idioms) and Blade (component props, slots, PHP expressions). That duality is the real onboarding cost, and it is paid by every future contributor, not just the initial adopter. Mitigate with a one-page convention doc: which templates are Antlers, which are Blade, which components are approved for Antlers consumption, and how slots are passed. Junior contributors will get this wrong by default, so encode it in review checklists and, where possible, a lint rule.
Bottom line for a TPM. The pattern is worth adopting; this specific package is not, as-is. The recommendation is a short spike with explicit exit criteria, defaulting to a vendored fork behind a single internal seam, with a written position that the team owns it. If the spike exceeds a day or two of patching, write the tag in-house — the integration is small enough that ownership cost is comparable and the long-term risk profile is far better.
How can I help you explore Laravel packages today?