Page Builder

v1.19.10 Updated Sep 1, 2026

Page Builder

A drag-and-drop visual editor framework for the admin: a ready-to-embed canvas, a content-type registry and a property-panel renderer.
Magento 2.4.4 Magento 2.4.5 Magento 2.4.6 Magento 2.4.7 Mage-OS 2.0 Mage-OS 2.1
€199.00
Try the live demo
  • Updates and support included for 12 months
  • License key delivered immediately by email
  • 30-day money-back guarantee
  • Full documentation included
  • Composer-ready installation

PageBuilder

A generic drag-and-drop visual editor framework for the Magento 2 admin. PageBuilder gives developers a ready-to-embed canvas, a content-type registry, and a property-panel renderer — so consumer modules can offer their admins a real visual authoring experience without rebuilding the editor from scratch.

This is a framework module, not a frontend renderer. It powers the visual field builder in wimakeit/module-forms, and it can be embedded by any other Wimakeit or third-party module that needs structured admin authoring (forms, landing-page blocks, layered widgets, etc.). Consumers register their own content types via etc/di.xml, embed the builder block in their admin layout, and handle persistence and frontend rendering themselves.

Who it's for

  • Module developers who need to give their admins a visual drag-and-drop editor without writing a builder from scratch
  • Wimakeit module consumers (Forms, and upcoming modules) — installed automatically as a dependency
  • Agencies building custom admin authoring tools on top of Magento or Mage-OS

Key benefits

  • Drag-and-drop canvas — Three-panel shell (palette / canvas / properties) with SortableJS, item duplication, deletion, and full undo / redo history.
  • Pluggable content types — Register your own types via ContentTypeRegistryInterface. Five primitives (row, column, heading, text, html) plus eight extras (button, image, divider, spacer, icon, video, quote, list) ship out of the box.
  • Schema-driven property panels — Define a JSON schema per content type and the panel renders typed inputs (text, number, select, color, range, toggle, options-list, conditional-logic builder) with collapsible Field / Validation / Conditional sections.
  • Productive authoring — Real-time palette search, keyboard shortcuts (Delete, Cmd+D duplicate, Cmd+Z undo, Cmd+Shift+Z redo, Escape), duplicate-code detection with inline warnings, pattern validation with inline error states.
  • CSP-safe and admin-friendly — Inline script initialisation via SecureHtmlRenderer, ARIA attributes on palette items / drop zones / property panel / handles, surgical in-place property updates that prevent focus loss on every keystroke.
  • State managementStateSerializer and StateValidator produce a stable JSON contract; StateMigrator lets consumer modules version-migrate their canvas state.

Compatibility

  • Magento 2.4.6+ / Mage-OS equivalent
  • PHP 8.1, 8.2, 8.3
  • Requires wimakeit/module-core ^3.0
  • Admin-only — no frontend assets, no FPC or Hyvä impact
  • SortableJS 1.15.x bundled (MIT license)

Install this module via Composer. Make sure your auth.json is configured with your Wimakeit credentials.

Terminal
$ composer require wimakeit/module-page-builder:^1.19.10
$ bin/magento setup:upgrade
$ bin/magento setup:di:compile

Installation notes

The standard composer require + setup:upgrade + setup:di:compile flow applies. The points below cover what's specific to this module.

Required dependency

This module requires wimakeit/module-core ^3.0. Composer pulls it automatically from the Wimakeit registry as long as the registry is declared in your project's composer.json.

Standalone vs. consumer

PageBuilder is a framework: it is typically installed as a transitive dependency of a consumer module such as wimakeit/module-forms ^1.1. You only need to install it explicitly if you are developing your own consumer module.

composer require wimakeit/module-page-builder:^1.0
bin/magento setup:upgrade
bin/magento cache:flush

ACL permissions

After installation, the following ACL resources are available under System → Permissions → User Roles:

ResourceDefault
Wimakeit_PageBuilder::admin (PageBuilder area)granted to Administrator role only
Wimakeit_PageBuilder::content_types (Content Types)granted to Administrator role only

Configuration

Go to Stores → Configuration → WiMakeIT → PageBuilder.

General

SettingDefault
EnabledYes
Debug Mode (verbose state logs in browser console)No

Debug Mode should be left off in production — it streams every state mutation to the browser console.

No cron, no frontend assets

PageBuilder is admin-only. It registers no cron jobs, no frontend layout updates, and no frontend assets. Full Page Cache, Hyvä, and Luma storefronts are unaffected.

Registering your own content types

Consumer modules register their content types in etc/di.xml under the Wimakeit\PageBuilder\Model\ContentTypeRegistry virtual type. See docs/CONTENT_TYPE_REGISTRATION.md inside the module for the full developer guide.

Version
v1.19.10
Support
12 months
Last updated
Sep 1, 2026
Magento
Magento 2.4.4 Magento 2.4.5 Magento 2.4.6 Magento 2.4.7 Mage-OS 2.0 Mage-OS 2.1
PHP
PHP 8.1 PHP 8.2 PHP 8.3
Hyvä
Not compatible
Package
wimakeit/module-page-builder

Compatibility checker

Pick your stack to see if this module fits.

Compatibility 4

Yes. Page Builder is tested against Magento Open Source 2.4.4 → 2.4.7, Adobe Commerce on the same line, and Mage-OS 2.0+ — on PHP 8.1, 8.2 and 8.3. The Specifications tab lists the exact tested combinations. If your stack is in the list, we guarantee a clean install. Wimakeit is an Adobe-certified Magento agency based in Presles (Charleroi / Namur region), Wallonia, Belgium and runs every module against the same matrix we ship to enterprise clients across Belgium, France and the Netherlands.
Page Builder targets the classic Magento / Luma stack today. A dedicated Hyvä companion may exist as a separate package — check the Wimakeit modules catalogue or contact our Wallonian office (Presles) for a custom Hyvä port.
Hyvä Storefront (Tailwind + Alpine.js, server-rendered) and Hyvä Checkout (React-based, headless on top of Magento) are two distinct packages. Page Builder ships native Hyvä Storefront compatibility — its frontend is rendered through Hyvä templates with no Luma fallback. Hyvä Checkout integration is delivered when the module has a checkout-step touchpoint (custom payment input, terms checkbox, etc.); otherwise the module runs server-side without any Hyvä Checkout customisation needed. See the Specifications tab for the exact Hyvä integration scope of this module.
Yes. Page Builder respects the standard Magento scope (default / website / store / store_view). Every configuration is overridable per store view. Frontend labels use Magento's standard translation files — shipped in French, English and Dutch out of the box. Currencies follow your Magento currency setup with no extra wiring. A typical Wimakeit Magento store runs an fr_BE / nl_BE / en_GB triplet from a single backend — Page Builder is ready for this B2B / international setup.

Pricing & licensing 4

€199 — one-time payment, perpetual licence, no recurring fees. Includes 1 year of minor updates + email support in French, English and Dutch, 1 production domain + 1 staging/dev domain. Renewing the support window after year 1 is optional. Volume licences are negotiated directly — write to contact@wimakeit.com for agency or multi-store pricing.
Yes. Page Builder has a live demo on demo.wimakeit.be/module-page-builder where you can poke around the admin and frontend with a real install pre-populated with sample data. For longer evaluations, request an evaluation licence via our contact form — evaluations cover the same scope as the paid licence and convert to a permanent key on purchase.
We review refund requests case by case. If the module doesn't deliver what was advertised, email contact@wimakeit.com from the address tied to your licence. The refund policy is published on the terms page and applies to every module sold through this marketplace.
Page Builder is distributed under a commercial proprietary licence — not MIT, GPL or any other open-source licence. The PHP source ships in vendor/wimakeit/ once you composer require the package, so you can read it, audit it, and patch it locally for your own Magento install. You may NOT redistribute it, sublicense it, publish it on a public package registry, or sell it on. One licence = one production domain + one staging/dev domain (see terms for the full EULA). Wimakeit modules are NOT part of Magento's open-source repository on packagist.org — they are distributed exclusively via the private Composer registry packages.wimakeit.be.

Installation & updates 6

Run composer require wimakeit/module-page-builder:^1.12.1, then bin/magento setup:upgrade, bin/magento setup:di:compile, and finally bin/magento cache:flush. The Installation tab on this page lists every configuration step (ACLs, cron jobs, default values) so a deploy takes minutes, not hours. If you need a hand, Wimakeit offers Magento installation services from our Wallonian office (Presles, between Charleroi and Namur).
Step 1: get a token on packages.wimakeit.be → My account → Tokens. Step 2: at the root of your project add to auth.json: {"http-basic": {"packages.wimakeit.be": {"username": "YOUR-EMAIL", "password": "YOUR-TOKEN"}}}. Step 3: register the repo: composer config repositories.wimakeit composer https://packages.wimakeit.be. Step 4: composer require wimakeit/module-page-builder:^1.12.1. In CI/CD pipelines, inject COMPOSER_AUTH as a JSON env var instead of committing auth.json.
Most merchants are live within 30 minutes: composer install (1-2 min) → setup:upgrade + di:compile (5-10 min depending on stack size) → admin configuration (5-15 min following the Installation tab) → smoke test on a product or order. Allow extra time if you have a custom theme overriding similar templates. The Wimakeit team has shipped this exact module to B2B and DTC stores across Belgium.
Page Builder is built for Magento 2.4.x / Mage-OS 2.0+ and has no Magento 1 equivalent. When migrating from Magento 1, the Wimakeit team handles the audit, the data migration and the integration of Page Builder into the new backend as part of a Magento migration project. Migrating from Adobe Commerce to Mage-OS is transparent for Page Builder: same composer require, same module code, same database schema — no fork to maintain, no licence change.
Updates ship through your composer dependency (this exact package), hosted on Wimakeit's private Composer repository at packages.wimakeit.be. Each release is announced on the Changelog tab + the Wimakeit news and follows semantic versioning — composer update is safe within a major.
All .phtml templates are overridable from your theme: copy the file into app/design/frontend/{YourVendor}/{theme}/Wimakeit_{Module}/templates/ keeping the same relative path. Blocks, ViewModels and Helpers are overridable via DI preference in your own custom module — declare <preference for="Wimakeit\…\OriginalClass" type="YourVendor\Override\Class" /> in etc/di.xml. Layout XML is extended (preferred) or overridden the standard Magento way. Wimakeit modules never use the final keyword on classes you might reasonably want to override — overriding is a first-class scenario, not a hack.

Support & security 3

Open a ticket through the contact form on wimakeit.be or email contact@wimakeit.com with the module name, version, Magento/Mage-OS version and the steps to reproduce. Fixes ship in the next patch release. Wimakeit support is staffed in French, English and Dutch on business days (CET working hours).
Send security reports privately to contact@wimakeit.com with a clear [SECURITY] subject prefix — please include the module name, version and the steps to reproduce. We acknowledge promptly on business days and credit reporters in the Changelog if they wish. Wimakeit is a Belgian SRL (société à responsabilité limitée) bound by Belgian and EU privacy and disclosure law.
Yes. Page Builder stores only the data its feature scope requires, never tracks shoppers across sites, and ships zero third-party calls by default. Combine it with the Wimakeit GDPR module to publish cookie banners and data-subject request forms compliant with Belgian, French and Dutch DPA guidance. Wimakeit's EU-based hosting partners (OVH Roubaix / Gravelines, Cblue Gembloux) keep every customer's data inside the EU.

About Wimakeit 1

Wimakeit is an Adobe-certified Magento partner agency based in Presles, Wallonia (between Charleroi and Namur), Belgium, building Magento and Mage-OS stores since 2020 across BE / FR / NL. Every module on this marketplace runs in production on at least one Wimakeit client (we eat our own dog food). Direct line to the developers who built the code, multilingual support (FR / EN / NL), CET business hours, no offshore handoff. See our portfolio for the kind of Magento builds we ship.

Found something not covered by the FAQ?

Report a bug or ask a question — the form is prefilled with this module.

Report a bug

Changelog

Categories: Security, Feature, Fix, Perf, Admin, Deps.

[1.13.0] - 2026-06-09

Feature

  • CMS pages and CMS blocks now use Page Builder — the native WYSIWYG content field is replaced by the Page Builder canvas on cms_page / cms_block forms. Existing pages open with their current HTML wrapped in a single Html block, so nothing is lost.
  • Self-rendering content types — third-party modules can register a content type that owns its own server-side markup (preview included), opening the door to richer custom blocks without touching the core renderer.

Fix

  • Magento directives ({{widget …}}, {{store url=…}}) embedded in sanitised HTML now resolve correctly at storefront render time again.

[1.12.2] - 2026-06-05

Deps

  • magento/framework pinned to ^103.0.

[1.12.1] - 2026-05-21

Feature

  • Color palette / design tokens — seven named slots (primary, secondary, accent, success, danger, neutral light/dark) configured per store view and applied as CSS variables on the canvas. A new colour-swatch picker is wired on Tile, Icon and Divider.
  • Symbol blocks — save any subtree as a reusable Symbol; every instance on the page stays in sync.
  • Block versioning — snapshot the current page state under a name (Black Friday, Christmas, v1.0) and restore any version in one click. Up to 30 per page.
  • A/B test hooks — new common props let a block declare a test key, variant and weight. Visitors get a stable cookie so the same variant follows them across page loads.
  • Tap-target audit flags icons under 32px (WCAG 2.5.5). Focus trap keeps Tab focus inside the active modal (Command palette, URL picker, Image picker, Help).

[1.12.0] - 2026-05-21

Feature

  • URL picker — modal with Product / Category / CMS Page tabs and live search; replaces URL pasting on Button, Banner and Hero CTAs.
  • Image picker — grid browser of pub/media/wysiwyg/ with thumbnails; wired on Image, Hero and Banner.
  • Hover state styling — per-block :hover background, colour, scale and shadow without polluting siblings.
  • Opacity, z-index, sticky positioning as common Design props.
  • Typography presets — 10 named scales (display, H1-H4, lead, body, small, caption, overline) + text-align.
  • Display conditions — show a block only to logged-in customers, specific customer groups, or inside a date window. Hidden blocks render empty so the layout stays intact.
  • SEO audit panel — real-time checks on heading hierarchy, word count, link text quality, image alt text and CTA URL diversity. Click any issue to jump to the offending block.
  • Render-time monitor logs slow blocks (>500 ms) to the browser console with per-type stats.
  • Dark mode — three-state toggle (system / light / dark) persisted per browser, propagated to the iframe canvas.
  • Onboarding tour — four-step coachmark introduces Inserter, Canvas, Edit panel and ⌘K command palette on first mount.
  • Per-store-view indicator in the footer when the consumer template provides a store label.

[1.11.1] - 2026-05-21

Feature

  • Every content type's edit form was rewritten to be self-documenting: descriptive labels, hint lines with concrete examples, sensible defaults. Four broken repeatable lists (TrustBadges, PricingTable, StatsGrid, Timeline) are now actual repeatable lists instead of single text inputs.
  • Freshly dropped blocks now start with meaningful starter content (placeholder headline, three pricing tiers, a four-event timeline…) instead of empty shells.

Fix

  • Dropped the unused columns property on Row (had no effect; layout is driven by Column responsive widths).

[1.11.0] - 2026-05-21

Feature

  • Multi-selection + bulk operations — Shift+click selects multiple blocks; floating toolbar offers Group (wraps in a Row), Duplicate, Delete and Clear.
  • Command palette (⌘K / Ctrl+K) — fuzzy-search overlay listing every action, every registered block and your personal templates.
  • Smart suggestions after add: Row → "Add 2 columns?", Tabs → "Add a first tab?", etc. — non-blocking, dismissable per block.
  • Find & Replace (⌘F) scans every text-ish field across the entire tree, with live match count.
  • Accessibility audit panel — image alt, heading hierarchy, empty headings/buttons, buttons without destination, videos without source, icons without label. Click a row to jump to the offending block.
  • Scroll-reveal animations — 7 presets (fade-in/up/down/left/right, zoom-in) gated by prefers-reduced-motion. Works on Luma and Hyvä.
  • Toast notification system centralises feedback (success/info/warn/error) across the builder.
  • Sticky save bar in fullscreen mode shows dirty state and proxies the parent admin Save button.
  • Empty-state illustrations on canvas, inserter and layers panel; topbar icons regrouped with logical dividers.

[1.10.0] - 2026-05-21

Feature

  • Smart drop on existing blocks — drop on the top half inserts before, bottom half inserts after; pairs with the per-gutter + buttons for a forgiving DnD UX.
  • Unsaved changes pill in the topbar; block count + autosave status in the footer.
  • Export / Import the canvas state as a JSON file; migrators run automatically on import.
  • Help modal (? key) lists every keyboard shortcut, platform-aware (⌘ on macOS, Ctrl elsewhere).
  • Real history timeline — every action records type / target / time and the History panel lists them newest-first. Click any row to revert.
  • Copy / paste blocks (⌘C / ⌘V) preserves the full subtree with fresh ids. Copy / paste design (⌘⌥C / ⌘⌥V) lifts only Design / Spacing / Visibility / Custom CSS values.
  • Personal templates — save a selected subtree under a name, drop it back with a click. Stored per browser, up to 50.
  • Inserter favourites (star) and Recent blocks sections; search synonyms map title → Heading, picture → Image, btn → Button, etc. (~50 EN/FR pairs).
  • Block lock — locked blocks get a 🔒 badge and inert drag/duplicate/delete until unlocked.
  • Auto-save draft in localStorage with a Restore banner on next mount when the draft is fresher than the loaded state.
  • Spacing presets (S / M / L / XL = 8 / 16 / 24 / 48 px) above every spacing field.
  • Product cards in the admin canvas now render the same resized + cached images visitors see (frontend area emulation).

[1.9.2] - 2026-05-21

Fix

  • Drag-and-drop from the Block Inserter into the iframe canvas now works — switched to the native HTML5 drag API which is cross-document by design.
  • Product images now display in the admin canvas — added a frontend-aware image URL resolver with a media-URL fallback when called from admin scope.

Feature

  • Visual drag feedback: every gutter highlights while a drag is in progress, the targeted gutter gets a stronger outline, and the root-list fallback shows an outline when targeted.

[1.9.1] - 2026-05-21

Fix

  • Live-render AJAX no longer returns the admin login HTML. Custom CSRF handling on the controller was triggering a 302 to the admin URL; replaced by the standard form_key query parameter — same security guarantee, no custom code.
  • Silenced the iframe sandbox warning by removing the (no-op) sandbox attribute on the same-origin srcdoc iframe.

Admin

  • Topbar / rail icons made visible — brand, device switcher, rail buttons and toolbar actions were too small on HiDPI admin viewports. Hit targets bumped, every icon now has a clear silhouette.

[1.9.0] - 2026-05-21

Feature

  • True storefront-quality WYSIWYG. The admin canvas now renders inside a same-origin srcdoc iframe so block markup paints in a CSS sandbox: the frontend stylesheet is the only one applied, the Magento admin styles can no longer bleed through, and the result matches what visitors will see.

[1.8.0] - 2026-05-21

Feature

  • Major editor UX rewrite — fullscreen-capable modal with a top device-preview switcher (desktop / tablet / mobile), vertical icon rail (Inserter / Layers / History), slide-out sidepanel, clean canvas, 3-tab block edit panel (Content / Design / Advanced) and bottom breadcrumbs.
  • Block Inserter with search across label/code/description, category filter, grid/list view toggle, click-to-add and drag-to-add.
  • Insertion gutters at every nesting level — hover pops a + button that opens the Inserter pre-seeded for that exact slot.
  • Floating block toolbar anchored top-left of each block (drag, edit, duplicate, delete).
  • Custom CSS triplet (Before / Main / After) on every non-structural block, sanitised at render time.
  • Admin Label common field shown in the Layers panel and edit panel header.
  • Hide on print common toggle.

[1.7.2] - 2026-05-21

Fix

  • Admin AJAX live-render returned 403 because Magento's default form_key validator can't read a JSON-body POST. Now validates the X-Form-Key header via hash_equals.
  • Column structural preview no longer shows Column ([object Object]/12) after state v2 widened Column.width to per-breakpoint values.
  • Live-render now surfaces 403/404/500 status codes and missing form_key cookies in the browser console for easier debugging.

[1.7.1] - 2026-05-21

Fix

  • Fatal error on every admin page that loads the Forms compat layer (Access level to AbstractFormFieldType::getCommonSchema() must be public). Our method was renamed to getSharedSchema() so both concerns can coexist.

[1.7.0] - 2026-05-21

Feature

  • True WYSIWYG live editing in the admin canvas: leaf blocks (Heading, Text, Button, Image, Hero, Tile, Testimonial…) show the actual storefront HTML instead of a JS-side approximation.
  • Inline contenteditable — recognised text targets become editable in place; edits flow back to the state through a debounced update.
  • Shared schema on every non-structural block — Design (CSS class / id), Spacing (mt/mb/pt/pb/pl/pr) and Visibility (hide on desktop / tablet / mobile, print) without touching existing markup.
  • Responsive column widths (state v2) — Column.width widens to { default, md, lg } so the same column can declare a different span at mobile / tablet / desktop. Existing pages auto-migrate on load.
  • Block breadcrumbs in the toolbar — clickable hierarchy that lets authors walk up the tree.
  • Layers panel with a tree view of the entire page; click a row to select + scroll the canvas.
  • Clear layout action with a two-stage arm/confirm to avoid accidental wipes.
  • Floating block toolbar (label + duplicate + delete) overlays the top-right of the selected block.
  • Product cards now post checkout/cart/add directly (icon + Add to cart label), with form_key and uenc hydrated client-side so it stays FPC-safe. Variable products (configurable / grouped / bundle) show a localised "Starting at" label.
  • New product_types filter on ProductGrid / ProductSlider (comma-separated allow-list).

[1.6.0] - 2026-05-20

Full audit pass: security hardening, bug fixes, performance, and developer ergonomics. The only behaviour change that affects existing storefront content is HTML/SVG sanitisation for the html content type and the icon raw-SVG passthrough — see "Breaking" below.

Security

  • Admin-authored HTML in the html content type is now sanitised on render. <script>, <iframe>, <style>, <form> and event-handler attributes (onclick, onload, …) are stripped; javascript: and data: URLs in href/src are neutralised. Closes a stored-XSS surface any content-edit role could exploit.
  • Inline <svg> icons (icon content type, trust-badge icons) are also sanitised: <script>, <foreignObject>, every on*= attribute, and javascript:/data: xlink:href values are removed before the SVG reaches the page.
  • The MessageBox dismiss button, Coupon copy button, Table-of-Contents auto-population, and Countdown timer no longer emit inline onclick= or inline <script> tags. All four behaviours now ship as a single small frontend JS file (wm-pb-runtime.js) and the rendered HTML carries data-* attributes only. Stores running with a strict script-src 'self' CSP policy (Magento 2.4.4+ default) finally see those widgets working at full functionality.

Fix

  • The Tile content type was rendering nested-escaped garbage when the body was populated. Visible immediately on any page that used a Tile / feature-card block.
  • The default category filter on embedded builder mounts silently dropped 28 of the 50 registered content types — commerce (product widgets, CMS blocks, recent reviews, …) and marketing (newsletter signup, coupon, banner, trust badges, countdown timer). The default is now "show every registered type"; consumers that explicitly opt into a subset are unaffected.
  • Two Tabs or two Accordions with identical children no longer share the same radio-group name, so clicking a tab/panel in one no longer toggles the other.
  • The Newsletter Signup widget no longer fails the CSRF check on submit: the rendered form ships an empty form_key placeholder which is hydrated client-side from the standard Magento session cookie. Works under full-page-cache.
  • Admin previews of Magento-widget content types (product grids, recent reviews, CMS block embed, …) no longer come back empty when the store scope resolves to the admin store (id 0). The renderer falls back to the default store view.
  • The PHP-side state validator and migrator are no longer dead code on the save path: invalid submissions are rejected with a logged warning instead of overwriting the previous valid state.

Perf

  • The admin builder JavaScript (~80 KB across SortableJS + 7 builder modules) is no longer loaded on admin pages that don't mount a builder. Dashboards, sales orders, system config, etc., now skip the load entirely. Pages that do mount a builder (CMS / blog / custom-entity forms) are unchanged.
  • The palette panel filter input no longer rebuilds the DOM + Sortable instances on every keystroke; items are built once and hidden/shown via CSS.
  • The undo history is capped at 100 entries (was unbounded). Long edit sessions on heavy CMS pages no longer leak hundreds of megabytes.
  • MagentoWidgetRenderer injects its 12 heaviest Magento dependencies through DI proxies — pages that never actually render a Magento-aware widget skip the constructor cost entirely. The CustomerSession proxy in particular keeps Full-Page-Cache hit rates intact.

Admin

  • New WmPageBuilder.unmount(mountId) JS API — tears down a builder instance properly (subscribers, listeners, Sortable instances). The builder mount now auto-unmounts a stale instance before remounting on the same mountId, fixing a memory-leak pattern that hit per-store fieldsets (Knockout html: re-renders).
  • Palette category titles ("Layout", "Content", "Commerce", "Marketing", …) are now translated via Magento's __() rather than the hard-coded French map that mixed languages depending on which categories were present.

Breaking

  • HTML and SVG inputs in the html and icon content types are now sanitised. If a store relied on inline <script>/<iframe> blocks inside html widgets, those blocks are removed on render — move the JavaScript into a real module-shipped JS file (loaded via layout XML) and the markup will remain unchanged.

[1.5.6] - 2026-05-20

Fix

  • Removed an aggressive responsive cap that limited the palette to 200px tall on standard admin forms (CMS page editor, etc.), where the form column happens to be a little under 900px wide. Forms wider than 700px now show the full 3-column layout with naturally-sized panels — the palette uses all the vertical space available and the full list of content types is visible without internal scrolling on most viewports.

[1.5.5] - 2026-05-20

Admin

  • Builder shell now uses the full available viewport height instead of a fixed 70 % slice. The palette panel can show many more items at once on the CMS page form and any other mount, removing the need to scroll past every category to find a content type.

[1.5.4] - 2026-05-20

Fix

  • Removed a duplicate script load that caused the builder JavaScript to run twice on every page render. The most visible symptom was a doubled "Search…" input inside the palette panel (and, on rare occasions, two canvases stacked on top of each other). The builder now relies exclusively on the global bootstrap loader introduced in 1.5.0.

[1.5.3] - 2026-05-20

Fix

  • Hardened the admin bootstrap loader against a missing SortableJS file. If the vendor library failed to load (for example, after an upgrade where the static deploy had not yet run), the loader left window.define undefined, which broke every subsequent Magento admin script (theme.js, grid.js, tabs.js, translation dictionary, etc.) and effectively crashed the admin. The loader now restores AMD even when the load fails.

[1.5.2] - 2026-05-20

Fix

  • Restored the admin builder field template (builder-html.html) and the SortableJS vendor library — both were missing from the released package, which broke the admin canvas rendering and drag-and-drop on fresh installs.

[1.5.1] - 2026-05-18

Admin

  • Module now registers itself under the Wimakeit root admin menu (Wimakeit_Core::main) with a Settings entry (sortOrder 999) pointing to the wimakeit_pagebuilder configuration section. Access is gated by the Wimakeit_PageBuilder::admin ACL resource.

[1.5.0] - 2026-05-06

Feature

  • 35 new content types added to the builder palette, covering layout, media, text, interactive, and form-input categories.
  • Central state repository — the canvas state is now persisted through a unified repository, replacing the previous ad-hoc save paths and making the editor easier to embed across modules.
  • Reusable field block — third-party modules can now mount a fully-wired builder field inside their own admin forms with a single block reference.
  • Global JS auto-mount — the builder JavaScript loads on every admin page and automatically mounts any builder canvas injected dynamically by Knockout (no more manual hook required).

[1.3.0] - 2026-04-30

Feature

  • Fullscreen editor for text and HTML fields — opens a modal overlay with a larger writing surface for long-form content.
  • Server-side StateRenderer — the canvas state can be rendered to HTML on the server, opening the door to email templates, PDF generation, and other non-Knockout consumers.

Admin

  • All Iconify icons replaced with inline SVG, removing the runtime dependency on the Iconify CDN and improving admin load time and CSP friendliness.

[1.2.0] - 2026-04-30

Feature

  • Live preview iframe drawer — a slide-out drawer renders the current canvas state inside an isolated iframe, giving an instant preview of how content will appear in the storefront.

Admin

  • Properties panel polish: visual 12-segment column-width picker, iOS-style toggle for boolean fields, inline hints under each field, colored section icons.

Fix

  • Column-width picker and options-list no longer overflow the 320-pixel properties panel; column-picker segments are rendered as ARIA radios so Magento admin pill-button CSS no longer leaks into the widget.

[1.1.0] - 2026-04-29

Feature

  • Eight new primitive content types: button (label, URL, target, style), image (src, alt, width, height, alignment), divider (thickness, hex color, vertical margin), spacer (height), icon (SVG/material-icon name, size, color), video (YouTube / Vimeo / self-hosted, autoplay, controls), quote (text, author, citation source), list (ordered / unordered, items array).
  • All content types now expose getDescription() for tooltip support on the palette.
  • Undo / redo history in the state store with toolbar buttons and wm-pb-btn--disabled class toggled on each state change.
  • Keyboard shortcuts: Delete / Backspace removes selected item, Cmd/Ctrl+D duplicates, Cmd/Ctrl+Z undoes, Cmd/Ctrl+Shift+Z redoes, Escape deselects. Suppressed when an input field has focus.
  • Real-time palette search input filters the item list.
  • Friendly category labels in the palette, with fallback to title-cased code.
  • Duplicate-code detection on the canvas: items sharing the same code property get a warning class and tooltip.
  • Pattern validation in the schema renderer: schema fields with a pattern property show inline error / success states.
  • Collapsible fieldset groups: schema keys with group: 'field'|'validation'|'conditional' render as <details> sections.

Admin

  • Surgical property panel updates: inputs are patched in-place when the same item is selected, preventing focus loss on every keystroke.
  • ARIA attributes added on palette items, canvas drop zones, properties panel, item handles, and action buttons.
  • New developer guide docs/CONTENT_TYPE_REGISTRATION.md for third-party content-type registration.

Fix

  • Toolbar undo / redo buttons were rendered but had no click handlers — now fully wired.

[1.0.0] - 2025-01-01

Feature

  • Initial release of the generic admin visual editor framework.
  • ContentTypeRegistryInterface and ContentTypeInterface public API contracts, plus AbstractContentType base class with sane defaults.
  • Five primitive content types: row, column, heading, text, html.
  • StateSerializer and StateValidator for canvas state management.
  • Builder block and BuilderViewModel for embedding the editor in admin layouts.
  • Vanilla JS builder: state machine, canvas, palette, properties, schema-renderer (no framework dependency).
  • SortableJS 1.15.x bundled (MIT license).
  • CSP-safe inline script initialisation via SecureHtmlRenderer.
  • Admin CSS 3-panel shell (palette / canvas / properties).
  • i18n stubs for en_US, fr_FR, nl_NL.

Found a bug? Tell us about it.

A short form opens in a new tab — the module name and your language are already filled in. Share what you tried, what went wrong, and we will get back to you within one business day.

Report a bug for Page Builder
Module SKU: wimakeit-module-page-builder · Language: en_US

Need help?

Our team is available to assist with integration.

Contact us
Planifier un appel