Connecting a repository
1
Push the theme
Commit everything under the theme root, including the compiled stylesheet.
2
Connect it in the dashboard
Open My Store, connect the GitHub repository and select the branch.
ByteSell reads the tree, locates directories containing
theme.json and
validates the shape before accepting the connection.3
Set it live
A connected theme installs as a private theme and is not live. Check the
deploy status, then set it live.
Versions
The version is assigned by the server, which takes the highest existing clean semver and bumps its patch, starting at1.0.0.
Schema version
schema in theme.json declares which generation of the section system the
theme targets.
The gate is one-directional. A deployment newer than the theme is accepted. A
theme declaring a version higher than the deployment supports is rejected:
Validation
Checks run in this order. Any failure rejects the entire publish.1
Size and paths
File count, per-file size, total size and path rules. See
Limits.
2
Templates parse
Every
.slurp must be valid UTF-8 and must parse within a 10 second budget
per file.3
No {fetch} in a block
Any file under
blocks/ containing a {fetch} at any depth is rejected.4
Linked stylesheets exist
Every literal root-relative
.css referenced by an href must be in the
bundle.5
Schema version is supported
See above.
6
Defaults and schemas extract
templates/*.json must be valid JSON with a sections array, every entry
needs a string type, and ids must be unique within a page.Common rejections
Propagation
Store configuration is cached, so a published theme reaches buyers within about 60 seconds. The builder preview is uncached and updates immediately. For the first minute after a publish, the preview reflecting a change the live store does not is expected.Deploying a built artifact
A theme built in CI should publish the built artifact rather than have ByteSell pull raw source. The deploy action mints a short-lived OIDC token, so no secret is stored..github/workflows/deploy.yml
In a repository already connected by webhook, both paths fire on the same
push. The first successful action run switches the theme to artifact mode and
the webhook stops deploying it, so only the first push after adding CI can
race.