Sharing & Collaboration
Inviting collaborators and managing team member roles on a project.
Project sharing lets you invite other users to view or contribute to a project. Sharing is managed from the Project Team page, accessible from the project navigation menu.
Roles
| Role | Permissions |
|---|---|
| Owner | Full access. The user who created the project. Cannot be changed. |
| Contributor | Read and write access. Can edit all project data. |
| Reviewer | Read-only access. Can view all project data but cannot make changes. |
Inviting a collaborator
Only the owner can invite. Enter the collaborator's email address and select their role. Click Invite to send the invitation.
The invitation is stored as a pending invite. The recipient sees a notification on their Projects page and can accept or decline.
Accepting an invitation
When you're invited to a project, an alert bar appears on your Projects page. Click Accept to gain access or Decline to dismiss.
Managing members (owner only)
On the Project Team page, the owner can:
- View all members and their current roles
- View pending invites with their status (pending / declined)
- Change role — switch a member between Reviewer and Contributor
- Revoke / Remove — remove a member's access
- Resend — resend an invitation to someone who declined
- Cancel — cancel a pending invitation
How shared access works
Shared projects appear on the collaborator's Projects page alongside their own projects. The collaborator accesses the project through the owner's data path, so the owner's Firebase RTDB structure is used for all reads and writes.
Media files (images, video, audio) are served through a server API that validates access before returning files — direct GCS URLs are not exposed to collaborators.
Conversations and AI agent sessions are private per user — they are not shared between collaborators.