- What is discoverydesign/filament-gaze used for?
- It is a Filament PHP plugin for real-time presence. It shows which users are currently viewing a page or record in your Filament admin panel and keeps that viewer list live via Laravel broadcasting. It is aimed at collaborative admin workflows where knowing who else is on a record matters.
- How do I install Filament Gaze in a Laravel app?
- Install the package with Composer, then register the Filament Gaze plugin or service provider as described in the package documentation. Because presence depends on broadcasting, make sure your Laravel broadcasting configuration is set up before expecting live viewer updates. Run your existing test suite and verify the viewer list in a development environment first.
- Does Filament Gaze require Laravel broadcasting to work?
- Yes, the package description states it uses Laravel broadcasting to keep the viewer list live. You will need a configured broadcast driver and the relevant channel authorization for your Filament panel. Without broadcasting, the package may not be able to deliver real-time presence updates. Check the package docs for the exact channel and driver requirements.
- Which Laravel and Filament versions does Filament Gaze support?
- The provided context does not list specific version constraints, so check the package composer.json and README for the supported Laravel, PHP, and Filament versions. Filament plugins are often tightly coupled to major Filament releases, so match the package version to your Filament version. Test the install in a branch before upgrading production.
- How does Filament Gaze know who is viewing a record?
- It uses Laravel broadcasting presence semantics to track authenticated users who are currently on a Filament page or record. The package then exposes or renders that viewer list in the Filament UI and updates it as users join or leave. Exact implementation details, such as channels and events, should be confirmed in the source or docs.
- Can I use Filament Gaze on custom Filament pages, not just resources?
- The description mentions viewing a resource and pages in the admin panel, but the context does not confirm every custom page type. Check the package API and examples for whether it supports custom Filament pages, relation managers, or dashboard widgets. Start with a standard resource page, then extend to custom pages after verifying behavior.
- Is Filament Gaze safe to use in production?
- It can be used in production if your broadcasting stack is configured and authorized correctly. Presence features add websocket or broadcast traffic, so test with realistic user counts and your chosen broadcast driver. Also monitor channel authorization, disconnected users, and stale presence entries. Pin a known-good version and have a rollback plan.
- How do I test Filament Gaze presence in a Laravel app?
- Use a development environment with broadcasting configured, open the same Filament record in two authenticated browser sessions, and confirm the viewer list updates. Add automated tests around your own integration points and use Laravel's broadcasting fakes where appropriate if the package dispatches events. The provided context does not document package-specific test helpers, so inspect the package tests for patterns.
- What are alternatives to Filament Gaze for real-time presence?
- Alternatives include building your own Laravel broadcasting presence channels and rendering the viewer list in Filament, or using a broader real-time collaboration package. Filament Gaze is focused specifically on showing who is viewing a Filament page or record. Evaluate alternatives if you need cursors, live editing, or presence outside Filament.
- What does identifier('any-order') mean in Filament Gaze?
- The technical evaluation notes an undocumented identifier('any-order') option around GazeColumn ordering, and the release notes do not clarify whether it changes SQL ordering, UI rendering, or both. Treat it as ambiguous until you inspect the source and tests. Test it on a low-risk report column first and watch for sorting errors or unexpected query behavior. If it is unrelated to presence, document that distinction for your team.