- How do I install the goldnead/statamic-clientrooms addon in a Laravel app?
- Install it with Composer using composer require goldnead/statamic-clientrooms, then publish the addon config as described in the package documentation. After that you can start creating rooms as entries in the Statamic control panel. The current release requires no database migration.
- Which Statamic and Laravel versions does goldnead/statamic-clientrooms support?
- The addon runs inside a Laravel host that already uses Statamic with an active control panel. Confirm your Statamic major version before adopting, because control panel navigation registration APIs differ between Statamic v4 and v5. The package adds no PHP extension, queue, storage, or external service requirements beyond what Statamic already needs.
- Are client rooms stored as real Statamic entries?
- Yes. Rooms are defined as regular Statamic entries, so you create and edit them in the control panel using the same fields, assets, and permissions you already use. That means no separate database table or custom content model to maintain. Front-end rendering is handled with simple tags.
- How does password protection work for client rooms?
- Each client room is password-protected and tied to a Statamic entry. The addon serves room content through middleware-guarded routes so private files and updates stay out of public reach. Visitors must pass the room gate before they can access the associated content.
- Do I need to publish a config file or run migrations for Client Rooms?
- The current v0.9.2 release adds no migration and no new config key, so a Composer version bump is the entire update path. You still publish the addon config during initial setup. After updating, clear Statamic's view and contents caches, for example with php please cache:clear, and verify the control panel navigation.
- Can I manage room members and permissions from the Statamic control panel?
- Yes. Rooms, members, and permissions are managed from the Statamic control panel. Because rooms are entries, you can lean on Statamic's existing permissions and publishing workflows. The addon is aimed at studios and agencies delivering work to a small number of clients.
- Is statamic-brand-context required to use this addon?
- No, statamic-brand-context is a soft dependency. The addon implements settingsNavParent() returning a section and name, and brand-context 1.16 or newer uses that to nest the settings page under the parent navigation entry. Older versions simply ignore the method, so the addon retains its previous layout and keeps working. The addon still registers its own navigation entry, so the settings screen remains reachable.
- How do I test that private client room content is not publicly accessible?
- Because private content is served through middleware-guarded routes, request room URLs while logged out and while authenticated as a non-member, and confirm the middleware blocks access. Also verify control panel navigation placement manually after upgrading brand-context, since no automated test is described that asserts the settingsNavParent() contract. Clear Statamic caches before testing so route and view changes are picked up.
- Is v0.9.x of this Statamic addon stable enough for production?
- The current release is v0.9.x, so semver does not yet guarantee API stability and you should pin the Composer constraint. Integration risk is low and concentrated in the control panel navigation contract with statamic-brand-context, not in the application runtime or data model. Updates are additive and rollback is a Composer constraint revert, since the navigation change persists nothing.
- What are alternatives to goldnead/statamic-clientrooms for a client portal?
- For a handful of agency clients, this addon is a lightweight alternative to building a custom portal with entry permissions and middleware from scratch. It keeps rooms as normal Statamic entries, so you reuse fieldsets, assets, and permissions instead of introducing a separate data model. If you need full member accounts, billing, or complex authentication, a dedicated portal or custom Laravel auth may fit better.