Skip to main content
This builds a website with the Sites plugin and actually ships it, ending with a public address of the form https://xxx.site.profy.cn. One thing to internalize first: the agent cannot publish. Its deploy tool only raises a hand saying “I’m ready” — the actual publish must be confirmed by you in the UI. That isn’t red tape; it’s deliberate. Publishing is an irreversible outward-facing action and shouldn’t be a model’s unilateral decision. Once that’s clear, “it said it deployed but the URL doesn’t work” stops being confusing.

What you’ll get

A publicly accessible static site at https://<your-slug>.site.profy.cn.

Prerequisites

1

Enable the Sites plugin

Sites is one of the plugins you must select manually. Without it the agent has no site tooling and will fall back to writing plain HTML files — a path that can’t be published.
2

Confirm the sandbox is available

Sites depends on the sandbox. Experts configured with no sandbox can’t use it.
3

Gather your assets

Have your logo, product shots, and brand colors ready. Generating everything stretches the flow and incurs image generation costs.

Steps

Step 1: State the goal, get directions first

The agent uses the design-direction tool to present candidates, and only fixes the design baseline once you choose. The value here is surfacing aesthetic disagreement before any code exists — saying “that’s not the feel I wanted” after the pages are written costs dozens of times more.

Step 2: Supply assets

Send your own images, or give URLs for it to download and localize:
Assets have a budget: the site asset directory must stay under 40 MiB in total. Files above 2 MB are automatically offloaded to object storage and referenced by URL, so they don’t count against the local budget. “Too many images to publish” is therefore usually not an asset-total problem but a total build-output problem (below).

Step 3: Open the preview and iterate

The preview starts a dev server in the right-hand panel with hot reload, so “make the headline bigger” shows up on refresh.
The first preview start can take a while (tens of seconds). That’s a cold start, not a hang. If you see a “still starting” message, wait — restarting just makes it begin again from scratch.
Raise one class of issue at a time:

Step 4: The three gates before publishing

When you say you’re ready to publish, the agent calls deploy and three checks run. If any fails it will not hand you a publish card — it tells you where it’s stuck instead: All three block on failure (no warn-and-proceed). The temp design pages matter most — they’re a scratch artifact from your direction picking, and shipping them alongside the real site is embarrassing. With all three passed, the agent returns an “awaiting deploy confirmation” card pointing you at the Deploy button in the Website panel.

Step 5: Confirm the publish in the UI

Hitting Deploy asks for a site slug: The field validates as you type, with four outcomes: available, malformed, reserved, or already taken by another user.
Republishing under a slug you already own is an update, not a collision — it replaces your own previous version, which is the normal way to iterate. Use a different slug if you want to keep both versions live.The namespace is global, so generic words (docs, home, demo) are likely already owned. A distinguishing prefix such as acme-errmon-2026 is far more likely to be free on the first try.
Ownership registration only exists from 2026-08-11 onward. Sites published before that left no ownership record — publishing didn’t track who did it, so the records can’t be reconstructed — and those older slugs go to whoever republishes first. If you have an early site still in use, republish it soon to register the name to your account.
After confirming, the build and upload run — this can take a few minutes. On success you get the live URL.

Step 6: Accept the work

  1. Open it on mobile data (not your own browser) to rule out cache illusions
  2. Click through every nav item and internal link, confirm no 404s
  3. Confirm the temp design pages are really gone (try a path you remember)
  4. Confirm all images load, especially the large ones offloaded to external URLs

What happens during publish

Knowing the chain helps you read the error messages:
1

Build

Runs the build in the sandbox and produces static files. There’s a time cap (about 200 seconds); oversized projects or broken dependencies will time out.
2

Payload validation

Build output must stay under 50 MiB total and 5000 files. Over either and it’s rejected before upload.
3

Upload

Files go to object storage, which is what actually serves the site. Failure here fails the publish.
4

Edge preview (best effort)

A copy also deploys to an edge platform as a preview backup. Failure here does not affect publish success — your primary URL works regardless.
Note that step 2’s 50 MiB bounds the entire build output (assets + JS + CSS + HTML), while step 4’s 40 MiB gate bounds only the asset directory. So it’s possible to pass the asset gate and still be rejected at publish — that means JS/CSS consumed the remaining headroom.

Boundaries and failure modes

Updating a published site

Go through confirm-and-publish again with the same slug to overwrite what’s live. There’s no staged rollout and no version rollback — if you need to keep the old version, publish the new one under a different slug.

Sites

Sites capability overview

Limits and quotas

All size and count limits

Plugin catalog

Which plugins need manual selection

Image generation

Billing for generated site imagery