- What does tomatophp/filament-saas-panel actually include out of the box?
- It is a Composer package for Laravel that adds a ready-made SaaS backend to a Filament app: Filament resources and pages for plans, subscriptions, tenants, and customers, composed with Filament Accounts Builder and JetStream's teams primitive. Treat those screens as a UI and routing scaffold rather than a billing engine. The most defensible piece of engineering in the package is the team invitation lifecycle, which handles signed links, invitee email verification, and team-scoped authorization.
- Which Laravel, Filament, Livewire, and PHP versions are supported?
- The package targets Laravel with Filament and Livewire in a JetStream-teams style tenancy, but exact supported majors are not pinned in the overview, so read composer.json before planning. Filament majors have shipped breaking changes and the project has a v4 line with README-referenced upgrade notes, so match versions deliberately instead of installing latest. Resolving the supported version matrix is one of the first things to close before committing a schedule.
- Are JetStream teams mandatory, or can I bind this to my existing tenant model?
- JetStream's teams primitive is the composition base, so a team, workspace, or organization model maps naturally. If your tenancy model differs, you will either bend the domain to fit or fork, and fork cost lands on your team rather than upstream. Whether teams are strictly mandatory or bindable to an existing tenant model is not stated in the overview and should be verified in code early.
- Does it include billing with Stripe or Paddle through Cashier, or just billing screens?
- The plans, subscriptions, and customers surfaces are described as Filament resources and pages, which is an admin UI rather than a billing engine. Whether money-critical logic routes through Cashier with Stripe or Paddle, or is provider-agnostic or stubbed, is not established by the available information. Confirm where subscription state actually originates before relying on the panel for revenue operations.
- Do its migrations create the users, teams, and subscriptions tables or reference mine?
- It is not documented whether the published migrations own the users, teams, and subscriptions tables or merely reference existing ones. Read the migration files first, because a package that creates tables will collide with an established schema and require backfill planning. This is one of the unknowns that turns a one-day install into multi-week reconciliation.
- How do I install tomatophp/filament-saas-panel with Composer?
- Install with composer require tomatophp/filament-saas-panel, then follow the README to publish migrations and assets and register the plugin in your Filament panel provider. Because it composes Filament Accounts Builder and JetStream teams, expect to configure those dependencies as well. Run the install on a scratch branch against a disposable database before touching a shared environment.
- What is the multi-tenancy model — row-level scoping or separate databases?
- The package sits on JetStream teams, which is row-level scoping through team foreign keys rather than database-per-tenant by default. Anything beyond that, such as custom tenant resolvers or separate databases, is not established by the available information. If hard isolation is a requirement, validate the actual query scoping in the code rather than assuming it.
- What should I verify in the team invitation flow before going to production?
- Verify the validation ordering: signature checks must run before invitation validity and invitee email checks, so unauthenticated probes cannot enumerate whether an invitation exists. Also confirm authorization is scoped to the team bound from the route, not merely to the invitation ID, to prevent IDOR and cross-tenant leakage. Review the confirm-before-mutate interstitial and any billing screens as well, since money-state actions add risk.
- Can I use the invitation flow standalone, without the whole SaaS panel?
- The invitation lifecycle, including signed links and team-scoped acceptance, is the most self-contained part of the package, which makes a soft fork plausible. Whether it can be reused standalone depends on how tightly its actions and routes are coupled to the panel and to JetStream. Inspect the controllers and actions for hard dependencies before deciding to vendor only that flow.
- How is it tested and maintained, and what are the alternatives?
- Test coverage and CI status are not stated in the overview, so run the suite locally and check the repository for a workflow file and a security disclosure policy. Maintenance signals are thin: a single maintainer, modest star count, and few dependents, which means you discover integration bugs with no precedent to search. Budget for recurring upgrade work given the v4 breaking-change line, and compare against Filament's own panel scaffolding plus JetStream as the baseline alternative.