mpociot/teamwork
Teamwork is a Laravel package for adding teams, members, and user invitations to your app. Attach teams to any model with a simple trait, manage memberships and roles, and send email invitations with acceptance flows—without reinventing team management.
team_id, user_id, role) and the single "current team" pointer are the decisions that are expensive to change later. Adopting this makes them explicit and reviewable now rather than discovered in month nine.Adopt when:
Look elsewhere when:
spatie/laravel-permission and Laravel policies, or evaluate a dedicated identity provider.stancl/tenancy), a different product.To executives: This is a small, MIT-licensed Laravel package that gives us the org/membership foundation every B2B product needs — users belong to teams, teams have owners, roles are attached — in days rather than a multi-week build. There's no license cost and no vendor relationship; the code is small enough that we own it either way, so the downside is bounded. It doesn't solve permissions, billing, or SSO, and it shouldn't: those are the parts we'll differentiate on and should decide deliberately. Recommendation: use it to ship team membership in the current cycle, and treat roles/permissions and seat billing as explicit follow-on decisions with their own build-vs-buy calls.
To engineering: It's unopinionated Eloquent traits plus a migration — no architectural commitment, no framework lock-in, and the schema stays ours. We inherit a role column and a current-team session concept, which is exactly the contract we want to stabilize before layering policies on top. Main caveats: verify it runs clean on our Laravel version, and assume we maintain our fork if upstream goes quiet. Exit cost is low; the value is in not re-litigating the data model three sprints from now.
How can I help you explore Laravel packages today?