Reusable and local blocks
Blocks are smaller pieces placed inside sections. Upstorr supports two kinds.
Reusable blocks
Store a visible piece used by several sections under:
theme/blocks/shared/<type>.liquid
theme/blocks/retail/<type>.liquid
The file owns the block's Liquid markup, CSS and schema. The compiler discovers the filename automatically. There is no React registry and no Casa-specific rendering code outside the theme.
Examples include button, text, image, product card, price and quantity blocks.
Section-local blocks
Declare a local block in the parent section schema when it makes sense only inside that section. Its design remains in the main section file. The inner block does not receive a separate code editor.
Nesting and locks
The schema declares which child block types each parent accepts and an optional maximum. Preset trees must follow those same rules. Block trees support at most eight nested levels, 200 installed blocks and 500 blocks across one schema's preset trees.
A static local block fixes an important position. It must declare its ID and type and set static: true, removable: false, reorderable: false and duplicatable: false. Keep those identities unchanged when editing the section.