Build every page. Run the whole catalog. One editor.

One canvas lays out every page: 85 bounded section types on a single renderer, so what you design is what ships. That same canvas runs the catalog behind it: products and variants edited like a spreadsheet, combo bundles whose stock is derived from their parts, nutrition read off the pack. One product record, so a name you change on the page is already saved on the product.

85 section typesCatalog on the same canvasYours to run after launch
Inheriting templatePublish

This is the real editor chrome. The same undo/redo, draft/publish and delta chip run every page on your store.

85 section types. One consistent grammar.

Every block your store can show (heroes, product grids, testimonials, FAQs) comes from one registry, not a pile of one-off templates. That's what makes the rest of this page possible.

0

section types, one grammar

0

reorderable & duplicable

0

singletons — one per page

Hero

The opening panel: headline, support line, up to two calls to action.

Content

Editorial prose, image-and-text splits, FAQs, feature rows.

Commerce

Live product and collection grids, with items filling in from your catalog.

Social proof

Testimonials, trust bars, press mentions.

Media

Photo galleries and brand imagery, framed to the grid.

Structural

Ribbons, dividers, closing panels — the rhythm between everything else.

64 usable on site pages · 22 on a product page · 11 on a blog post, plus 4 site-wide chrome sections (navbar, footer, announcement bar, coupon popup) that never clutter the Add gallery.

Change the template. Watch it ripple — except where you told it to stop.

A product or blog page doesn't fork your template when you customise it. It stores only what's different. Everything you never touched keeps inheriting your future edits, forever. Shopify has no native equivalent.

Edit the template once→ three pages inherit it live
Template
the PDP template
Jasmine Green
Inheriting template
Lemon Ginger
Inheriting template
Pineapple
kept
CustomizedReset ↺
logSignature Trio’s delta on ‘seasonalBanner’ — that section left the template. Dropped & logged, never thrown. The rest of the page keeps inheriting.

Pages store only their differencesfrom the template, never a fork. A template edit keeps flowing to every page that hasn’t touched that section; a page that has keeps exactly what it changed. Shopify has no native equivalent.

The canvas, the dashboard and the live page are the same code.

There's no second renderer trying to approximate the first. Editor affordances are optional hooks on top of the one path — strip them out and what's left is exactly your public page.

the one renderer

PageRenderer

Editor canvas

what you edit

Dashboard thumbnail

what the list shows

The live page

what a shopper sees

type: ‘legacyPromoV2’An unrecognised section type renders a quiet dashed placeholder, “skipped on your live page,” never a crash.

Wix gives you free CSS and hopes for taste. We didn't build the field.

Section style is a closed set of enums and tokens, never raw CSS. Pick a colour outside your palette and the system quietly hands back the nearest one that belongs to your brand.

Try to go off-brand

Pick a colour that isn’t in the palette.

#FF2E9A

your pick

#c97a4c

ships as “Copper

This runs the real clampToPalette() function, snapping to the nearest of your 8 brand colours by distance. There is no field that accepts the pink.

Style is enums, not CSS
Every control is a closed list — background tone, padding, alignment, width, type-scale. There is no freeform CSS field to find.
An unset control changes nothing
Curated colours write namespaced variables, each clamped, so a section nobody has touched renders byte-identical to the live page.
Tones can't collide
An automatic rhythm engine alternates background tones down the page. Two heavy tones never land back to back, even by accident.
A nudge before the page gets slow
Past 12 sections, or 6 image-heavy ones, the canvas says so, well before your visitors feel it.

Fifty undos, a real revision history, and a preview that doesn't lie.

The boring parts of an editor are the parts that earn trust. Nothing here is a scaled-down div pretending to be a phone.

Desktop1440px · real media query
Undo/redo, 50 steps
Typing coalesces into one step, so undo feels like intent, not keystrokes.
Draft, publish, discard
Publishing snapshots a full revision and who published it, so every change has a paper trail.
No silent overwrite
A stale edit surfaces "someone edited this," never quietly loses either version.
Placement is enforced, not suggested
Singleton caps and allowed positions are checked in code, rather than recommended in a tooltip.

Edit a name on the canvas. It's already saved on the product.

Fourteen of the eighteen sections on a product page are yours to restyle. The four that touch commerce (pack selector, add to cart, pincode check, subscription nudge) stay put, because that's not a design decision.

Page Builder canvas

PDP · Overview section

Product name

Jasmine Green — Whole Leaf, 50g
one record

Products admin

Catalog · Jasmine Green

Product name

Jasmine Green — Whole Leaf, 50g
18-section template · 4 lockedPack selectorAdd to cartPincode checkSubscription nudge

Not just the page. The catalog that fills it.

The same admin that lays out a page also runs the catalog behind it: products and variants edited like a spreadsheet, combo bundles whose stock is derived from their parts (never typed), and low stock that flags itself under ten. A label photo can even fill the nutrition panel, with you approving every value before it goes live.

CatalogProducts · InventoryProducts4Combos1Low stock3
Products · inline stock & pricing
Product · SKUOptionPriceStatusStock

Pineapple Green Tea

ZT-PGT-50· default

50 g₹299Active
9Low

Jasmine Green Tea

ZT-JGT-50· default

50 g₹315Active
7Press Enter

Lemon Ginger Green Tea

ZT-LGT-50· default

50 g₹329Active
6Low
+ Add variantPack sizeFlavourColourMaterialCaffeine

Prices display in rupees and store to the paise (₹315 = 31,500). Press Enter or blur to save. Saving / Saved / Retry / Low / Out states, per SKU.

Combo · Signature TrioCombo

Calculated from Pineapple, Jasmine, and Lemon Ginger stock.

  • Pineapple Green Tea×19 on hand → 9 bundles
  • Jasmine Green Tea×17 on hand → 7 bundles
  • Lemon Ginger Green Tea×16 on hand → 6 bundles
Suggested price₹801.55₹94315% off
Derived stock

Scanning components. Bundles fall to the lowest child, never typed by hand.

Combos hold no stock of their own (note the lock). A missing or inactive component drops availability to 0 with a blocking warning.

A representative catalogProducts, variants, combos and inventory are real commerce, live in our proof store — the numbers here are sample data.
Nutrition & labelSimulation
Draft — needs approval
Read from label image

Reads only what’s legibly printed on the pack. Undeclared fields stay blank, never guessed. Each value comes back with a confidence badge to verify.

Note: Caffeine printed faintly near the fold — reading it as ~28 mg. Please confirm against the pack.

Per serving · 1 cup (2 g)

  • Energyhigh1 kcal
  • Total Sugarshigh0 g
  • Sodiummedium1 mg
  • Caffeinelow28 mg
Save draftSave & approve

Nothing goes live until you approve it, and any later edit needs re-approval. Approved facts feed the product page and Google rich results. Shown here as a simulation; it launches with your API key.

Search, social and your journal, without leaving the page.

Two smaller mechanics, the same canvas: how a page shows up on Google and in a share card, and how a blog post gets written.

Search & social preview

Google result

yourstore.com › shop › jasmine-green

Jasmine Green Tea — Whole Leaf, 50g | Your Store

Whole-leaf Darjeeling green tea, hand-blended with real jasmine. No dust, no artificial flavouring, free delivery over ₹499.

Title /60 · description /160 · canonical · robots — noindex also drops the page from the sitemap.Product and post SEO edit the entity itself, so there’s one source of truth rather than two out-of-sync copies.

Article body, in a drawer

Title, excerpt and cover are bound fields; the body is a real rich-text editor in a slide-over. Lazy-loaded, so it never enters your page’s initial JS.

What this editor won't let you do. On purpose.

Every gap below is the same decision, said six ways: the bounded model is the thesis, not a limitation we're hiding.

No theme marketplace, no themes to install
No custom CSS, HTML or Liquid escape hatch
No third-party app blocks, no app store
No arbitrary component authoring
Commerce-critical blocks stay locked
No free-form canvas, no multi-user presence, no mobile editing

None of these are missing features. We design and build your store for your brand first — the editor you inherit afterwards can’t quietly drift away from it.

See how this compares, feature by feature

Built for your brand. Yours to edit after.

We design and build the store first — live in 7 days. The editor underneath it is the same one your team uses afterwards, and it still can’t go off-brand.