BetaMaShop is in public beta. We improve it continuously, and your feedback shapes what comes next.

Invite collaborators

Workspace & collaborationEnglish· 4 min read· Updated July 01, 2026

Invite teammates to a project by email, set them as editor or viewer, and change or remove their access. Only the project owner can manage the team.

How-to

Invite teammates to a project by email and give each one the editor or viewer role. The person you invite gets an email with a sign-in link; once they accept, they appear in your project and can open the workspace at the access level you chose. Only the project owner can invite, change roles, or remove people.

Open the team panel

The team lives in the project settings modal.

  1. Open a project in the workspace.
  2. Open the settings modal and select the Équipe (Team) tab.
  3. Click Inviter (Invite). The button appears only when you are the project owner.

The same invite form is also reachable from the Partager le projet (Share project) modal, under the Inviter par email section.

Send an invite

  1. Type the teammate's email address.
  2. Pick a role from the dropdown: Éditeur (editor) or Lecteur (viewer). Editor is selected by default.
  3. Click Inviter.

MaShop creates a row in the workspace_collaborators table with status = 'invited' and sends an invitation email. The link in that email carries a signed token that names the project, the invited email, and the role, and it expires after 7 days. The email field (project_id, email) is unique, so re-inviting the same address on the same project updates the existing invitation instead of creating a duplicate.

You can invite the same address before they have a MaShop account. The row stores the email; when that person signs up and opens the link, MaShop attaches their user id to the row.

Invites are owner only

The invite route checks that you own the project before it writes anything. A collaborator (editor or viewer) cannot invite other people. You also cannot invite your own email, and you cannot invite past the rate limit of 20 invites per 15 minutes from one network address.

What happens when they accept

When the invited person opens the link, MaShop checks the token and the row, then flips the collaborator to status = 'active' and routes them into the project. A few things can stop acceptance:

  • If they are signed out, MaShop sends them to log in first, then back to the invite.
  • If they are signed in with a different email, the page shows Mauvaise adresse email and names the address the invite was issued for. They must sign in with that exact account.
  • If the link is older than 7 days, the page shows Lien expire and asks them to request a fresh invite.
  • If you removed the invitation before they accepted, the page shows Invitation introuvable.
  • If the project was deleted, the page shows Projet indisponible.

Roles and what each can do

Every project has exactly one owner: the account that created it. You invite others as editor or viewer. The role you assign is enforced on every workspace API call through requireProjectRole, which ranks access as owner over editor over viewer.

ActionViewerEditorOwner
Open the project and read the chat historyYesYesYes
Browse the generated files and preview the siteYesYesYes
View deployment status and build logsYesYesYes
View the version timeline and snapshotsYesYesYes
Send prompts to the AINoYesYes
Edit files and commit to GitHubNoYesYes
Deploy to Netlify and restore a snapshotNoYesYes
Invite, change roles, or remove collaboratorsNoNoYes
Delete the projectNoNoYes
Pick the role by the work

Use editor for anyone who should change the build: prompt the AI, edit code, or deploy. Use viewer for a client or stakeholder who should follow progress and read the code without touching it.

Change a role or remove someone

In the Équipe tab, each member row carries a ... menu (owner only).

  • Passer en Lecteur / Passer en Éditeur toggles that person between the two roles.
  • Retirer removes the collaborator and revokes their access immediately.

You cannot change your own role or remove yourself from a project you own. Members you have invited but who have not yet accepted show an Invité (invited) label until they open the link.

Privacy of the shared work

Inviting a teammate gives them access to the workspace for that one project only, not your other projects. The generated code lives in your GitHub repository and deploys to your own Netlify account, so collaborators work on your infrastructure, not a MaShop-hosted runtime. Your prompts and generated code are not sent to OpenAI or Anthropic.

For project-level controls beyond the team, see Manage projects. To understand who can deploy, see Deploy overview.

collaborationrolesteam
Was this page helpful?
Your feedback is anonymous.