Builders under the hood

Page Builder vs Custom Code: Elementor, Divi and a Next.js Build Compared

Drag a heading onto a page builder canvas and you get a heading. You also get the section around it, the column inside that, the wrapper inside that, and a stylesheet that has to style every option you might have picked. Here is what that costs and what a coded site does instead.

October 9, 2026 · 9 min read

The short answer

A page builder like Elementor or Divi lets anyone design pages visually, at the price of extra wrapper markup, builder CSS and JavaScript on every page, and layouts stored in the builder's own format. Custom Next.js code ships only what each page uses and keeps content portable. With Athena CMS, editors still arrange and edit pages, within approved components.

On this page
  1. Drag one box, get a nest of divs
  2. One stylesheet for every option you never chose
  3. Where your words actually live, and who holds the key
  4. Editing freedom against a brand that stays on model
  5. How Athena gives editors room without handing them a crowbar
  6. Elementor, Divi, Bricks, Avada: four builders, four exits
  7. The jobs a page builder still does best
  8. Getting your pages out of a builder in one piece

Drag one box, get a nest of divs

A page builder has to turn a mouse gesture into HTML that works for any layout anyone might build. The safest way to do that is to wrap things. A section holds a row, the row holds a column, the column holds a widget wrapper, and the wrapper holds your heading. Each layer exists so the builder can attach spacing, backgrounds, animations and responsive rules to it. Most of the time, most of those layers do nothing.

Builders know this and have been trimming. Elementor's help center says its Flexbox containers use one wrapping element where the older sections and columns used two. Divi 5, stable since February 26, 2026, was rebuilt with Flexbox and CSS Grid layouts. Both are real improvements, and both are the builder repairing a cost the builder created. A developer writing a component starts with zero wrappers and adds one only when the design needs it.

Why it matters: a deep, wide page tree takes the browser longer to lay out and restyle, especially on phones. Every tap that changes the page, such as opening a menu or switching a tab, asks the browser to recalculate styles across that tree. That is one route to a poor interaction score, covered in WordPress vs Next.js INP.

One stylesheet for every option you never chose

The second cost is CSS and JavaScript. A builder ships styles for every widget and every setting, because it cannot know in advance which ones a page will use. The better builders now work hard to unship them, and their settings pages read like a list of apologies.

  • Divi, per its help docs, turns on Dynamic CSS (a per-page stylesheet built from the modules used), Critical CSS, Dynamic JavaScript and jQuery deferral by default. Elegant Themes says one update cut CSS from 860kb to 54kb.
  • Bricks outputs its generated styles inline by default. A setting called CSS Loading Method: External Files writes per-page files instead, with a button to regenerate them when they go stale.
  • Avada has a CSS compiler, a JS compiler that combines scripts, Critical CSS generation and a Performance Wizard that scans for unused features and switches them off.
  • Hello Elementor, the theme Elementor built for its own builder, is small by itself; Elementor's own pages describe it as anywhere from 6KB of resources to under 30KB. The weight on a Hello site comes from Elementor and its add-ons, not the theme.

Every one of those features is a cache of generated code that can fall out of step with the page. That is why CSS changes not showing is one of the most common builder tickets, and why the Divi CSS and Bricks CSS troubleshooting pages exist. In a Next.js build, styles belong to components, and a page bundles only the styles of the components it imports. There is nothing to regenerate.

A page builder spends half its settings screen undoing the weight the other half added.

Where your words actually live, and who holds the key

Lock-in is the cost owners discover last, usually on the day they try to leave. A builder has to save your layout somewhere, and it saves it in its own format. Your paragraphs end up inside that format, which makes them hard to reach without the builder.

How page builders store a page, and what happens when the builder is gone
Where the layout is storedIf the builder is switched off
ElementorJSON in a private custom field in the postmeta table, per Elementor's developer docsThe designed layout does not render; the content must be extracted from the JSON
Divi 4Shortcodes wrapped around the text in the postRaw shortcodes appear in the page text
Divi 5A block-based WordPress format, replacing shortcodesCloser to core blocks; the vendor speaks of possible Gutenberg cross-compatibility
WPBakeryShortcodes in the post contentShortcodes show as text; see the WPBakery repair pages
Flatsome UX BuilderIts own proprietary element formatLayouts do not carry to another theme
BricksIts own element data, with Gutenberg conversion both waysOnly core blocks convert, by the vendor's own account

If you have ever switched themes and found a page full of square brackets, you have met this table in person: Divi shortcodes showing after a theme change and WPBakery shortcodes showing as text are the same problem with different brackets. Content in Athena is stored as plain fields: a heading is a heading, a price is a price. Any future system can read it.

Editing freedom against a brand that stays on model

The builder's real promise is freedom: anyone on the team can make any page look like anything. That is wonderful on day one. By month eighteen, the site has fourteen slightly different blue buttons, three heading sizes that are almost the same, and a landing page someone built at midnight with padding set by eye. Nobody did anything wrong. A blank canvas simply has no opinion about consistency.

Builders have answered with global tools, and they deserve credit. Divi 5 added design variables and option-group presets. Elementor has site-wide global colors and fonts. Used with discipline, these keep a site on brand. The catch is the word discipline: the canvas still lets anyone override anything on any page, and overrides accumulate quietly.

A design system in code takes the other side of the trade. Buttons, cards, headers and sections are components with a fixed set of options. Editors choose a component and fill it in, and the result is on brand by construction. The cost is real: if you want a layout that no component offers, someone has to build the component. For teams that publish often and care about how the brand looks, that is usually the right trade.

The third option

Athena CMS, with AI agents on staff.

Not a theme and not a blank Next.js repo. The content system we put behind every custom site: plain fields, a real preview, every version kept, and AI agents that handle the chores a plugin only nags you about.

and 12 more agents. Two come with Athena; the rest are monthly add-ons.

The Athena CMS editor: plain fields with AI rewrite, a Publish box and revisions

How Athena gives editors room without handing them a crowbar

Athena CMS, included with every site we build, is where the freedom question gets settled. Editors build and change pages from the site's own components: add a testimonial band, reorder sections, swap an image, write a new service page from the service-page model. They see a real preview before publishing, and every version is kept, so a bad edit is a click from undone.

  • What editors can do: add, remove and reorder sections; edit every word, image, link and price; create new pages of any existing type; schedule and publish.
  • What they cannot do: set a one-off font size, nudge padding by eye, or paste a script into the header. Those are design decisions, made once, in code.
  • What the agents do: Picasso checks every image is described and sized, Iris writes search titles and social cards, Ariadne adds internal links, and Apollo reads every page and says what to fix first.

The full editing comparison is on Athena vs WordPress. If your team is used to a builder canvas, switching from WordPress describes the first weeks honestly.

Elementor, Divi, Bricks, Avada: four builders, four exits

Each builder ties you in differently, which changes the cost of leaving. These are the ones we are asked about most, with the theme-level comparison for each.

Elementor on Hello

The theme is free; the builder does the work, and Elementor Pro's Theme Builder usually replaces the theme header and footer. Leaving means extracting JSON. See Hello Elementor vs Next.js and Elementor to Next.js.

Divi

Theme and builder in one product, mid-move from Divi 4 shortcodes to the Divi 5 format. Third-party modules not yet updated run in a slower backward-compatibility mode. Compare in Divi vs Next.js, and plan the move with Divi to Next.js.

Bricks

A theme with a fast visual builder, vanilla JavaScript on the front end and a steep learning curve. Global classes, variables and a query loop builder are aimed squarely at developers. See Bricks vs Next.js.

Avada

The Avada Builder plugin and Avada Core must stay in step with the theme, and six premium plugins come bundled. See Avada vs Next.js.

Comparing builders against each other first? Try Divi vs Elementor vs Next.js or Bricks vs Elementor vs Next.js.

The jobs a page builder still does best

Page builders exist because they solve a real problem, and for some sites they are still the right answer. We would rather lose a project than build one that should have stayed on a builder.

Keep the page builder when

  • A designer on your team builds landing pages weekly and wants pixel control
  • The site is small, the budget is small and launch is next month
  • Campaign pages are temporary and consistency matters less than speed of making them
  • You already own a lifetime license and the site performs well enough

Move to coded components when

  • Pages fail Core Web Vitals on phones and tuning has stopped helping
  • The brand has drifted and nobody can say which button is the real one
  • Builder updates keep breaking layouts or the editor will not load
  • You publish many pages of the same types: services, locations, products

If you are staying, a careful theme customization pass can fold the drift back into global styles. When the editor itself fails, start with Elementor not loading or Divi builder not loading.

Getting your pages out of a builder in one piece

Leaving a builder is mostly a sorting job. The design is rebuilt; the content is rescued. The work scales with how many distinct layouts the site really has, not how many pages.

  1. 1

    Count the real layouts

    Group pages by shape. Fifty service pages built from one template are one layout. A home page built by hand is one more.

  2. 2

    Extract the words

    Pull headings, text, images and links out of the builder data, whether JSON or shortcodes, into clean fields.

  3. 3

    Build the components

    Each layout becomes a Next.js component with the options editors actually used, and no others.

  4. 4

    Keep every address

    Same URLs where possible, permanent redirects where not, titles and descriptions carried over.

The migration side is covered in the WordPress to Next.js section, with costs in WordPress vs Next.js cost. We do the work through WordPress to Next.js development, and the wider argument lives in the WordPress vs Next.js hub.

Questions people ask before they call

Not bad, but never free. Elementor adds wrapper markup, its own CSS and JavaScript, and usually add-on packs on top. Its Flexbox containers cut a wrapper level, by Elementor's own account, and the Hello theme is light. A lean Elementor site can do well; a typical one, with add-ons and many widgets, carries weight a coded page does not. See Hello Elementor vs Next.js.

Divi suits a designer-led site on a small budget, especially with the $249 lifetime license as of October 2026. Next.js suits a business where speed, search and custom features drive revenue and where the content should outlive any one tool. The full comparison is in Divi vs Next.js.

With Athena CMS, editors add, reorder and fill in sections from the site's components and see a real preview before publishing. What they cannot do is invent a new layout by dragging pixels. That is a deliberate trade: freedom within the design system, instead of freedom from it.

The design is rebuilt as components; the content is extracted. Elementor stores layouts as JSON and Divi 4 as shortcodes, so the words are pulled out of those formats into clean fields. We keep your URLs and redirect every old one. Details are in Elementor to Next.js.

To launch, almost always. Over the years it depends on renewals, repairs and redesigns, and builder sites tend to need a rebuild to change design because layout and content are stored together. The trade is laid out in WordPress vs Next.js cost.

Keep reading

Free · No obligation

Find out what your builder is costing you

Tell us which builder you use and what is bothering you. We will look at your pages and say whether tuning the builder or moving to coded components is the better spend.

Which of these sounds like you? (pick any)

Rather talk now? Call (210) 346-0848.

CallGet a quote