# Build and publish a theme

> Scaffold a Shoplazza Theme from Nova 2023 with Shoplazza CLI, preview it with live reload, pull and push changes, then package, share, and publish it.

This tutorial scaffolds a theme, previews it with live reload, and pushes it to a store. Theme commands are shortcuts prefixed with `+`.

## Prerequisites

* Shoplazza CLI installed — see [Install](../install)
* Authenticated — see [Authentication](../authentication)

## 1. Scaffold from Nova 2023

```shell
shoplazza themes init --name my-theme
cd my-theme
```

This clones the Nova 2023 template as your starting point.

## 2. Preview with live reload

Upload the theme to a store and preview it as a development theme:

```shell
shoplazza themes serve
```

The command returns a preview link to share and a link to the theme editor in the admin. CSS and section edits hot-reload; other changes refresh the page.

:::note
Run `themes serve` from a directory that matches the [default theme structure](/docs/theme/architecture/overview#directory-structure-and-component-types).
:::

## 3. Pull and push

Download files from a store, or overwrite the remote version with your local files:

```shell
shoplazza themes pull --theme-id <THEME_ID>
shoplazza themes push --theme-id <THEME_ID>
```

Run `shoplazza themes list` to discover theme IDs.

## 4. Share or package

Upload as a new, unpublished theme and get a shareable preview link:

```shell
shoplazza themes share
```

Or package the theme into a ZIP for distribution:

```shell
shoplazza themes package
```

## Publishing

To publish a theme live, use the theme API commands — see [themes (API)](../commands/themes-api) for `publish` and file management, and the [Theme CLI guide](/docs/theme/developer-tools/shoplazza-cli/) for the full theme workflow.

## Next steps

* [theme command reference](../commands/theme)
* [Theme development guide](/docs/theme/developer-tools/shoplazza-cli/)
