Skip to content
Start here2 min read

Roles and what each one can do

Who may read, who may edit, and which parts of Growth-OS are closed to a role.

On this page

Where this comes from

This guide is distilled from src/policies/roles.ts and docs/CONVENTIONS.md. When the guide and Growth-OS disagree, that document is the one to trust, and the difference is worth reporting.

The people in a Growth-OS project with their roles
A teammate profile with the role recorded for this project
A teammate profile with the role recorded for this project
Team settings with members and their assigned roles
Team settings with members and their assigned roles

Four levels of access

Access is recorded per person per project and checked on the server for every read and every write. The browser never decides what you may do; it only shows you what your recorded role already allows.

  • Viewer and advisory: read everyday work, comment, and join eligible votes. No editing and no finance access.
  • Editor and first hire: edit everyday work and join eligible votes. No finance and no salary access.
  • Admin and founder: manage people, settings, content and finances, including salaries.
  • Owner: everything an admin can do, plus ownership transfer.

What a viewer can still do

Reading is not a spectator role in Growth-OS. A viewer can upvote a roadmap request, comment on a decision, and cast, change or withdraw their own vote on a poll until it closes. Those are deliberately open to read access, because the case for a request should be built by the people who want it.

What a viewer cannot do is change the record itself: the title, the alternatives, the poll options, the rationale, the status. A control that is unavailable says why rather than failing when you press it.

Finance is separate

The Finance group is read and updated by project administrators. An editor who runs campaigns every day does not see budgets, expenses, payments or salaries, and that separation is enforced by the same server checks as everything else.

Unknown fails closed

A role Growth-OS does not recognise gets nothing. The same rule runs through the product: an account whose campaign suppression nobody recorded stays out of every audience, a stage neither vocabulary recognises is counted as unknown, and a source with no selected site or property refuses the read instead of falling back to a default.

When a control you expect is missing, check your role for this project first. An archived project refuses every save whatever your role.

Was this page helpful?

Feedback is stored only in this browser in the starter implementation.