Sites are part of AGO Apps, which is enabled per workspace: contact AGO to turn it on. Use an app instead of a site for anything private or anything that needs code running on a server.
Create your first site
1
Connect Claude to AGO
Connect your MCP client to AGO and grant the Apps Write scope.
2
Describe the site
Ask, for example: “Create an AGO site called
help with a home page and three guides about billing.” Claude creates the site, writes the pages and waits until they are online. The build_site prompt of the AGO MCP server gives Claude the rules below.3
Open it
The site answers at
https://<site>.<workspace>.agosites.com. Claude gives you the link; it is also on the site’s card in Admin › Developer › Apps.POST /api/v1/apps with {"name": "help", "kind": "site"} and the Apps Write scope. A site stays a site: it cannot become an app, nor an app a site.
Write the pages
A site is a Next.js project exported as static files. The starter files show a home page, a guide and a “not found” page;AGENTS.md in the site’s code gives coding agents the full rules.
- Keep
output: "export"innext.config.mjs.npm run buildmust write the whole site to theout/folder. - Nothing runs on a server: no API routes, server actions, middleware, secrets or databases. Pages can load data while they are built, or from public APIs in the visitor’s browser.
- Everything in the site is public. Never put private information in its pages or code.
Make it easy to find
Give each page a title, a description and one main heading:sitemap.xmlandrobots.txt, so search engines find every page;llms.txt, the list of pages with their titles and descriptions that AI assistants read;- long browser caching of the files that never change, so pages load fast.
robots.txt, sitemap.xml or llms.txt instead. Pages marked noindex and paths starting with _ are left out of the generated files. The build logs list the pages that miss a title, a description or a language, that have no or several main headings, and those that share a title.
To add HTTP headers or redirects, put _headers or _redirects files in the public/ folder.
Publish changes
Each change saved onmain is published in about a minute:
- AGO fetches the code and installs the npm packages listed in
package.json, without running their install scripts. - It runs
npm run build, thennpm testifpackage.jsonhas atestscript. - It publishes the files of
out/. Only the files that changed are sent again.
/_ago/version on the site: it answers {"version": 7, "commit": "3f2a9c…", "builtAt": "…"}.
Previews
A change saved on any branch other thanmain is built the same way and published as the site’s preview. The preview is private: it opens only with its link, which Claude gets from get_app (preview_browser_url). Share that link only with the people who should see the preview. Search engines never index previews.
When the preview is right, ask Claude to publish it (promote_app): main gets the branch’s changes and the site is built and published again.
To put an earlier version back online, ask Claude (rollback_app) or call POST /api/v1/apps/<site>/rollback with {"version": 7}. If that version’s files are no longer kept, the rollback is refused: fix the problem in a new change on main instead.
Delete a site
Ask Claude (delete_app, after confirming the site’s name) or call DELETE /api/v1/apps/<site> with the Apps Write scope. The site, its preview and its code are deleted for good.
Limits
The path
/_ago/version is reserved.
Security
- Sites are public and have no secrets, databases or keys: AGO refuses them for a site.
- The build can read the site’s code and send the site’s files, never the credentials that publish sites.
- Sites are served from their own domain, separate from your apps and from AGO, so a site can never read the sessions of your team.
- AGO can turn a site, or every site of a workspace, off at any time; it then answers
503 Site unavailable.
