Liquid Build And Publish
Liquid publish is source-package based. Shoppex validates and renders the source package directly.High-Level Flow
Validate package
Shoppex validates
theme-package.json, declared files, safe Liquid usage, safe markup, and package limits.Store immutable artifact
Public assets are versioned with the artifact. Render-only Liquid source is stored privately and linked to the same immutable publish.
Source vs Artifact
There are two important objects:| Object | Purpose |
|---|---|
| Liquid source package | Editable runtime source: layout, sections, snippets, settings, schema, and manifest |
| Published artifact | Immutable live version: public assets plus private render source reference |
.liquid source files remain the render source of truth.
What Publish Requires
Publish requires:- valid
theme-package.json - all declared layout, section, snippet, settings, schema, and asset files present
assets/built.css- no undeclared templates
- no dynamic partials
- no unsafe markup or executable source files
- successful server-side validation
theme-package.json declares sections/hero.liquid but the file is missing, publish fails. Shoppex does not infer a replacement.
Preview vs Publish
Preview and live rendering use the same Liquid core.| Operation | Effect |
|---|---|
shoppex theme validate | Checks the draft package |
shoppex theme preview | Starts a sandboxed storefront render for review |
shoppex theme publish | Builds and activates a live immutable artifact |
shoppex theme publish --build-only | Builds an artifact without making it active |
Runtime Manifest
Published Liquid artifacts declarerender.mode = server-liquid.
If a new publish does not have a valid Liquid package, the pipeline fails fast.
Checks
Next Steps
Serving & Caching
How Shoppex serves HTML and assets.
Troubleshooting
Fix validation, preview, and publish issues.