# Publish a website

> Put a static site or a Cloud app online at a free Playcode address, and publish again each time you want visitors to see a change.
> Source: https://playcode.io/docs/publish/publish-a-website - last reviewed 2026-10-09.
> Ask Playcode's agent: "Publish this project." It publishes a Cloud app and tells you its address; a static site you publish yourself with Publish.

Publishing puts your project on the internet at a free Playcode address: a static site on `playcode.site`, a Cloud app on `playcode.run`. Visitors see the version you published last, so publish again each time you want them to see a change.

## Do it yourself

1. Open the project and choose **Publish** at the top of the editor. You can also open the project menu (☰ and the project name, at the top left) and choose **Publish…**.
2. Read the **Publish** tab. Before its first publish, a static site says where it goes live: "Publishing v3. This becomes the live version at 12345.playcode.site." A Cloud app that has never been published shows **Custom Subdomain**: type a name, or leave it empty and Playcode picks the address.
3. Choose **Publish**. On a static site that is already live, the button says **Publish update**.
4. Wait for the result. A static site shows "Your site is on the internet." the first time, and "Your website has been published." after that. A Cloud app opens the **Deployment** window. Its first publish goes through **Creating your app**, **Starting up**, **Building & publishing** and **Final checks**, and ends with "Your site is on the internet." A later publish starts with **Saving a backup** and **Pushing your changes**, and ends with "Your app is live".
5. Open the address to check the site. Once the project is live, the **Publish** tab shows its address at the top.

To change the site later, ask the agent for the change, check it in the preview, then publish again.

> [!NOTE]
> Moving a site from another host? Publish it here first, then [connect your domain](/docs/publish/connect-a-domain). Cancel the old host only after your domain opens the new site.

> [!WARNING]
> To take a project off the internet, open **Settings**, then **Domain & publish**, and choose **Unpublish**. For a Cloud app this deletes the production computer and the data on it, and you confirm by typing DELETE. The development computer, the code, its history and its checkpoints stay.

## If it doesn't work

### "The build failed"

The static site's code has an error, and the window shows it under "Make sure your project code is correct and works - the error is below." Ask the agent to fix the error, then choose **Publish** again. See [A build or publish failed](/docs/help/build-failed).

### "Publish failed"

The Cloud app's publish stopped at a step. The **Deployment** window shows **What went wrong** and opens **Build details** with the log. If the app was live before, it stays on the previous version: "We rolled back to your previous version, so your site stays up." Ask the agent to read the log and fix the cause, then publish again.

### "This workspace is based on older history than the published version"

The code on the development computer is older than the live version, so publishing would roll the app back. Production was not changed. Ask the agent to reconcile the two histories, then publish again. The message "This workspace and the published version each have changes the other doesn't" has the same fix.

### The new address does not open

After you change a static site's address, the site answers at it only after the next publish. Choose **Publish update**. See [Your Playcode address](/docs/publish/your-playcode-address).

## Limits

- On the Free plan, a static site shows a "Built with Playcode" banner, and you cannot choose the name in its address. Pro and Max remove the banner and let you choose the name. See [Bandwidth and limits](/docs/publish/bandwidth-and-limits).
- Cloud apps need a Pro or Max plan. See [Run a Cloud app](/docs/publish/cloud-apps).
- Each file of a static site has a size limit, and a larger file is left out of the published site. See [Bandwidth and limits](/docs/publish/bandwidth-and-limits).
- Each publish saves a checkpoint by itself: a static site saves the version it publishes, a Cloud app saves its production computer before the change. Only the newest of these are kept. See [Undo and checkpoints](/docs/build/undo-and-checkpoints) and [Snapshots and rollback](/docs/publish/snapshots-and-rollback).
- Only the project's creator, or an Admin of the project or its workspace, can publish and unpublish.
- Publishing does not share the project's code or chat. Sharing is a separate control: see [Share a project](/docs/build/share-a-project).
