Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Filament Crash Laravel Package

koalafacade/filament-crash

Filament Crash gives your Filament admin panel a graceful crash screen: it catches unhandled exceptions, logs the details, and shows users a friendly error page instead of a raw stack trace, keeping diagnostics available for developers while maintaining a polished experience. Simple to install.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. koalafacade/filament-crash is a Laravel package that plugs into the Filament admin panel lifecycle and gates access to the panel based on a "client paid" condition. Architecturally this is a thin concern — a service provider plus (most likely) a middleware, panel hook, or render-time check that blocks or degrades the admin UI. That means it sits at the edge of the application, not in the domain layer. The fit is only relevant to one specific org profile: an agency or freelancer delivering Filament-based admin panels to clients under milestone or retainer payment terms. For a product company shipping its own SaaS, this package has no legitimate role — you do not gate your own users on a payment flag you control.

Integration feasibility. Mechanically simple: composer require, publish config, register the plugin in the relevant PanelProvider. The unknown is how the payment state is determined. The description implies an external check — most likely a remote license/status endpoint or a configurable expiry date — and that determines almost everything about feasibility. If it is a hardcoded/configured kill date, integration is trivial and fully offline. If it phones home to a licensing service, you inherit a third-party dependency, a network failure domain, and a data-privacy question about what the client's instance transmits.

Technical risk. High, for four compounding reasons:

  1. Staleness. Last release 2023-01-17. Filament's plugin API changed materially between v2 and v3 (and again toward v4). A 2023-era plugin is most likely pinned to Filament v2 or early v3 and will not install cleanly against a current stack without a fork.
  2. Adoption signal. 21 stars and an overall score of 0.225 indicates a very small user base. There is minimal real-world exposure to edge cases, and almost no one to corroborate behavior.
  3. Blast radius. By design this package's failure mode is "the admin panel is unusable." A false positive takes down a paying client's operations, not just a cosmetic feature.
  4. Legal/contractual exposure. Deliberately rendering a client's application non-functional as a collections lever can constitute breach of contract, tortious interference, or — depending on jurisdiction and the data involved — be treated as unauthorized interference with systems. This must be reviewed by counsel and, more importantly, encoded explicitly in the master services agreement before any technical enforcement exists. The package does not solve the policy problem; it just makes the policy executable.

Key questions.

  • How is "paid" determined — remote endpoint, signed license artifact, or static config/date? Who operates that endpoint?
  • What are the declared constraints for filament/filament, laravel/framework, and PHP? Does it support Filament v3/v4?
  • What is the exact failure mode — exception, blank page, redirect, banner, degraded read-only mode? Is it graceful?
  • Is there an auditable override path (env var, artisan command) so a support engineer can restore access during an incident?
  • Does it transmit tenant or client data off-instance? Under what lawful basis?
  • Is there any logging of lockout events for dispute resolution?

Integration Approach

Stack fit. Laravel + Filament only. Prerequisite is that we own the deployment and can register panel plugins — i.e., we ship the app, not the client. It is not applicable to multi-tenant SaaS where panels are shared across paying customers, since the gate is per-installation, not per-tenant.

Migration path. Treat this as a greenfield add-on rather than a migration: install on a single internal/demo Filament project, confirm it resolves against our Filament version, and observe behavior under each state (paid, unpaid, endpoint unreachable). Because the package is likely to require a version bump or a small compatibility patch, budget for a composer.json constraint adjustment or a fork under our own namespace.

Compatibility. This is the gating item. Verify composer require koalafacade/filament-crash against our actual composer.lock before anything else — if it conflicts on Filament or PHP 8.2/8.3, the decision collapses to "fork or reimplement." Given the presumed small surface area (a middleware and a Blade view), reimplementation in-house is likely cheaper than carrying a fork of an abandoned dependency.

Sequencing. (1) Source review and compatibility spike, ~1 day. (2) Legal/contract review of enforcement clause — this runs in parallel and is the real long pole. (3) Internal pilot with a documented override procedure. (4) One client engagement with an explicit contractual opt-in, on a project where we also control support. (5) Do not standardize across the portfolio until the package has survived one Filament major upgrade cycle or we have replaced it with owned code.

Operational Impact

Maintenance. The package is effectively unmaintained. Assume we own it from day one: either vendor the source into our repo or fork it publicly. The ongoing cost is small per-incident but recurring — every Filament major version requires a compatibility pass on a component nobody on the team wrote.

Support. No vendor, no SLA, community-only. With ~21 stars, expect no help channel. Our own on-call absorbs every lockout ticket, and lockout tickets are inherently high-severity because the client cannot work. This needs a documented runbook and a break-glass procedure (env flag or artisan command) that any engineer can execute without reading the source.

Scaling. Runtime cost is negligible — one check per request or per panel boot, trivially cacheable. The scaling concern is not compute, it is fan-out of the enforcement decision: each client installation is an independent point where a misconfiguration produces an outage. Enforcing across N engagements multiplies the false-positive surface linearly. If a remote check is involved, that endpoint becomes a shared dependency across all client installations and needs its own uptime target and cache-fallback policy.

Failure modes. Enumerate and test explicitly:

  • False positive lockout — client paid, system says otherwise. Highest severity; mitigated by grace period and manual override.
  • Endpoint unreachability — if the check is remote, decide fail-open vs. fail-closed deliberately. Fail-closed turns their network problem into your outage; fail-open makes the control trivially bypassable by blocking egress.
  • Stale cache — payment recorded but cached status persists; needs a short TTL and an invalidation command.
  • Hardcoded expiry — a fixed date baked into config that silently lapses.
  • Upgrade breakage — Filament bump changes the panel hook contract and the gate either stops enforcing (silent, tolerable) or fatals (loud, intolerable).

Ramp-up. Near-zero for any Laravel developer — installation and configuration are an hour's work. The real ramp-up is procedural, not technical: the team must internalize the override runbook, and account managers must understand that a misconfigured flag is a client-facing outage. Budget a short internal writeup plus a rehearsed break-glass drill.

Recommendation. Do not adopt as a production dependency in its current state. The functional core is small enough to reimplement as owned code with the failure semantics we choose, which removes the abandonment risk and gives us an auditable override path. If it is used at all, use it as a reference implementation and a forcing function to settle the contractual question first — because the hardest part of "enforce that the client paid" is not the middleware, it is the agreement that says you may.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel
draftsmaninc/draftsman
square-bit/laravel-volition
himito/laravel-mailman
htinlynn/genius-helper
maco-studios/hephaestus
elmogy/larafast
xeviant/laravel-paystack
gorilladash/laravel-website-sdk
martialbe/flysystem-oss
chondal/3312client
jeroen-g/flickr
opscale-co/nova-genbi
itsjustvita/laravel-retention
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log