# Publish your app

Learn how to publish your app, manage its website.diy address, release updates, and troubleshoot common publishing issues.

Publishing puts your app online over HTTPS at its website.diy address, and anyone who has that address can open it. Search engines don't list website.diy addresses, so people find your site through the links you share. Each publish builds a clean copy of your app, and your live site only changes when you publish again. So you're free to keep building in the Preview while visitors use the version you published.

## What you'll need

You'll need Admin access to the project. You're the Admin of any project you create, and your organization's Owner and Admins count as Admins on every project. For everyone else, **Publish** shows a lock and the names of the people who can publish.

Your organization also needs credits, because a publish can only start while it has some. And WebDIY needs to have built a first version of your app. Until it has, the panel says "Nothing to publish yet".

## Publishing for the first time

1. Select **Publish**, the blue button with a globe at the top of your project.
2. In the panel that opens, select **Publish**.

   > **What you should see:** The panel shows each stage as it runs: Save, Prepare, Install, Build, Upload, Deploy and Go live. You can close the panel and publishing carries on.
3. Once the panel shows **Live**, select **Open site** to visit it, or **Copy address** to share it.

> **What you should see:** Your app is live at its own address, something like `https://calm-meadow-4821.website.diy`. Sites on the Free plan show a small "Built with WebDIY" badge.

## Publishing your changes

When you change your app after publishing, a dot on the **Publish** button lets you know you have changes that aren't published yet. To put them on your live site, select **Publish**, then **Publish changes**. If nothing has changed, the panel says "Up to date."

## What goes into a publish

- Your app's code, as it was last saved. Every publish builds it from scratch on a fresh computer. A front-end app is served as files, and if your app has its own API, the API is published with it.
- The same database and keys as the Preview. Your preview and your published site share one database, so a test entry you make in the Preview is a real entry on your live site. Every key in **Keys & secrets** serves both.

## Search engines

Search engines like Google and Bing don't list sites at website.diy addresses. Your site still opens for anyone with the link, and link previews still show when you share it. To show up in search results, connect a [domain you own](https://web.diy/docs/publish/custom-domains#showing-up-in-search) (Pro and Max).

## Changing the address

Each project starts out with its own address made of two words and a number. To pick a different one:

1. Open **Tools**, then **Publishing**.
2. Type the new name in the **Address** block. It can be 5 to 32 characters long, using lowercase letters, numbers and single hyphens. When the check says "Available.", select **Save**.
3. If your site is live, you'll be asked to confirm. Select **Change address**.

> **Warning:** The old address stops working right away, and any links people saved to it will break. For 7 days nobody can take the old address, not even this project.

If you'd like your app on a domain you own, see [Connect a custom domain](https://web.diy/docs/publish/custom-domains) (Pro and Max).

## Your release history

Every publish is listed in **Tools**, then **Publishing**, then **Releases**, with the newest at the top. Each one shows who started it and where it stands: **Live**, **Replaced**, **Publishing…**, **Blocked** or **Failed**. To read a release's build output, select **Show the log**.

## When a publish can't start

The **Publishing** screen and the panel both tell you why. These are the usual reasons:

| What you see                                                     | What to do                                                                                                         |
| ---------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ |
| Only project admins publish                                      | Ask one of the people named, or ask for Admin access in **Members & sharing**.                                     |
| Your organization is out of credits                              | Wait for your daily top-up, or ask an Owner or Admin to buy credits. Your published sites stay up in the meantime. |
| A publish started on this project less than 2 minutes ago        | Each project can start one publish every 2 minutes. The message tells you when you can start the next one.         |
| Your organization already has the most publishes running at once | Free runs 1 at a time, Pro 3 and Max 5. Wait for one of them to finish.                                            |
| WebDIY is working on a message in this project                   | Let the message finish, then publish.                                                                              |

## When a publish is blocked or fails

- **Blocked** means we found the value of one of your project's secrets in the built site, so the publish stopped before going live. Your live site hasn't changed. Select **Fix it in chat** to ask WebDIY to move the key out of the browser code. See [Keys & secrets](https://web.diy/docs/database/keys-and-secrets).
- **Failed** means the build stopped on an error. The release shows the first error from the build output. Ask WebDIY to fix it, then publish again.

## The "Built with WebDIY" badge

Free sites always show the badge. On Pro and Max you can hide it with the **Show the badge** switch in **Tools**, then **Settings**, or from the **Badge** block on the **Publishing** screen. You can also pick which corner it sits in. If your site is already published, the change reaches it within a few seconds, with no need to publish again.

## How your live site uses credits

Hosting your published sites uses credits, billed by the hour. If your organization runs out of credits, your sites keep serving anyway. [How credits work](https://web.diy/docs/plans/credits) covers what hosting costs.
