Sites & Deployment

Describe a Site, Get It Live on a Subdomain

A description in plain words becomes a generated static site, uploaded to object storage with website hosting turned on, pointed at by a DNS record, and handed back as a working URL. Available as an API, so your own product can offer it.

Words in, working URL out

A user describes the page. A designer character generates it, a publisher character puts it somewhere real, and the run returns the address — no template picker, no builder UI in between.

Deployment is part of the run, not after it

The same run creates the bucket, enables static-website hosting, uploads the files, puts a CDN with a certificate in front so the result is HTTPS, and upserts the DNS record. Nothing is handed to a human to finish.

Every revision kept, and reversible

Each published revision is stamped and recorded. List them, roll back to a specific one, or delete the site — undo is an endpoint, not a support ticket.

API-first, so it can be someone else's feature

One POST starts a build and the run is polled for its result. A partner product can offer site generation to its own users without operating any of it.

Multi-tenant by construction

Tenants are separated at the token, so one caller's sites and another's never mix — the same isolation every other Forge workflow runs under.

The job

“Our users describe what they want. They should end up with a page that exists at an address — not a download, not a draft, not a to-do for someone on our side.”

The gap between a generated page and a published page is where most “AI website” features quietly stop. Producing HTML is the easy part; a bucket has to exist, hosting has to be switched on, files have to land, DNS has to point somewhere, and someone has to own the failure when step three works and step four doesn’t. That plumbing is why the feature usually ends as a ZIP file.

What Forge does

One run, from a sentence to an address:

Descriptioninputwhat the page should be
DesignerDesignergenerates the site
PublisherDevOpsbucket · hosting · upload
HTTPS + DNSCDN, certificate, subdomain
Live URLoutputrevision stamped, reversible

The designer turns the description into the actual page.

The publisher does the unglamorous half: creates the storage bucket, enables static-website hosting on it, uploads the files, and upserts the DNS record so the subdomain resolves. Cloud credentials are resolved server-side and never enter the model’s context — the same rule as everywhere else in Forge.

The run returns the URL, and because it is an ordinary workflow run it also leaves the ordinary record of how it got there.

Why this shape matters

It is an API, not a page in our dashboard. One POST starts a build; the run is polled for its outcome. That means the capability does not have to be our product feature — it can be yours. A product that collects a description from its own users can hand them a live site without running storage, DNS or a build pipeline.

Tenancy is carried by the calling token, so one tenant’s sites are separated from another’s by construction rather than by convention.

Honest state

Shipped and smoked live: brief → generated site → bucket and hosting → upload → CDN with a certificate for HTTPS → DNS → a working URL, plus listing revisions, rolling back to one, and deleting a site.

The live smokes are where it got real. They caught four defects unit tests could not have: a cloud API that demanded a different content type, a tool registered on one execution path but not the other, three missing IAM grants, and an enum that had to be uppercase. A green build is not a working pipeline — which is why we smoke against the real thing before calling anything done.

The cloud is Yandex Cloud, and it is the only adapter written. Object storage, CDN and DNS all go through it, in production, today; the workflow shape is not specific to it, but the other adapters are not written yet. Very large multi-file bundles hit a request-size ceiling we have not lifted. Certificate propagation at the cloud’s edge can take hours on a fresh domain — that one is theirs rather than ours, but it is real and worth planning for.

Under the hood

Want your product to hand users a live site?

Bring the shape of the page you want and where it should live. The API surface is one POST and a poll.