Visibility
Project → Settings → Visibility.
Who can find this project and who can contribute to it. One Save visibility button; the change applies immediately to Discover and to the join endpoint.
Visible to Owner, Admin, Manager, the project creator,
and platform staff. The server enforces the same gate on every field
on this tab — an annotator, reviewer, or contributor who PATCHes
visibility, contribution_mode, join_mode, or
max_contributors directly is refused.
Defaults​
Every project is created private and members only. Nothing about an existing project changes until someone opens this tab and saves.
Visibility​
| Value | Effect |
|---|---|
| Private (default) | Reachable only through the owning organisation: org members, explicit project members, and the creator. Never listed in Discover. |
| Public | Listed in Discover for any signed-in user on the deployment. The card shows the project's title, description, logo, organisation, task count, contributor count, contribution mode, join mode, contributor limit, consent requirements, and rate card — never the labeling config, the member list, or per-annotator settings. |
Switching back to Private sends only visibility; the saved
contribution mode and limit are left untouched rather than stamped
with stale values.
Two org policies can intervene (Org policies):
- Project visibility: Private only (enforced) — the Visibility
selector is locked to Private and the server rejects
publicon create and update. - Consent agreement before going public (enforced) — the save is rejected until the project has at least one consent agreement attached under Settings → Consent. A brand-new project therefore cannot be created public.
Contribution​
Shown only when the project is public.
| Value | Effect |
|---|---|
| Members only (default) | Public to view in Discover, but only people in the owning org (or added on the Members page) can annotate. A join attempt is refused with This project doesn't accept open contributions. |
| Open to anyone | Any signed-in user can Join from Discover and start annotating — without being invited into the org. |
People who join an open project become contributors, a lightweight affiliation distinct from org or project membership: they can annotate the project's tasks and see only their own annotations; they hold no org permissions, cannot change the labeling config or manage members, and cost the org nothing. Someone who already belongs to the owning org is told so when they press Join — no contributor row is created; they already have access through membership.
Join approval​
Shown only when contribution is Open to anyone.
| Value | Effect |
|---|---|
| Auto-approve (default) | Joining takes effect immediately; the contributor can open tasks right away. |
| Review requests first | Joining creates a pending request. A pending contributor has no task access until a manager approves them on Members → Contributors. Declining removes the request; the person can request again later. |
If the org enforces Join requests need approval, the selector is locked to review-first and every join on every open project in the org is held pending — including projects whose stored join mode predates the policy. A pending request on a project that is later switched back to auto-approve is promoted to active the next time the person presses Join; an already-active contributor is never demoted to pending.
Maximum contributors​
Shown only when contribution is Open to anyone. A whole number of 1 or more, or blank for unlimited.
- Enforced on the join endpoint only. Only active contributors consume a slot — pending requests don't hold one.
- Lowering the limit never removes existing contributors; someone already on the roster can always re-join, only new joins are refused (This project has reached its contributor limit).
- If the org enforces a Contributor cap per project, the field is capped at that value and "unlimited" is clamped down to the cap.
Share link​
Shown only when the project is public. Copies the project URL
(/projects/<id>). Whether the recipient can annotate after opening
it depends on the contribution mode above — the link grants nothing
by itself.
For attributed recruiting (which coordinator brought which contributors in), use a facilitator's invite link instead — see Facilitators.
Contributors​
Shown only when contribution is Open to anyone. The roster of people who joined through Discover lives on Members → Contributors (the Manage contributors button takes you there): active contributors, pending requests (approve / decline), removal, and facilitator appointment. See Project members.
Relation to consent​
The project's consent requirements (Settings → Consent) travel with it into Discover: the join dialog shows them and contributors sign them in the join flow. Signing is enforced again server-side when an annotation is saved, drafted, or submitted — a contributor who joined but never signed is blocked at that point. See Consent library.
Gotchas​
- Making a project public does not make its tasks readable to everyone — only the Discover card is public. Task access still requires org membership, explicit project membership, or an active contributor row on an open project.
- Joining is an online action; Discover keeps working from cache offline but Join does not.
- The mobile app's Discover feed only lists projects that are allowed on mobile, so a public project can be visible on desktop and absent on a phone.
- Contributors are counted platform-wide: a single user joining more than 20 public projects is logged as a spam signal (for triage, not enforcement).
What's next​
- Discover & joining → — the contributor-side experience of everything configured here
- Project members → — the Members and Contributors rosters
- Org policies → — the Visibility & joining and Consent policies that lock these fields
- Facilitators → — attributed invite links for field coordinators