Block builder

Add blocks, configure their content, reorder by drag, toggle visible — all without leaving the editor.

The Contact module's editor is a single page that lets you assemble your contact page from a fixed set of block types. Open it at Contact → Edit page.

Layout

  • Top — page heading + subheading. These appear once, above all blocks.
  • Middle — the blocks list. Each block is a row with its type icon, a drag handle, an enable/disable checkbox, an order-arrow pair, a remove button, and an inline config panel.
  • Bottom — after-submit behavior (thanks page vs redirect) and the final Save button.

There's no separate "preview" page — the editor itself is close enough to the final render that you can iterate in place. Save, open the public URL in another tab, refresh after each save.

Adding a block

Click + Add block at the top of the blocks list. Pick a type from the dropdown. The block lands at the bottom, enabled by default, with sensible default content. Configure it inline.

Reordering

Two ways:

  • Drag handle (the ⋮⋮ icon at the start of each row) — drag to reorder. Sortable across the list, live preview as you move.
  • ▲ / ▼ buttons — keyboard / mouse alternative if you don't want to drag.

Order saves when you click the page-level Save button — until then, order changes are in memory only.

Disabling without removing

Each block has an Enabled checkbox. Unticking it doesn't remove the block; it just stops the block from rendering on the public page. Useful for:

  • A seasonal block (holiday hours) you turn on for a month per year.
  • A draft block you're still writing.
  • A block that depends on data (team photos) you haven't uploaded yet.

Disabled blocks render at 50% opacity in the editor so you can see they're there but inactive.

Removing

The ✕ button removes the block entirely. We ask for confirmation — once you save, the block is gone.

What block order does

Blocks render top-to-bottom on the public page in the order you set in the editor. There's no per-block "show on mobile / desktop" distinction; one order across all viewports.