Architecture

Why we rebuilt the page builder around reusable sections

Inline blocks made every page a copy. Sections as documents made a design change land everywhere at once.

Engineering Nadia Osman Nadia Osman
A team working together around laptops
The first week of the migration, before we had a chooser.— Unsplash

A page builder that stores its sections inline is a page builder that stores the same hero forty times. We moved every section to its own document and gave pages a chooser instead.

The old model was comfortable: a page had a content array, and each entry was a section object with its own fields. Editors never left the page they were working on, and the data was self-contained.

The copy problem

Self-contained is another way of saying duplicated. Forty landing pages meant forty heroes. Changing the call-to-action wording was forty edits, and the fortieth one was always missed.

Every inline section is a decision you will have to make again, once per page, forever.
— Nadia Osman
Hands sketching wireframes beside a laptop
Mapping which sections were genuinely unique and which were copies.— Unsplash

What replaced it

Each section type is now a document with its own listing. A page holds references, in render order, and nothing else. The section carries its own design choice, so swapping a template is one edit in one place.

The trade is real: an editor now works in two places instead of one. In exchange, a rebrand is a morning rather than a fortnight.