Getting started

Quick start

From a clone to a running store preview.

Requirements

Node22.22.0 or newer.nvmrc pins it, so nvm use
Shopify CLInpm i -g @shopify/cli
A Shopify storeA development store is fine

The API in src/api is optional and needs more setup. Skip it until you need it — see Do you need the API?.

Install

nvm use
npm install
cp .env.example .env.local

1. Point the theme at your store

Edit shopify.theme.toml and set store (and theme IDs, once they exist) for each environment. The defaults reference a store that isn't yours.

2. Add your storefront password

Development stores are always password protected. In .env.local:

export SHOPIFY_FLAG_STORE_PASSWORD='your-storefront-password'

This is the storefront password — Online Store → Preferences → Restrict access — not your account password.

3. Seed the theme

Once, on a brand new theme:

npm run shopify:dev:seed

A fresh theme has no templates, no section groups and no colour schemes, and 404s on everything until it does. This pushes them once. Why this is a separate step.

4. Start developing

npm run dev

Builds, then runs Vite in watch mode alongside shopify theme dev. Save a file, the preview reloads.

Scripts

CommandWhat it does
npm run devBuild, then watch + live store preview
npm run buildOne-off build into dist/
npm run watchRebuild on change, no preview
npm run shopify:checkBuild, then Shopify's linter
npm run shopify:dev:seedPush templates, groups and settings to a new theme
npm run shopify:bootstrapSame, for a brand new store
npm run shopify:push:groupsPush section groups only
npm run shopify:push:settingsPush settings_data.json only
npm run shopify:push:stagingPush to the staging theme
npm run shopify:push:productionPush to the live theme
npm run shopify:pullPull merchant edits back into src/
npm run shopify:consoleLiquid console against the dev theme
npm run api:devRun src/api locally on :3000
npm run api:buildGenerate the deployable API folder
npm run cleanDelete dist/

Where to go next

Read Folder structure to find your way around, then Adding a section to build something. If what you build is interactive, read Theme editor before you start — it is the part that is easy to get wrong and hard to notice.