Skip to content

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.

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.

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.

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.

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 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.

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.