Collaboration
Sharing happens per project. There are no teams, no workspaces and no seat counting. You add another account on the same instance to a project, and they can work in it.
Sharing a project
Section titled “Sharing a project”On the project page, Project options → Share. Add a member by their username on this instance; there is no email invitation flow for project sharing (that is registration invites, which is a different thing).
A project has exactly one owner, the account that created it. Everyone else added is an editor.
| Owner | Editor | |
|---|---|---|
| See and edit tasks, sections, comments | yes | yes |
| Add and remove attachments | yes | yes |
| Rename, recolour, re-icon the project | yes | no |
| Pin the project | yes | no |
| Move the project in the tree | yes | no |
| Archive or delete the project | yes | no |
| Add and remove members | yes | no |
| Leave the project | no | yes |
An editor opening the share panel sees the member list and a Leave project button on their own row.
Access is checked on every read and write. There is one authorisation chokepoint: you can reach a project if you own it or hold a collaborator row, and everything task- and section-shaped resolves through its project. Task and section IDs from a project you have lost access to return 404, not 403.
What a shared project looks like
Section titled “What a shared project looks like”Shared projects appear in your sidebar below your own, marked as shared. They:
- do not appear in your Pinned group;
- cannot be re-nested under your own projects;
- are included in Focus, Upcoming, Calendar, Search and Completed;
- are not included in your data export, so an export round-trips cleanly through import.
Someone else’s Inbox can be shared with you like any other project; only your own Inbox gets the pinned Inbox slot in the sidebar.
Assignees
Section titled “Assignees”In a project with more than one member, tasks gain an Assignee field,
available from the task view’s rail and from Assign… on a row’s ⋯ menu.
The assignee shows as an initial-avatar chip on the row, highlighted when it is
you.
Assignment is a label on the work, not a permission: any member can still edit any task. Removing someone from the project clears them from tasks they were assigned.
Comments
Section titled “Comments”Two threads exist:
- Task comments, in the task view.
- Project comments, from the speech-bubble icon in the project header, with an unread-agnostic count next to it.
Both are plain text up to 2000 characters. Any member can post and read;
you can only edit and delete your own. Comments are searchable from /.
Adding a comment writes a comment.added activity event and fires the
comment.added webhook.
Labels in a shared project
Section titled “Labels in a shared project”Labels are per-account. In a shared project you see your own labels on a task and not other members’. Two people can label the same task differently without either seeing the other’s tags.
When someone loses access
Section titled “When someone loses access”Removing a collaborator takes effect immediately: the project and its tasks disappear from their sidebar and views.
For syncing clients this matters, which is why GET /api/v1/projects always
returns the complete accessible set rather than a delta. A revocation does not
touch the project row, so a updatedSince query could never see it. Absence from
the full list is the only signal that catches it. See
Delta sync.
Deleting a project removes access for its collaborators until it is restored from Trash. Deleting your account cascades your owned projects away, which removes them for everyone they were shared with.
