Professional Theme Development Workflow
Pair Git version control with Shopify CLI for team collaboration, code review, and safe deployments. Each environment (dev, staging, production) maps to a different Shopify theme on the same or different stores.
BASH
# ── Initial setup ──
git init
git add .
git commit -m "Initial theme scaffold"
git remote add origin git@github.com:your-org/your-theme.git
git push -u origin main
# ── Daily development ──
git checkout -b feature/hero-section
shopify theme dev --store dev-store.myshopify.com
# ... edit sections/hero-banner.liquid ...
git add sections/hero-banner.liquid
git commit -m "Add hero banner section with video support"
git push origin feature/hero-section
# Open PR for review
# ── Deploy to staging ──
git checkout main
git pull
shopify theme push \
--store dev-store.myshopify.com \
--unpublished \
--theme "Staging"
# ── Deploy to production (after QA sign-off) ──
shopify theme push \
--store production-store.myshopify.com \
--theme PROD_THEME_ID
git tag v1.2.0
git push origin v1.2.0- main branch → production theme (protected, PR-only merges)
- develop branch → staging theme on dev store
- Feature branches → shopify theme dev ephemeral themes
- Tag releases matching shopify theme push deploys
- GitHub Actions can run theme check on every PR
Tip: Store THEME_IDs in environment variables or a deploy config — never hardcode production IDs in package.json scripts committed to public repos.