Widgets & Page Builder

Page Builder is BigCommerce's visual, drag-and-drop page editor. What a merchant actually drags and drops are widgets — self-contained, configurable template fragments a developer defines once and a merchant can then place and configure without touching code.

Anatomy of a widget

A widget is a Handlebars template paired with a schema describing its configurable fields, conceptually parallel to a Shopify section's {% schema %} block:

Handlebars a promo-banner widget template
<div class="promo-banner" style="background:{{settings.background_color}}">
  <p>{{settings.message}}</p>
</div>
JSON the widget's schema
[
  {
    "type": "text",
    "label": "Message",
    "id": "message",
    "default": "Free shipping over $50"
  },
  {
    "type": "color",
    "label": "Background color",
    "id": "background_color",
    "default": "#f5f5f5"
  }
]

Whatever a merchant sets for "Message" and "Background color" in Page Builder becomes available in the template as settings.message and settings.background_color — the schema's id fields are the bridge, exactly the same pattern as a Shopify section's settings.

Placing widgets on a page

Once registered, a widget shows up in Page Builder's widget panel, where a merchant drags it onto any region a page defines, reorders it relative to other widgets, and fills in its settings through generated form controls — no code editing involved on the merchant's side.

Global vs. page-specific widgets

A widget can be placed as global (appearing identically on every page — a promo bar or footer signup form) or scoped to one specific page, like a homepage-only hero banner. This distinction is set when the widget is placed, not when it's built — the same widget template can be used both ways depending on where a merchant drops it.

Widget templates vs. page templates

A widget is deliberately more constrained than a full page template — it can't assume anything about surrounding page structure, since it might be placed on the homepage, a category page, or anywhere else a widget region exists. Keeping a widget self-contained (its own markup, its own scoped styles) is what makes it safely reusable across contexts.

Visual page building on Catalyst

Page Builder is a Stencil-specific tool tied to Handlebars widgets. A storefront built with Catalyst (lesson 13) instead uses Makeswift, a visual page-building tool BigCommerce acquired and integrates with Catalyst — conceptually the same merchant-facing idea of dragging, dropping, and configuring content, but built for a React/Next.js frontend rather than Handlebars. Worth knowing this exists so you don't assume Page Builder is the only visual editing option across the whole platform.

Note: widgets are the main way non-developers extend a BigCommerce storefront's content day-to-day — once a developer has built and registered a reasonable library of widgets, most ongoing page changes don't require touching theme code at all.