> ## Documentation Index
> Fetch the complete documentation index at: https://ago.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# AGO Sites

> Publish public static sites, such as a help center or documentation, by asking Claude or Codex. AGO builds them, hosts them and makes them easy to find for search engines and AI assistants.

An AGO site is a set of public web pages that you build by asking Claude, Codex or another coding agent: a help center, product documentation, a landing page. AGO builds every change, publishes it and keeps recent versions so you can go back to one. Anyone can open a site, without signing in.

> [!NOTE]
>
> Sites are part of [AGO Apps](https://ago.mintlify.site/features/ago-apps.md), 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](https://ago.mintlify.site/agent/connect-claude-web.md) 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**.

You can also create a site with the API: `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](https://nextjs.org) 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"` in `next.config.mjs`. `npm run build` must write the whole site to the `out/` 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:

```tsx theme={null}
export const metadata = {
  title: "Billing",
  description: "How invoices, payment methods and refunds work.",
};
```

AGO adds to every site:

* `sitemap.xml` and `robots.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.

A site can ship its own `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`](https://developers.cloudflare.com/workers/static-assets/headers/) or [`_redirects`](https://developers.cloudflare.com/workers/static-assets/redirects/) files in the `public/` folder.

## Publish changes

Each change saved on `main` is published in about a minute:

1. AGO fetches the code and installs the npm packages listed in `package.json`, without running their install scripts.
2. It runs `npm run build`, then `npm test` if `package.json` has a `test` script.
3. It publishes the files of `out/`. Only the files that changed are sent again.

If a step fails, the previous version stays online and Claude sees the error. To check which version is online, open `/_ago/version` on the site: it answers `{"version": 7, "commit": "3f2a9c…", "builtAt": "…"}`.

## Previews

A change saved on any branch other than `main` 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

| | Limit |
| - | - |
| Files per site | 20,000 |
| Size of a file | 25 MB |
| Size of a site | 500 MB |
| Requests | 600 per 10 seconds per visitor; more get `429 Too many requests` |

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`.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.