packstub/filament-session-replay
Filament Session Replay is a Filament plugin for recording and reviewing admin panel sessions, helping you understand user behavior and debug issues faster with replay access built into your dashboard.
Architecture fit: This package is a Filament panel plugin for session replay. It is a strong architectural fit only if the Laravel application already standardizes on Filament panels and can adopt the package’s core SessionReplay model, authorization gate, resource, relation manager, widget, and watch-page patterns. For a Filament-based admin/back-office, it can add replay review, people-level replay access, tenancy scoping, masking, and export without building a custom replay UI. For non-Filament admin surfaces, the fit is poor because the value is concentrated in Filament resources, tables, actions, widgets, and render hooks.
Integration feasibility: Feasible as a contained feature-flagged integration, but not yet a production commitment. The release provides the main integration points: plugin registration, recorder render hook, guard user, tenant, panel ID, impersonation detection, gate/policy authorization, masking APIs, tenancy scoping, people search, and translations. It likely requires publishing config and database migrations, registering the plugin on the intended panel, wiring the core gate/policy, and auditing masking across forms, tables, infolists, and layout components. The exact install path, migrations, storage backend, and configuration keys are not stated in the release notes and must be verified before estimation.
Technical risk: The beta status is the primary risk: names and config may still change before 1.0, so integration code, config, policies, and tests may need rework. Privacy and security risk is high because session replay captures page content and interaction data; masking must be treated as a release blocker, not a polish item. Multi-tenant isolation risk is material because the resource, relation manager, widget, and last-session action rely on tenancy scoping. Authorization risk exists around gate/policy precedence, bulk delete, export, and rows the gate would refuse. Operational risk includes unbounded storage growth, replay volume, export size, and incomplete masking of sensitive fields. Impersonation attribution and “pages watched are never recorded” behavior also need explicit validation.
Key questions:
blockInReplay() prevent capture entirely, or only hide rendering?deleteSessionReplay interact in list, bulk, export, and watch flows?Stack fit: Best fit is a Laravel application with Filament panels, an existing panel guard, optional tenancy, and a privacy/security process for admin tooling. If the app already uses Shield policies or custom gates, the package’s gate/policy hooks are a meaningful advantage. If the admin surface is not Filament, defer unless there is a strategic reason to adopt Filament for replay review.
Migration path: There is no prior assessment or installed version, so treat this as a greenfield beta evaluation rather than an upgrade. Pin v1.0.0-beta.1 in a non-production branch, publish and review config/migrations, register the plugin only in a non-production or feature-flagged panel, and document rollback steps. Do not migrate existing replay data because none exists; the migration concern is schema creation, config drift, and future beta-to-beta changes. Avoid promising a production date until the beta exit criteria and masking audit are complete.
Compatibility: Confirm compatibility with the target Filament major version, Laravel/PHP versions, database, Shield, and any impersonation package such as Packstub’s Account Switcher. Validate translations for English, German, Spanish, Romanian, and Russian, and confirm whether the team needs additional locales. Check whether the package depends on host application models for people search and tenancy labels.
Sequencing:
viewSessionReplay gate, ReplaySession policy, and deleteSessionReplay where required.maskInReplay() / blockInReplay() across all forms, tables, infolists, and layout components.Maintenance: Expect beta churn. Names, config, and behavior may change before 1.0, so pin versions, subscribe to release notes, and budget for upgrade testing. Maintain a local integration test suite around gates, tenancy, masking, export, bulk delete, and impersonation so beta upgrades are not manual-only.
Support: Support burden will span engineering, security, privacy, and panel administrators. Users will need help with replay review, pinning, deletion, export, and interpreting errors/rage clicks/vitals. Privacy requests and data-retention obligations require a runbook for finding, exporting, and deleting recordings. Policy changes must be communicated because authorization affects who can see which recordings and lists.
Scaling: Session replay is write- and storage-heavy. Plan for retention limits, archival, database indexing, object storage if applicable, and monitoring of recording size and count. The sessions resource, widgets, search, and tenancy filters must remain responsive as recordings grow. Export of large JSON files and bulk delete should be tested under load and may need queueing or limits.
Failure modes: Watch for recorder hook failures affecting panel rendering, storage write failures, missing or incomplete masking, tenant leakage, gate/policy bypass, export including blocked data, impersonation misattribution, bulk delete partial failures, and invalid stored JSON chunks being omitted from export. Also validate the “pages watched are never recorded” guarantee and behavior when a user lacks the gate but appears in a list.
Ramp-up: Ramp-up is moderate to high because the feature is privacy-sensitive and Filament-specific. Engineering needs Filament plugin, gate/policy, tenancy, and storage knowledge; security/privacy need masking and retention review; administrators need replay workflow training. Start with a documented pilot, a masking checklist, an authorization test matrix, and a go/no-go review before any production exposure.
How can I help you explore Laravel packages today?