Back to Blog
Web Development

Shopify Theme Development Guidelines: Best Practices for Cursor-Powered Workflows

Claude Directory November 30, 2025
2 views

Unlock efficient Shopify theme development with proven guidelines that debunk common myths, optimize performance, and leverage tools like Dawn and Shopify CLI for scalable results.

Myth 1: Any Folder Structure Works Fine for Shopify Themes

Many developers believe they can organize Shopify theme files arbitrarily, leading to chaos in larger projects. In reality, adhering to Shopify's official reference structure is crucial for maintainability, collaboration, and tool integration. The standard layout mirrors Shopify's expectations, making it easier for Cursor AI to navigate and suggest improvements.

Start with the Dawn theme as your blueprint—it's Shopify's flagship reference implementation, optimized for Online Store 2.0. Key directories include:

  • assets/: Static files like CSS, JS, JSON. Name files with .liquid extension for processing (e.g., theme.css.liquid).
  • config/: Settings schemas for merchants (settings_data.json, settings_schema.json).
  • layout/: Core templates like theme.liquid for the HTML skeleton.
  • locales/: Translation files (e.g., en.default.json).
  • sections/: Reusable, customizable blocks—heart of OS 2.0.
  • snippets/: Small, reusable Liquid partials.
  • templates/: Page-specific layouts (e.g., product.liquid).

Pro Tip: When initializing a project in Cursor, clone Dawn and customize. This prevents drift from standards. Example: A basic theme.liquid structure:

<!doctype html>
<html {{ html_classes }}>
<head>
  {{ content_for_header }}
  {{ 'base.css' | asset_url | stylesheet_tag }}
</head>
<body>
  {% section 'header' %}
  <main>{{ content_for_layout }}</main>
  {% section 'footer' %}
</body>
</html>

Adding value: This structure supports app blocks and dynamic sections, reducing render-blocking issues by 20-30% in benchmarks.

Myth 2: Local Development is Overkill for Simple Themes

Some think uploading via the Shopify admin suffices, but this ignores previewing, hot-reloading, and version control. Bust this by embracing local workflows with Theme Kit or Shopify CLI—essential for Cursor's AI-assisted editing.

Setup with Shopify CLI (Recommended for OS 2.0):

  1. Install: npm install -g @shopify/cli @shopify/theme
  2. Login: shopify auth login
  3. Init: shopify theme init my-theme
  4. Dev server: shopify theme dev --store my-store.myshopify.com

This spins up a local server at localhost:9292 with live sync. Cursor shines here—use its composer to generate sections while changes proxy instantly.

Theme Kit Alternative:

npm install -g @shopify/themekit
theme watch --environment=development --store=my-store.myshopify.com

Real-World Application: For a product page tweak, edit sections/product-form.liquid locally, see changes in <1s, and let Cursor autocomplete Liquid logic like {%- if product.available -%}.

Myth 3: Code Style is Subjective and Unimportant

"Write it however you like" leads to inconsistent, hard-to-debug themes. Shopify enforces conventions for Liquid, JS, and CSS/SCSS to ensure compatibility.

Liquid Guidelines:

  • Indent 2 spaces (no tabs).
  • Use {%- and -%} to strip whitespace.
  • Descriptive variables: {% assign hero_height = section.settings.image_height %}.
  • Avoid globals; scope with capture.

Example optimization:

<!-- Bad -->
<div>{% if foo %}bar{% endif %}</div>

<!-- Good -->
<div>{%- if section.settings.show_banner -%}
  {{ section.settings.banner_title }}
{%- endif -%}</div>

JavaScript (ES6+):

  • Semicolons optional but consistent.
  • CamelCase vars/functions, PascalCase components.
  • Use modules: import { debounce } from './utils.js';

CSS/SCSS:

  • BEM or RSCSS methodology.
  • Nesting ≤3 levels.
  • Critical CSS inlined in <head>.

Added Context: Cursor's AI can enforce these via custom rules—prompt it with "Refactor this Liquid to Shopify standards" for instant compliance.

Myth 4: Performance Issues Are Shopify's Fault, Not Yours

Blame the platform? No—developer choices dominate Core Web Vitals. Follow these:

  • Images: Use image_url filter with scale=2&format=webp: {{ product.featured_image | image_url: width: 500, scale: 2, format: 'webp' }}.
  • Lazy Loading: Native loading="lazy" + fetchpriority="high" for LCP.
  • Fonts: Preload: <link rel="preload" href="{{ 'fonts.woff2' | asset_url }}" as="font">.
  • JS: Defer non-critical: defer src="{{ 'app.js' | asset_url }}".

Benchmark Example: Lighthouse scores jump from 60 to 95+ on mobile by lazy-loading sections below fold.

Practical: In Dawn, sections like image-banner.liquid exemplify this—clone and measure with shopify theme pull post-changes.

Myth 5: Accessibility is a Nice-to-Have

"It works for me" ignores 15%+ of users with disabilities. Shopify mandates WCAG 2.1 AA.

  • Semantic HTML: <main>, <nav>, role="region".
  • ARIA: aria-label on icons, aria-expanded for accordions.
  • Keyboard nav: :focus-visible styles without outlines.
  • Alt text: Always {{ alt | escape }}.

Example snippet:

<button aria-expanded="{{ section.settings.open }}" aria-controls="accordion-{{ section.id }}">
  {{ section.settings.title }}
</button>

Value Add: Cursor can audit: "Check this section for a11y violations"—it flags missing labels automatically.

Myth 6: SEO is Handled by Apps Alone

Plugins help, but core theme markup wins. Implement:

  • Structured data: JSON-LD for products (@type: Product).
  • Meta: {{ content_for_header }} auto-handles much; add custom og:title.
  • Canonicals: <link rel="canonical" href="{{ canonical_url }}">.
  • Sitemap: Leverage sitemap.liquid.

Dawn includes robust defaults—extend with schema.org in product.liquid.

Myth 7: Testing Ends at Visual Check

Eyeballing? Insufficient for production. Rigorous testing prevents regressions:

  • Manual: Cross-browser (Chrome, Safari, Firefox), devices (Chrome DevTools).
  • Automated: Lighthouse CI: lhci autorun.
  • Liquid Logic: Use render preview in admin.
  • Edge Cases: Empty carts, sold-out products.

Actionable Workflow: Integrate GitHub Actions with Shopify CLI for PR checks.

Myth 8: Deployment is Just a Zip Upload

Manual uploads lose history and risk overwrites. Use:

  • CLI: shopify theme push --live --publish
  • Theme Kit: theme deploy development

Version with Git: git checkout -b feature/banner && git push.

Myth 9: Common Pitfalls Are Obvious

Avoid:

  • Hardcoding store data—use shop object.
  • Inline styles—asset them.
  • Overusing sections (limit 50/section).
  • Ignoring OS 2.0 JSON templates.
  • Forgetting {% schema %} in sections.

Cursor Hack: Ask "List pitfalls in this code" for proactive fixes.

These guidelines transform theme dev from trial-error to streamlined process. Reference Dawn religiously, wield CLI/Theme Kit, and let Cursor amplify your speed—deploy production-ready themes 2x faster.

<div style="text-align: center; margin-top: 2rem;"> <a href="https://cursor.directory/shopify-theme-development-guidelines" target="_blank" rel="noopener noreferrer" class="view-full-resource-btn" style="display: inline-block; background-color: #f97316; color: white; padding: 12px 24px; border-radius: 8px; text-decoration: none; font-weight: 600; transition: background-color 0.2s;">View Full Resource</a> </div>
GitHub Project

Comments

More Blog

View all
Claude for Developers

Building Voice Agents with Claude API and ElevenLabs: Conversational AI Guide

Build natural voice agents combining Claude API's superior reasoning with ElevenLabs' lifelike TTS. This end-to-end guide creates a conversational web app with STT, AI chat, and speech synthesis.

C
Claude Directory
2
Model Comparisons

Claude vs Mistral Large 2: 2025 Data Analysis Benchmarks and Use Cases

As data volumes explode in 2025, choosing between Claude's reasoning depth and Mistral Large 2's efficiency is critical. We benchmark SQL generation, visualizations, and large datasets to reveal the w

C
Claude Directory
1
Enterprise

Claude Enterprise for Cybersecurity: Threat Modeling and Incident Response

In the high-stakes world of cybersecurity, rapid threat modeling and incident response can mean the difference between containment and catastrophe. Discover how Claude Enterprise empowers security tea

C
Claude Directory
1
Claude Code

Claude Code in VS Code: Custom Commands for Refactoring Large Codebases

Refactoring sprawling codebases manually? Harness Claude Code's power in VS Code with custom commands to automate AI-driven refactors across TypeScript and Python projects—saving hours of drudgery.

C
Claude Directory
1
Claude for Developers

Claude SDK Rust for Blockchain: Smart Contract Auditing Agents

Build blazing-fast smart contract auditing agents in Rust using the Claude SDK. Harness Claude's reasoning to scan Solidity code for vulnerabilities like reentrancy and overflows.

C
Claude Directory
1
Claude Best Practices

Advanced Claude Artifacts: Collaborative Editing in Multi-User Sessions

Elevate team productivity with Claude Artifacts in multi-user projects—enable real-time iterative editing for code reviews and docs without leaving the interface.

C
Claude Directory
1