Back to feed
Dev.to
Dev.to
7/16/2026
The Liquid you lint isn't the Liquid Shopify runs

The Liquid you lint isn't the Liquid Shopify runs

Short summary

Shopify's local linting tools run LiquidJS, a JavaScript reimplementation, while the live storefront uses Shopify's Ruby engine — and the two don't handle whitespace control identically. When whitespace is load-bearing (splitting strings, pre blocks, JSON blobs), local validation can pass while production breaks. The rule: lint locally, but render whitespace-critical templates on the real Shopify engine before trusting them.

  • Local Shopify linters use LiquidJS, not the Ruby engine that serves production — whitespace handling differs
  • Whitespace-sensitive code (string splits, pre blocks, JSON) can break in production despite clean local linting
  • Lint locally for syntax/schema, render on live Shopify when whitespace is load-bearing

Generated with AI, which can make mistakes.

Is this a good recommendation for you?

Comments

Failed to load comments. Please try again.

Explore more