jeffersongoncalves/filament-crisp
Integrate Crisp live chat into your Filament panels with this simple plugin. Embed the Crisp chat widget in your Laravel admin dashboard with minimal configuration, enabling real-time customer support, messaging, and engagement directly inside Filament—no custom code needed.
Architecture fit. This package is a Filament panel plugin that surfaces an analytics settings page inside the admin panel, delegating persistence and query concerns to filament-analytics-core. That separation is the right shape for a TPM to evaluate: the plugin owns presentation and navigation, the core owns data and configuration contracts. Release 3.1.0 reinforces this boundary — Plugin::make()->navigationGroup(string|Closure) is purely a navigation concern and introduces no new domain model, no schema change, and no new external service.
Integration feasibility. Low effort. The change is additive and opt-in: absent the call, the previously translated default group is retained, so existing panels behave identically after upgrade. Adoption is a one-line change in the panel provider. The only real prerequisite is the coupled floor on filament-analytics-core 3.1, which must be raised in composer.json alongside the plugin — a constraint change, not a code change.
Technical risk. Low, with two watch items. First, version lockstep: the plugin now hard-requires a minimum core version, so any environment pinned to an older core will fail dependency resolution rather than degrade gracefully. Second, the Closure variant defers group resolution to runtime; dynamic grouping derived from tenant, role, or panel context is powerful but makes navigation outcome non-obvious from static config and harder to test. Neither is a blocker, but both should be documented as expectations rather than discovered in production.
Key questions.
filament-analytics-core 3.1 already deployed or approved in target environments, or does this release force a core upgrade on our timeline?Closure receive panel/tenant context, and is it evaluated per-request or cached per panel?navigationGroup the only navigation primitive exposed, or should we expect sibling methods (navigationLabel, navigationSort, navigationIcon) and plan for them?Stack fit. Assumes a Laravel application on a Filament panel (v3-era conventions: Plugin::make() with a fluent configuration object, panels registered in a service provider). If the host app already runs filament-analytics-core for configuration storage, the plugin is a thin, well-bounded addition. If not, the core is a genuine new dependency and should be scoped as its own work item.
Migration path. Effectively zero-migration. No database changes, no config file republication, no data backfill. The migration is a dependency bump plus an optional one-line navigation call. Rollback is equally cheap: remove the call, restore the prior constraint. This is the ideal profile for a low-ceremony upgrade.
Compatibility. Two axes to verify. Vertically, the plugin now requires core ≥ 3.1 — confirm no other package in the graph pins core below that. Horizontally, confirm the installed Filament major matches what the plugin targets; Filament majors have historically changed plugin registration and navigation semantics, so a mismatched major is the most likely source of a silent navigation regression. The default-preserving behaviour means a same-major upgrade is expected to be non-breaking.
Sequencing.
navigationGroup in one non-critical panel; verify placement in the rendered sidebar.Closure form where grouping genuinely needs to vary (multi-tenant or role-scoped panels).Maintenance. Minimal steady-state cost — this is a configuration surface, not a service. The recurring obligation is dependency hygiene: keeping the plugin and core in step, since the plugin now declares a floor on core and the two are evidently released in coordination. Treat them as a versioned pair in the upgrade runbook rather than independent libraries.
Support. Support surface is narrow and mostly cosmetic — "the settings page is in the wrong menu group" is the likely ticket, and it is diagnosable by inspecting the panel provider. The meaningful support artifact is a short internal note stating which panels override the default group and why, so on-call engineers do not have to reconstruct intent from a closure at 2am.
Scaling. No runtime scaling implication. The only cost is per-request navigation construction, which is negligible for string groups. Closures add a small per-render evaluation cost; keep them cheap and free of database calls, or the panel's navigation will quietly become a query amplifier across every admin page load.
Failure modes.
Ramp-up. Very shallow. A developer familiar with Filament can adopt this in under an hour from the release note alone. The ramp-up cost sits with the platform owner, not the feature developer: someone must own the pairing rule between plugin and core versions, and record the navigation-group convention as an opinionated standard before multiple teams make divergent choices. Recommend adopting 3.1.0 as a low-risk, additive upgrade, gated on confirming core 3.1 availability in the target environment.
How can I help you explore Laravel packages today?