Building a page builder is mostly about choosing the right constraints.
The obvious approach is a free-form canvas. Drag anything anywhere. Total freedom. It sounds like the right answer, and for a designer it is. But when a non-technical user opens it, they get stuck.
This is one of the most common requests I get from my customers: rich pages like landing pages, how-it-works pages, welcome pages. But they're not designers, they don't want to hire one, and they've already decided they're not paying for a second service just to host a few extra pages. So the real question was: how much freedom can I take away before the builder stops being useful, and how little can I leave behind without anyone missing what's gone?
The answer turned out to be six section types. Users pick a section (a fixed layout like a hero, a column grid, a carousel), then fill it with blocks of content: text, images, video. They choose the shape. They never have to draw it. Six covers every use case I've seen my customers need: mostly legal pages and landing pages.
I shipped this in Yclas Neo, a classifieds platform. If I build another product that needs pages, I'll do it the same way.
Why the blank canvas fails
Users don't know where or how to start. Their fix is to look for YouTube tutorials. They have to abandon the product to learn the product.
The canvas also puts micro-decisions in their hands: font, size, spacing, color, position. Decisions they probably never wanted to make. Watch someone open a canvas builder for the first time and count how many decisions they're asked to make before they've typed a single word.
I stole the whole set
The six shapes aren't my invention. Sharetribe ships them in its page builder, following the sections-and-blocks approach that Shopify popularized for non-technical merchants. I took their version for classifieds.
Sharetribe's section templates are Hero, Article, Columns, Features, Carousel, and Listings. I reimplemented them exactly as they are. Nothing was cut, nothing was added.
There's a list of candidates for a next version: FAQ, testimonials, stats, newsletter capture. Each one goes in only if it's needed. If the section list keeps growing just in case, the builder stops being simple.
The six shapes
- Hero: a big title, a short description, and one call to action. What you see first on a landing page.
- Article: blocks stacked in one narrow column, easy to read. For legal pages and long text.
- Carousel: blocks in a horizontal row you swipe through. Fits many categories or listings in little vertical space.
- Columns: blocks side by side in a grid, up to four. For short lists like steps or features.
- Features: text and an image side by side, alternating left and right as you scroll. The classic way to explain what a site does.
- Listings: a carousel that fills itself. The site owner copies the link from a normal search on their site, and the section keeps showing those listings, always current.
What users can change
A block gets a title, some text, an optional image or YouTube video, an optional button link, and a position for its content: left, center, or right. A section gets a title, a description, an optional button link, and a background. The background is either a solid color or an image, with a dark overlay behind the text if the image makes it hard to read.
Sections and blocks can both have titles, and they don't conflict: the section title is the heading for the group ("How it works"), and the block title names one item ("Post a listing").
That's the entire surface: no fonts, no spacing, no positions. The layout is decided by the section; the block only decides what goes in it. Even the shape is fixed: once a section is created, its type can't be changed. Users delete it and create a new one if they want a different shape. Because every shape was designed to fit the rest of the site, pages stay consistent instead of looking like they belong to a different website.
A landing page in three steps
- Hero. Title, description, a background image that matches the niche, and a call to action. The call to action can be a button or a search form; for a classifieds site, a search form with category and keyword fields makes sense.
- "How it works" in three columns. One column per step: post a listing, browse and discover, contact sellers. Each with a button leading into that step.
- A carousel of the main categories, each with a title and an image.
That's a landing page.
Where it breaks
If someone hands you a Figma design from a professional designer, six shapes probably can't reproduce it. Sometimes you can get close. That kind of design needs a canvas.
No one has told me yet that they couldn't build a page they wanted, but I don't have power users on this feature yet. Ask me again in a year.
I built it in a day
I expected this to take weeks. It took one day. Before that morning there was no CMS, no page model, no rendering.
I described Sharetribe's sections and blocks, all their options, to an AI agent. The first version came back nearly right; what broke was small, like background uploads failing because of a missing dependency. The rest of the day was testing: every section and block combination, checking how each one rendered (the hero backgrounds especially), and giving feedback until it matched what I expected.
Steal a proven pattern, describe it precisely, QA every combination. The patterns are documented: Shopify's sections, Sharetribe's page builder. The hard part of a page builder is deciding what the shapes should be, and copying Sharetribe meant that decision was already made.
A decision for later
The built-in builder is a good place to start. Site owners launch with six shapes, without paying for another service, and if the site grows and needs a real canvas they can move to Wix or Framer later. That's a decision they can make once the site is making money.
For products where the content is the value and design matters less (classifieds, storefronts, marketplaces), this is a good default. Don't ship a page builder that sends users to another service the moment they need a landing page. Hand them shapes to fill.
Users don't want a blank canvas. They want to be handed the right questions.