DEV Community

Alex Neamtu
Alex Neamtu

Posted on • Originally published at sendrec.eu

SendRec Now Supports Team Workspaces

SendRec has always been a single-user tool. You record, you share, you see who watched. That works for solo use, but teams need shared libraries, permissions, and a way to manage who can do what.

v1.70.0 adds team workspaces. Here's what that means.

What you get

Shared video libraries. Create a workspace, invite your team, and everyone's recordings and uploads live in one place. Videos belong to either your personal account or a workspace — never both. Switch between them with the workspace switcher in the nav bar.

Role-based permissions. Three roles: owner, admin, and member.

Action Owner Admin Member
View all workspace videos Yes Yes Yes
Create videos Yes Yes Yes
Edit/delete own videos Yes Yes Yes
Edit/delete others' videos Yes Yes No
Manage branding Yes Yes No
Invite/remove members Yes Yes No
Change member roles Yes No No
Delete workspace Yes No No
Manage billing Yes No No

Members can see everything but can only modify their own videos. Admins can manage content and team composition. Owners control billing and the workspace itself.

Email invites. Invite teammates by email. They get a link, create an account (or log in if they already have one), and land in the workspace. Pending invites are visible in workspace settings and can be revoked before acceptance.

Workspace branding and billing. Each workspace can have its own logo, colors, and footer — separate from personal branding. Billing works per-workspace: upgrade the workspace to Pro, or if the owner already has a personal Pro subscription, the workspace inherits Pro limits automatically. No double billing.

Free tier limits

  • 1 workspace per user
  • 3 members per workspace
  • Pro removes both limits

For self-hosters

Update your Docker image to v1.70.0 (or latest) and restart. The database migration runs automatically on startup — no manual steps. Workspaces are available immediately with no additional configuration.

docker compose pull sendrec
docker compose up -d sendrec
Enter fullscreen mode Exit fullscreen mode

How we built it

The implementation touches every layer of the stack.

Database. Three new tables: organizations, organization_members, and organization_invites. Videos, folders, tags, analytics, and branding all gained an organization_id foreign key. A single migration (000049) handles everything.

Backend. A new internal/organization/ package handles CRUD, member management, invites, and middleware. The middleware verifies membership and injects the user's role into the request context. Every video handler uses a shared orgVideoFilter helper that builds the correct WHERE clause based on role — owner/admin can act on any workspace video, members only on their own.

Frontend. The workspace switcher persists your selection in localStorage. The API client reads it and sends an X-Organization-Id header on every request. Workspace settings has sections for general info, members, invites, billing, and a danger zone. The invite accept page handles both logged-in and logged-out users with redirect preservation.

Tests. 672 frontend tests, 874 backend tests across 18 packages. Every handler has tests for owner, admin, and member access patterns.

What's next

With workspaces shipped, two features are now unblocked:

  • Data retention policies — auto-delete videos after a configurable period, scoped to the workspace
  • SSO/SAML/SCIM — enterprise authentication tied to workspace membership

Both were waiting on workspaces as the organizational primitive. They're next on the roadmap.


SendRec is open source and self-hostable. Try it at app.sendrec.eu or run it on your own infrastructure with Docker Compose.

Top comments (0)