Shopify Theme Development: A Practical Starter

Install Shopify CLI, run shopify theme init to clone the Skeleton starter theme, then shopify theme dev --store your-store to preview it at http://127.0.0.1:9292 with hot reload in Chrome. Edit Liquid, CSS and JSON templates locally, run shopify theme check for errors, and shopify theme push to upload.

Shopify CLI theme commands you will use most
CommandWhat Shopify says it does
shopify theme initClones a Git repository to use as the starting point for building a theme
shopify theme devUploads the theme as a development theme so you can preview it
shopify theme pullRetrieves theme files from Shopify
shopify theme pushUploads your local theme files to Shopify
shopify theme checkRuns Theme Check to analyze your theme code for errors
shopify theme shareUploads your theme as a new, unpublished theme
shopify theme publishPublishes an unpublished theme from your library

Updated

Theme development means editing a store's design as real files on your computer, with your own editor and version control, instead of inside the admin. Click through the folder explorer below to learn what lives where, then copy the commands to get a preview running.

Theme folder explorer

Each folder in a standard theme and what it holds. Pick one to highlight it.

Commands to get a preview running

Replace my-store with your store's myshopify name. Run them from an empty folder.

Start a theme and preview it

init clones the Skeleton starter; dev prints a local address that reloads your CSS and section edits.

shopify theme init my-theme
cd my-theme
shopify theme dev --store my-store
# open http://127.0.0.1:9292 in Chrome

Check and upload

Run check before every upload. share creates a new unpublished copy, which is safest for client review.

shopify theme check
shopify theme share
shopify theme list

Liquid in one snippet

Output tags print values, logic tags decide what renders, and filters reshape a value.

A product title and price

The if tag hides the compare-at line when there is no sale; the money filter formats the price for the store's currency.

<h1>{{ product.title }}</h1>
<p>{{ product.price | money }}</p>
{% if product.compare_at_price > product.price %}
  <p>Was {{ product.compare_at_price | money }}</p>
{% endif %}

How a page is put together

A layout file wraps every page with the shared shell, such as the head tag and the header. A JSON template then picks which sections fill the page, and each section is a Liquid file that can contain blocks and snippets.

Store owners rearrange those sections in the theme editor. Your job as the developer is to make sections flexible with settings, so the owner never has to call you for a small change.

Moving work between your computer and the store

Pull before you start if anyone edited the theme in the admin, otherwise your push can overwrite their changes. The push command overwrites the remote version when you target an existing theme.

Use share to hand a client a preview: it uploads the theme as a new, unpublished copy in their library that they can look at before anything goes live.

How it works

  1. Install Shopify CLI and log in to a development store or a store you have staff access to.
  2. Run shopify theme init to get a starter theme, or shopify theme pull to download an existing one.
  3. Run shopify theme dev and open the local address in Chrome; CSS and section edits reload as you save.
  4. Run shopify theme check, then push or share the theme when it is ready for review.

Tips

Frequently asked questions

What is Liquid?

Liquid is Shopify's template language. Double curly braces output a value, such as a product title, and curly brace percent tags hold logic like if statements and loops. Filters change how a value is shown.

Do I need a paid plan to develop themes?

Developers usually build on a development store created from a Shopify Partner account. Check the current terms in the Partner dashboard, as they can change.

What is a JSON template?

A data file that lists the sections a page renders and their settings. It needs a sections object with at least one section and an order array of section IDs.

Why does my preview only reload in Chrome?

Shopify's getting-started guide says the hot reload preview works in Google Chrome only. In other browsers, refresh by hand.

Should I start from Dawn, Horizon or Skeleton?

The CLI's init command clones Skeleton, a minimal base for a theme built from scratch. Start from a full free theme if you mostly want to adjust an existing design.

Related: How to edit a Shopify theme, Shopify pricing, Free Shopify themes, Find which theme a store uses.

Start for free or see all free tools. We.Inc is free to start, with no card needed. AI building is on paid plans from $20 a month.

More in Guides

We.Inc is an AI-powered website builder you can resell under your own brand. Launch a branded client dashboard, bill on Stripe Connect, and deliver AI-generated websites in minutes. White-label plans start at $99 a month for 25 client sites, with a 7-day free trial and no per-site fees.

Product

Who It's For

Features

Resources

Company

View Sitemap