Getting started
Quick start
From a clone to a running store preview.
Requirements
| Node | 22.22.0 or newer — .nvmrc pins it, so nvm use |
| Shopify CLI | npm i -g @shopify/cli |
| A Shopify store | A 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 usenpm installcp .env.example .env.local1. 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:seedA 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 devBuilds, then runs Vite in watch mode alongside shopify theme dev. Save a file,
the preview reloads.
Scripts
| Command | What it does |
|---|---|
npm run dev | Build, then watch + live store preview |
npm run build | One-off build into dist/ |
npm run watch | Rebuild on change, no preview |
npm run shopify:check | Build, then Shopify's linter |
npm run shopify:dev:seed | Push templates, groups and settings to a new theme |
npm run shopify:bootstrap | Same, for a brand new store |
npm run shopify:push:groups | Push section groups only |
npm run shopify:push:settings | Push settings_data.json only |
npm run shopify:push:staging | Push to the staging theme |
npm run shopify:push:production | Push to the live theme |
npm run shopify:pull | Pull merchant edits back into src/ |
npm run shopify:console | Liquid console against the dev theme |
npm run api:dev | Run src/api locally on :3000 |
npm run api:build | Generate the deployable API folder |
npm run clean | Delete 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.