Documentation The loop
Publish a website
One approval puts a site on the internet at its own address under your domain. What the publish does step by step, how to republish or take a site offline, and the ZIP handover.
Nothing goes live until you say so. Approve & publish is that decision, and it publishes the static site stored in Opportunora to your Cloudflare account.
For a site that needs a custom backend, see Build a website that needs a server. That workflow starts with a download and launches the extended site on separate hosting.
Before the first publish, two things must be in place under Settings → Deployment: a connected Cloudflare account and a publishing domain with its project created. See Connect Cloudflare and Connect your own domain.
Approve & publish
The button is on the website's card on the Websites screen and in the editor's toolbar. Both open the same dialog, and the dialog checks where the site will go before it lets you confirm:
Publish Harbor Dental Care? This puts the website on the public internet. Anyone with the address can open it, and search engines can find it.
https://harbor-dental-care.sites.youragency.com
If something is missing, the dialog names it instead and Publish stays disabled:
- No Cloudflare account is connected. Open Settings → Deployment.
- No publishing domain is set. Open Settings → Deployment.
- The Cloudflare project has not been created yet. Open Settings → Deployment.
Approving needs the Admin or PM role.
What happens after you confirm
The publish goes into a queue and a worker runs it. The card or the toolbar shows each step as it happens:
- Collecting the site files — every live site in the workspace, rebuilt from the database. See why in Connect Cloudflare.
- Preparing the Cloudflare project
- Checking which files Cloudflare already has — unchanged files are not uploaded again.
- Uploading files
- Creating the deployment
- Pointing harbor-dental-care.sites.youragency.com at the site
- Waiting for the certificate — up to two minutes, usually seconds.
Publishes in one workspace run one at a time. If another site is publishing, the card reads Queued and starts when that one finishes.
When it is done:
- The website's status is Deployed, and the card offers View live.
- The deal moves to Sent.
- You get a notification: Harbor Dental Care is live at …
If the certificate is still pending after two minutes, the publish still completes and tells you so. The site is live; its recorded link points at the Cloudflare address until you publish again. See HTTPS.
The address is permanent
A site's address is taken from its name at the first publish and fixed from then on. Renaming the website does not move it, because a client already has the link. Taking it offline and publishing again later gives it back the same address.
Republishing
After an edit, Approve & publish again. The dialog says Republish and warns that the new version replaces what is live. Only the current version is ever published.
If a publish fails
The card reads Publish failed — open and the editor shows the error. A failed publish is retried once automatically. The common causes:
| Message | Fix |
|---|---|
| The token was rejected for this account. | The Cloudflare token lost its Pages permission or was rolled. Reconnect under Settings → Deployment. |
| Cloudflare could not activate … Check that the wildcard CNAME for this domain is in place. | The DNS record is missing or points elsewhere. Check DNS on the Deployment tab. |
| This Cloudflare account has reached its 100 Pages projects. | Delete a project you no longer use in Cloudflare, or publish into another account. |
| A site may hold 20000 files / a file over 25 MB | Cloudflare's limits. A generated site is nowhere near them; an attachment you added might be. |
A publish waits in the queue until a worker picks it up. If it sits at Queued for good, no worker is running — that is a deployment problem, not something in the site. See Troubleshooting.
Taking a site offline
The trash button on a live site's card asks what to remove:
- Take it offline only — removes the site from Cloudflare and frees its place on the project. The website and the deal stay, so you can publish it again later at the same address.
- Delete it completely — takes it offline and deletes the website with every version and its chat history. The deal moves to Discarded. This cannot be undone.
Neither can happen while the site is publishing or generating.
Handing the site over
Download files in the editor, or Download all files in the studio, gives you the current version as a ZIP:
- Every page, with clean URLs —
about/index.htmlrather thanabout.html. - Every image as a real file under
assets/. - Relative links throughout, so the folder works on any static host and owes nobody a request.
That is also how a client moves to their own hosting when an engagement ends.
Because of the clean URLs, open it through a local web server rather than by
double-clicking index.html.
Next
For the next step with a published site, see Invoices.