> ## Documentation Index
> Fetch the complete documentation index at: https://docs.liteshop.me/llms.txt
> Use this file to discover all available pages before exploring further.

# Publish and manage a Site

> Publish a Site Bundle, update it, preview changes, roll back, and connect a custom domain.

This page explains how a Site goes live and how you change it afterwards. All
the steps happen in the [Liteshop dashboard](https://app.liteshop.me).

## Publish a new Site

1. Build or package your Site as a ZIP file with `index.html` and
   `liteshop.json` at its root.
2. In the dashboard, click **Website** > **Upload files**.
3. Enter the Site name and the subdomain, select the ZIP file, and click
   **Check and publish**.

Liteshop validates the complete bundle. If it passes, the Site goes live at
`https://SUBDOMAIN.liteshop.me` as its first Deployment. If it fails, Liteshop
lists each problem with a repair instruction. See
[Validation errors](https://docs.liteshop.me/reference/validation-errors.md).

## Publish an update

Each Deployment is immutable. An update creates a new Deployment from a
complete bundle; Liteshop never merges files into the live version.

1. In the dashboard, click **Website**, and then click **Open website settings**
   (the gear button).
2. In **Upload an update**, select the new ZIP file and click
   **Check and publish**.

An update must say which live version it replaces, so that two people can't
overwrite each other's changes. Liteshop records this as `baseDeployment` in
`liteshop.json`:

* A bundle you download from **Versions** already contains the right value.
* If your build creates `liteshop.json`, for example from `public/liteshop.json`,
  validation fails the first time and its repair message gives the exact value
  to set. Add it to your source file and build again.

Clicking **Check and publish** is your approval: a valid update goes live
immediately.

## Preview before publishing

Dashboard uploads publish as soon as they're valid. To preview a change first,
use the [ChatGPT connector](https://docs.liteshop.me/guides/chatgpt.md#update-a-site-with-the-connector):
ChatGPT creates a Draft and gives you a private preview link, and nothing goes
live until you approve it.

Previews run on their own private address. They can't send forms or call other
SDK methods, so test those on the live Site.

## Download a version

1. In **Website settings**, go to **Versions** and click the **Published** tab.
2. Next to a version, click **Download**.

The ZIP file is a complete, portable copy of that version.

## Roll back

1. In **Website settings**, go to **Versions** and click the **Published** tab.
2. Next to an earlier version, click **Go back to this version**, and then confirm.

Rollback changes the Site's pages and declared configuration only. Messages,
bookings, orders, stock, and Manual Blocks stay as they are.

## Connect a custom domain

Each Site can have one custom domain. Use a subdomain such as
`www.example.com`; your domain provider can redirect the bare domain to it.

1. In **Website settings**, go to **Custom domain**.
2. Enter the domain and click **Connect domain**.
3. At your domain provider, add the DNS record that Liteshop shows.
4. Reload the page to check the status. After Liteshop finds the record, it
   issues a certificate, which can take a few minutes.

The Site stays available at its `liteshop.me` address. To stop using the
domain, click **Remove domain**.

## Dashboard edits

Some dashboard pages also publish a new Deployment, without a ZIP file:

* **Settings** > **Site details** changes the Site's name, languages, and time
  zone.
* **Catalogue** changes products, services, collections, and their images.
* **Calendars** > **Connect calendar** adds a Calendar Connection.

These edits keep all your other files. If your code builds pages from data in
`liteshop.json`, read that data in the browser through the SDK instead, so that
dashboard edits appear without a rebuild. For example, use
[`liteshop.catalogue.list()`](https://docs.liteshop.me/reference/catalogue#show-the-catalogue).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.