Skip to main content
Webentor Studio

Help · Getting started

Getting started with Webentor Studio

Make a website, edit it the way it looks, let an AI assistant help, and publish it to this server or to your own hosting. Every project is a real Git repository and a plain Astro site, and Export everything gives you all of it, history included, whenever you like.

Five steps to a live site

Sign in to start; this list ticks itself off as you go.

  1. Create your first sitePick one of eight templates, or bring a site you already have.
  2. Replace our words with yoursHome page, about, contact: the words and images are ours until you change them. A draft is a safe place to do it.
  3. Publish your changesWhen a draft is ready, publishing it builds the site and swaps it in. Until then, your live site stays as it is.
  4. Let your AI assistant inClaude Code, Cursor, VS Code, Gemini CLI, Codex, Claude or ChatGPT can rewrite pages, add sections and build previews on a line of its own. You finish it in the editor, and by default nothing goes live until a person publishes it.
  5. Add a passkeySign in with your laptop or phone, and confirm important actions without waiting for an email.
All 15 topics on this page

Start

Sign in

There is no password to forget: your email gets a link and a six-digit code, and either one signs you in.

  1. Type your email address on the sign-in page.
  2. Open the link in the email, or type the code if the link opens in the wrong browser.
  3. Once in, Add a passkey under Account → Security. It signs you in with one gesture and confirms the actions that ask “is this really you”.
Good to know

Invited by somebody? The invitation link signs you in and joins you to their team in one step; their projects are on your projects page afterwards.

Some deployments ask an operator to approve a new address first. If yours does, the sign-in page says so, and you are emailed once you are let in.

Start

Create a site

Press New project, give it a name and pick a template. A real Git repository is made and seeded in a few seconds.

The first time, Your projects is empty and has one button: Set up your site. It asks who builds the first version (you in the visual editor, your own AI assistant, a site you already have, or a repository you will push), then a name, and the next click creates the project. Nothing on that path needs a key, so nothing waits for one.

  1. Any other time: on Your projects (the home page), press New project at the right of the title.
  2. Answer What is the site called?, choose the team it belongs to and one of eight templates.
  3. Wait a few seconds for Setting up to finish, and the project is ready to edit.

Either way, the page that says the project exists offers your AI assistant a way in on the spot: pick the client, press Connect, and paste the line it prints. Choosing “my assistant” puts that form first. For everybody else it waits below, under Or let your AI assistant help, and the project’s launch list keeps it as an optional step until you connect one or put it away.

Each project card then has Open project for its page, and two buttons underneath: Open the editor, which starts an editing session or continues your last one, and Edit with AI.

Start

Bring a site you already have

From a live website, from your own computer, or from another Studio. Your history comes with you from the last two.

From a website

New project → Import an existing site. It reads WordPress, Drupal, a sitemap or the pages themselves, and lands the result as a draft to review, never straight onto a live site.

From your computer

A self-hosted Webentor site connects in one command, history and all. It makes the project here and pushes into it:

npx --package=@webentor/site webentor-site studio connect <this Studio’s address>

With an API token from Account → Security in WEBENTOR_API_TOKEN.

From another Studio

On the other Studio, open the project’s Settings and use Move this project to another Studio with this Studio’s address and a token from here. Every branch travels; credentials are re-entered.

Pushing a repository yourself

Choose the template Empty — I already have a repository to push, then push to the Git address on the project page (your email as the username, an API token as the password). The first push of the live branch finishes the setup: webentor.cloud.json sets the stack version, the content is indexed, and the first build starts. A push to the live branch is a publish, so that site goes online; a project made from a template waits until you press Publish.

studio connect does the same from a self-hosted project, and works with any Studio: yours, a partner’s, or Webentor Cloud. Give it the address you sign in at, and it asks the Studio where its API is.

Edit

Edit your site

You never edit the live site directly. You edit a working copy, and visitors see nothing until you publish.

  1. Press Open the editor on a project card or on the project page. That opens an editing session: a working copy of your own that nobody else sees.
  2. Save as you go with Save, or ⌘S / Ctrl S. Each save is a commit under your name, with a history you can read.
  3. Come back tomorrow and the project page says Continue editing, with everything you saved still there.
Good to know

Create branch on the project page makes the other kind of line: named, shared with everyone on the project, and kept until you delete it. Use one for a redesign or a campaign you will come back to over weeks. A branch can start from the live site or from a line you already have, and Merge on its page moves its work into the live branch or another line without publishing it.

A session nobody opens for a month is tidied away (archived, so its history stays), and you are told a week before. With a read-only role the button says View in editor and the editor opens without its controls.

Edit

The visual editor

A page is a tree of blocks: your pages and their blocks on the left, the page itself in the middle, the settings of what you selected on the right.

  • Edit and Preview are the two modes in the toolbar: the editable canvas, and the page as it will render, including what you have not saved yet. Preview puts the site’s header and footer around it and runs its sliders, menus and lightboxes, at whichever width you pick above the canvas.
  • Media is the site’s image library: drop a file in, give it alt text, use it anywhere. An SVG is cleaned before it is stored: scripts and anything else that could run are removed. Settings holds what belongs to the whole site: menus, colours and type, redirects, and which pages search engines skip.
  • Undo and redo work as you expect. Unsaved changes are kept in the editing room, so a reload or a closed tab does not lose them; the editor asks before you leave only while the room has not received your last keystrokes yet.

The schema decides what a page can hold

Every block type has fields, and a save that does not fit the project’s schema is refused with the exact field named. It is what keeps a site somebody else built from breaking under you. Paste and Duplicate keep the same rules: where a lock or an allowed list forbids a block they say Not pasted here or Not duplicated, and blocks this project does not have are not pasted at all.
The keyboard, and a block that cannot show

From the keyboard: the outline of blocks is one tab stop. The arrow keys move through it, Enter selects, and Shift F10 or the menu key opens a block’s menu. Enter on a row of the Add tab inserts that block, and a block’s Drag block grip moves it with Space, the arrow keys and Space again.

When a block cannot show, the rest of the page stays. A block this project no longer has is a labelled placeholder you can select and delete, a block that fails says Block failed to render in its place, and a side panel that cannot show something offers Try again. Your unsaved changes are untouched.

Edit

Drafts, branches and your team

Try something on a line beside the main one, and edit the same page as your colleagues at the same time. Both sets of edits survive.

  1. In the editor, open Which content you are editing (the toolbar button that names the line you are in) and choose New draft….
  2. Edit as normal. Build preview in the top bar previews whichever draft you are in, so you can send the campaign version and the main one separately.
  3. Merge into main draft folds it back. If a document changed on both sides you choose per document, and nothing merges until you press Merge with these choices.

A role says what somebody may do; the projects they are on say where. Owners and admins run the team and reach every project; a developer, editor, reviewer, viewer or tester sees the projects you put them on. Invite people (Invite by email) and choose their roles from Team settings, the link beside each team on Your projects.

Good to know

Two people in one document see each other and where they are; undo takes back your change, not theirs. If the connection drops, Save waits (it reads Reconnecting…) and nothing typed on either side is lost. On a document nobody else is in, a save never overwrites a change made since you opened it: the editor merges the two and saves, and where you both changed the same thing it asks you to choose, with Keep mine or Take theirs. A reload does not throw away what you have not saved: the room keeps it until somebody saves or undoes it. If somebody merges or discards the draft you are in while you have unsaved changes, the page stays open and says so, so you can copy them first.

A tester is the smallest role: they open previews of their projects, read what changed and leave notes, but cannot open the editor or the repository, or publish. It is the role for a client who is checking.

Share and publish

Previews

Every session and branch has its own preview address. Send it before anything goes live; the next build lands on the same link.

  1. Press Preview on a session or branch, or Build a preview on its page, to build the whole site at that line’s own address. A version that was built already opens straight away.
  2. Choose who can see it under Preview on the line’s page. By default a branch’s preview opens for the people on the project, and your session’s for you alone (and for its reviewers while it is in review). To show it to anybody else, choose anyone with the link for a day, a week or a month, or name them under Invite someone by email. Each gets a link of their own and needs no account.
  3. Send the link. Next week’s build lands on the same address.
Good to know

While a build runs, the address says Preparing your preview and refreshes itself. Before anything is built on a line it says whether a build is on its way, or who has to ask for one. If the newest build fails, the address keeps showing the previous version, with a notice at the top of every page, until a build succeeds. The line’s page says why it failed.

An older version opens the same way: Preview this version shows it at its own permanent address without disturbing what is live.

Settings → Previews puts a passphrase over every preview of a project: the pages, the images and the still-building screen alike.

Share and publish

Publish

Publish merges the draft into the live branch, builds the site and deploys it to every place the project publishes.

  • Where it goes is Settings → Hosting: the server this Studio runs on, plus your own account on Cloudflare Pages, Cloudflare Workers, Netlify, Vercel or GitHub Pages, or a ZIP to download. A publish goes to all of them.
  • Your own domain: Connect a domain you own on the project’s Publishing tab. Its certificate is issued once the DNS checks out.
  • If the project asks for review, editors and developers send a draft for review, and an owner, admin or reviewer approves and publishes it. The draft’s Discussion is where that happens, and a Git push to the live branch from a role that sends for review is refused. Only an owner or admin sets Who may publish (Settings → General), and turning review off asks them to confirm it is them.

Changed your mind?

Restore this version, under Published history on the project’s History tab, puts an earlier build back in seconds, because it redeploys what was already built. It also opens a draft that undoes the change.

AI assistants

AI assistants

Claude Code, or anything else that speaks MCP, works through the same API and the same checks as the editor, on a line of its own, and by default asks before anything goes live.

  1. Open Account → AI assistants, or press Manage with AI beside “Your projects”. Edit with AI on a project card opens the same form with that project chosen.
  2. Under Connect your AI agent, pick your client and All my projects (or one), and press Connect.
  3. Follow what the page prints. It is that client’s own way in, with real values, shown once.
How each client connects
ClientHow it connects
Claude CodeA claude mcp add line to paste, with no secret in it: the first time, it signs in through your browser. Claude Code with a token is for SSH and CI.
CursorAn install link, and the JSON for your own ~/.cursor/mcp.json, never the project’s copy.
VS CodeAn install link, and your user configuration, which asks for the token once and keeps it encrypted.
Gemini CLIA gemini mcp add --scope user line, which keeps the token in ~/.gemini/settings.json, outside the project.
CodexA codex mcp add line that reads the token from a variable you export in the terminal you start Codex from.
Claude, ChatGPTNo token at all: add the address as a custom connector and sign in when asked.
Anything elseTwo export lines, WEBENTOR_MCP_URL and WEBENTOR_MCP_TOKEN, which the project’s committed .mcp.json reads. The token never goes into the file.

To let it run your projects: a project assistant

A content assistant edits sites. A project assistant creates, imports, configures, builds and publishes projects, attaches domains and, only if you allow it, deletes them, at https://api.studio.webikon.eu/mcp.

Claude Code, Claude and ChatGPT sign in as you, so there is nothing secret to copy. The first time one connects it opens your browser here: you choose the teams it may work in, how much it may change (manage projects, publish and domains, delete) and how long it stays connected, and it refreshes itself until then. It can never do more than you can.

Claude Code
Run this once in your terminal
claude mcp add --transport http webentor-projects https://api.studio.webikon.eu/mcp

Then approve it: in Claude Code run /mcp and choose Authenticate, or run `claude mcp login webentor-projects`.

For an assistant with a small context window
claude mcp add --transport http webentor-projects 'https://api.studio.webikon.eu/mcp?tools=core'

Run this line in place of the one above. It lists only the tools for finding, creating, building and publishing projects, so the list takes far less of the assistant's context. Every other tool still works when the assistant calls it by name.

Claude (web, Desktop, mobile, Cowork)
In Claude

Add a custom connector with this URL, and sign in when asked: https://api.studio.webikon.eu/mcp

Settings → Connectors → Add custom connector, on the web, in Claude Desktop, on mobile or in Cowork. No token is needed: Claude signs in as you. Photos: upload them in the editor’s media library, or give the assistant a public link to each one. A photo pasted into the chat cannot reach the site.

For an assistant with a small context window
https://api.studio.webikon.eu/mcp?tools=core

Use this address in place of the one above. It lists only the tools for finding, creating, building and publishing projects, so the list takes far less of the assistant's context. Every other tool still works when the assistant calls it by name.

ChatGPT
In ChatGPT

Add a custom connector with this URL, and sign in when asked: https://api.studio.webikon.eu/mcp

Settings → Connectors → Developer mode → Add a custom connector. No token is needed: ChatGPT signs in as you. Photos: upload them in the editor’s media library, or give the assistant a public link to each one. A photo pasted into the chat cannot reach the site.

For an assistant with a small context window
https://api.studio.webikon.eu/mcp?tools=core

Use this address in place of the one above. It lists only the tools for finding, creating, building and publishing projects, so the list takes far less of the assistant's context. Every other tool still works when the assistant calls it by name.

Cursor, VS Code, Gemini CLI, Codex, another MCP client, or a machine with no browser (SSH, CI)? Those take a token: create a project assistant token, and its lines for each client are printed with it, naming the server webentor-projects.

An assistant can never do more than you can

Its token carries your role, narrowed to what you granted: by default content, media and previews and nothing else, for a day with a pasted token or for as long as you approve when it signs in. Its “publish” is a request that a person approves, unless an owner lets it publish its own line (Settings → AI assistants). Code it wrote is always published by a person, from the draft page. Every call it makes is a row in the project’s Activity.
What happens next, and the two kinds of assistant

The assistant works on a line of its own, so your live site and your drafts are untouched. It hands you a preview link and a link to finish in the editor; the draft page leads with Continue in the editor. To bring one onto a draft you are already in, the draft page has Invite an assistant onto this draft. For a single project, its Connect an assistant button opens Settings → AI assistants. While its line is in review or scheduled, and once it is published or discarded, the assistant can no longer change it, so what you read is what goes live, and it starts a new line for anything further.

A content assistant edits pages, media and blocks, on every project you can open or the ones you tick, read-only or read & write, for as long as you choose (Create an assistant token on the AI assistants tab). A project assistant runs projects instead: it creates, configures, builds and deploys them, attaches domains and, only if you tick it, deletes them, at https://api.studio.webikon.eu/mcp. Claude Code, Claude and ChatGPT sign in to it with the lines above, and every other client takes a project assistant token from the same tab.

A block it makes is code, so a person publishes it. With Blocks & code an assistant can make or change the site’s block types on its own line, and it never publishes them, even on a project that lets assistants publish. The draft page shows that code file by file, with what the block checks said about each block (passed, failed with the first problem, removed, or not checked yet). Publish it from there once you have read it: the editor refuses to publish a line carrying an assistant’s code and sends you to the draft page, and until then it adds no raw HTML or script to that line either. A block the live site or another open draft still uses cannot be deleted, and the refusal names the pages.

Anything beyond a day of content, media and previews asks you to confirm who you are first. A client that signs in renews its own access and stays the same assistant (its project, its line and its budgets carry over) until the time you approved runs out. Every assistant has budgets (tool calls a minute, writes an hour, preview builds and generated blocks a day), and one that runs out is told when it can go on. An agent with several projects asks list_projects and picks one with use_project; to keep a client on one project, connect it to /mcp?project=team/project. Connected to one project, Cursor, VS Code, Gemini CLI and Codex name the server webentor-<project>, so a second project gets an entry of its own instead of replacing the first.

Revoke a token, or let it expire, and nothing can add to the lines it opened. They are tidied away a month later, and you are told a week before, so there is time to merge one or press Keep for longer on the project page. A pasted token that expires is told so when it next calls, and Reconnect for a day beside it on the AI assistants tab gives it a new secret to paste; its line carries on.

Then just ask: “What blocks can this site use?” · “Rewrite the pricing page on a fork so I can compare”. Claude Code also offers ready-made prompts as slash commands: /new_page, /edit_page, /try_on_a_fork, /review_draft and more.

Keep track

Notifications

The bell in the header is your inbox for every team you are in: failed builds, drafts waiting for your approval, finished imports, domains and form entries.

  • Repeats fold together: four failed builds on one project are one line with a count, and it starts again once you have read it.
  • Email is yours to set under What you are emailed about: right away, a daily summary, or not at all, per kind and per team.
  • It follows you into the editor: a bell in its toolbar with the same count, and new things arrive in the corner while you work.
  • A project somebody schedules for deletion tells everyone who can restore it, with the date it will be erased, including when an assistant did it.

Keep track

Forms, analytics and search

Already running on every published site. They need no third-party script or other account, and nothing here calls for a cookie banner.

  • Forms: a contact form is a block. Entries land under Forms on the project page with any files the visitor attached (up to a limit per project). Read them there, download them as a CSV spreadsheet, or delete one; it asks first, and a deleted entry is gone for good. Export everything takes the entries and their files with it.
  • Who is told: a form emails the addresses set under Notifications when you edit it in the editor, and never a copy to an address the visitor enters. The bell gathers a project’s entries into one notification a day. Its count can be lower than the real number when many arrive at once, so the Forms page is where to count them.
  • Analytics counts page views and referrers on our side, from the request itself. There is no tracking script, and nothing personal is stored.
  • Search content finds a phrase on every page, in every language, on the live site or on one draft you pick. It is useful before a rename.

Keep track

Activity: what happened, and who

Everything done on your behalf is written down as it happens: who, what, when, and whether it was a person or their assistant.

A project

Activity on the project page: drafts, saves, builds, publishing, domains and every assistant call, which you can filter and export.

A draft

The Discussion on its page: notes, review decisions and what happened to the line, in one list.

A team

Activity on the team page, for owners and admins: joins, roles, credentials and deletions too.

You

Account → Activity log: your own sign-ins and security events, and every change to your access in any team. You can filter by either.

Why you can trust the record

Every row is written in the same transaction as the thing it describes and carries a hash of the row before it, so removing or changing one shows. Verify the record on a team’s Activity page walks the whole chain; a daily check does the same. Rows are kept for two years, and those about access and credentials for three. If platform staff ever open your account, that is a row in your record too.

Inside the editor, Activity beside the avatars shows the same rows for the line you have open.

You and your sites

Your account and security

Your account has 5 tabs. Most people only ever need two of them, and adding a passkey is worth doing today.

General
Your name, used as the author of everything you save.
AI assistants
Connect an agent, see each one’s status and what it handed you to review.
Security
Passkeys, recovery codes, where you are signed in (the five most recent sessions, the rest a click away) and API tokens for Git and the API, each shown once, when it is made.
Activity log
Your sign-ins and security events, and changes to your access in any team, in one list.
Advanced
Closing your account. A team is deleted from that team’s own Security tab.

A passkey is worth the two minutes

Email sign-in makes your mailbox the key to this account. A passkey is your laptop or phone, and it cannot be phished. Add one. The first comes with a set of recovery codes, shown once; keep them somewhere that is not the laptop. If something in your activity log was not you, Sign out everywhere on Security ends every other session and every API token.

You and your sites

Keeping your site current

A project is on one Webentor release, a set of Webentor package versions proved to work together. When this Studio offers a newer one, the project page says so and offers Review the update, and you need no terminal.

  1. Press Review the update on the project page to see the release you move to, what each release on the way says, and every package’s version before and after.
  2. Press Update: a draft opens, the lockfile is regenerated for you, and a preview is built. Your live site is untouched.
  3. Check the preview, then publish that draft like any other.
Good to know

An update moves only the packages the project already has, each to the version its release was proved with, and adds nothing new. The lockfile is regenerated in a build of its own; if it would not install exactly the release, that build fails and says why. Notifications tell you when a newer release is available, or when a security or data advisory names yours. This Studio’s operator may have opened the draft already; it is called Upgrade to Webentor ….

Configuration files that came from the template, such as astro.config.ts and its neighbours, are offered, never taken: nothing is ticked, and each shows the difference its tick would write. An older template copy is a clean update. A file marked customised is your own work, which the tick replaces wholesale, so it asks for a second tick beside the warning. Your content types (src/content-types.ts) and hosting settings are never on the list, and pnpm-workspace.yaml is merged. A project already on this Studio’s release can take the files alone, with Take these files.

A package moved off the project’s release by hand shows on its page as a custom package, by name; the update puts it back, in a draft called Reset to Webentor …. A fix reaches a site only in a release, so when a newer one is out than this Studio offers, the update page says it arrives once this Studio is updated.

A project that keeps a yarn or bun lockfile can be updated too, though this Studio does not regenerate that file: the draft moves the pins where yarn or bun reads them, and sets an install line that reads the lockfile if the build’s own line ignores it. A project that cannot be updated from here, such as one whose build installs with --frozen-lockfile from a lockfile this Studio cannot regenerate, says why on its update page.

You and your sites

When something is wrong

Nothing that fails here touches your live site, and everything you have can be taken with you at any moment.

A build failed
The reason is beside the build on the draft or project page. It is the site’s own build error, usually a page referring to something that is not there. On a project that also publishes elsewhere, the build guard stops a publish whose pages point at /wn/image or /wn/file (only this server answers those) and names each page.
A save was refused
Somebody else changed the document: the editor merges their change with yours, and only where you both changed the same thing does it ask, Keep mine or Take theirs. Or the content does not fit the schema, and the message names the field.
You are stuck
Export everything, under a project’s Settings → Take it with you, gives you the whole thing, history included, so nothing here can hold your work hostage while you work out what happened. The moving guide says how to take a project to your own computer or another Studio.