Projects
A project groups shares inside an org. Every share lives in exactly one project, and the project's slug is part of the share URL:
https://anchorify.io/<org>/<project>/<slug>
When you sign up, Anchorify creates a default project called untitled in your home org. Shares you publish without specifying a project land there.
Why projects?
Projects exist because Anchorify is shared with non-technical clients, and per-share access toggles get unwieldy fast. With projects you can:
- Invite a client as a viewer of one project and keep the rest of your work invisible to them.
- Move a share between projects later (the URL redirects automatically — old links keep working).
- Rename a whole batch of share URLs by renaming the project slug, without re-publishing each share.
Creating a project
Web: there's no UI for it yet — use the CLI or the API for now.
CLI:
anchorify project create q1-reports
anchorify project create q1-reports --name "Q1 Reports"
API:
curl -X POST https://anchorify.io/api/v1/orgs/<org-slug>/projects \
-H "authorization: Bearer $REPO_SHARE_TOKEN" \
-H "content-type: application/json" \
-d '{"slug":"q1-reports","name":"Q1 Reports"}'
Slugs follow the same rules as share slugs: lowercase alphanumerics + hyphens, 1–60 chars. Reserved words (settings, members, invite, etc.) are blocked.
Listing projects
anchorify project list # human-readable
anchorify project list --json # machine-readable
API: GET /api/v1/orgs/<org-slug>/projects. Org members see every project; project-only viewers see just the ones they're a member of.
Renaming a project
Renaming a project slug writes a redirect so old share URLs in the project keep resolving (/<org>/<old-slug>/<share> → /<org>/<new-slug>/<share>).
anchorify project rename old-slug new-slug
The CLI prompts for type-to-confirm by default. Pass --yes to skip.
Publishing into a multi-project org
When your org has 2+ projects, the publish endpoint requires a --project flag:
anchorify report.md --project q1-reports
If you forget it the CLI prints the list of available projects and the exact retry command, so you don't have to look anything up.
Deleting a project
Three rules:
- Last-project block. An org must keep at least one project. The CLI and API both refuse to delete the only project in an org.
- Empty project. Deletes immediately.
- Project with shares. You have to pick a strategy:
delete: remove the project and the shares with it. The CLI requires you to type-to-confirm the project slug, since this is destructive.move: move the shares to another project in the same org first, then delete the now-empty project.
CLI (interactive):
anchorify project delete q1-reports
# CLI prompts for strategy + target if applicable.
CLI (scripted):
anchorify project delete q1-reports --strategy delete --yes
anchorify project delete q1-reports --strategy move --target q2-reports --yes
API: DELETE /api/v1/orgs/<org-slug>/projects/<pslug>?strategy=delete or ?strategy=move&target=<pslug>.
Sharing access (project viewers)
Adding viewers to a single project — without giving them admin access to the whole org — happens through invites. See invites. On a share page in your org, the chrome includes an Invite button for admins; the modal lets you pick "this project (viewer)" or "this org (admin)".