Theme app extension blocks
Definition
App blocks are interface an app ships as part of a theme app extension. A merchant adds one to a section from the theme editor, and the app owns its markup, its assets and its settings from then on. The theme decides only where blocks are allowed, by accepting the @app block type in a section's schema.
Documented at shopify.dev, theme app extensions.
How We've Used It
Every product page we rebuild ends up as a block list, and the question that decides its shape is which blocks a merchant can add that we don't control. So our product sections accept @app blocks beside our own, and pin them by position rather than by selector, because a selector into someone else's markup breaks on their next release. A subscription widget, a review mount, a back-in-stock button: all of them become things a merchandiser places. One storefront goes further and runs a section whose only block type is @app, built to host a Shopify form and restyle it through the custom properties and the shadow root the app exposes.
Builds Using It
- Composable PDP block architecture — LUS Brands. Its product section accepts app blocks beside two dozen of its own.
- Metafield-driven PDP content system — Nudestix. Campaign and review widgets sit in the block list, ordered by the merchandiser.
- Bundle and kit PDP template — Nudestix. A second product template whose block set carries the widgets a bundle page needs.
- PDP block system on a premium theme — Three Ships. A premium theme's PDP reworked so a subscription widget is placed, not injected.
- Deferred LyveCom shoppable-video mounting on the product page — LUS Brands
- DOM and shadow-DOM remediation layer for Yotpo, Rebuy and Recharge widgets — Three Ships
- Themed host section for Shopify Forms app blocks — Three Ships
5 further gated builds use it; their pages follow.
Related Entities
- Liquid section schema and settings — the schema that decides where an app block may go.
- Custom elements — what most app blocks mount as.
- CSS custom properties — the seam for styling a block you don't own.
- Metafield-driven PDP content blocks — the capability these block lists serve.