Sage Page Builder

Description

Sage Page Builder provides a visual editor for WordPress pages with 14 essential widgets: Heading, Text, Button, Image, Gallery, Divider, Spacer, Columns, Grid, Video, Audio, Icon Box, Icon List, and Social Icons.

The Free edition does not permit creating Pro-only widgets. Compatibility with previously saved layouts is maintained where supported.

Release notes

Version 0.4.33 updates documentation and version identifiers only; the runtime program and assets are otherwise unchanged from 0.4.32. Free 0.4.32 was tested on a new local WordPress 7.1.4 installation with PHP 8.2.29, WP_DEBUG enabled, and no Pro add-on. The user supplied Plugin Check 2.1.0 results without findings and confirmed that template names and content retained backslashes, quotes and accented text after saving, deleting another model, inserting the saved model and reopening the page. Earlier local tests covered layout export/import, history restoration and responsive editor previews. These are bounded test results, not exhaustive compatibility or security certification.

Isolated checks cover Free on PHP 8.2.29 and Free with the separate Pro 0.2.6-alpha bridge on PHP 8.4.4. The Pro add-on declares PHP 8.4 minimum; its PHP 8.2 compatibility is not claimed. No layout migrations or Pro integration hook changes are included in this release.

History normally retains the latest 20 snapshots. Malformed history, ambiguous duplicate rows or failed metadata deletions may retain additional snapshots to avoid unintended backup loss.

This is a pre-submission candidate, not approved for WordPress.org. Current validation evidence supersedes historical testing statements for earlier candidates. Plugin Check results do not guarantee WordPress.org acceptance; manual code review and name/ownership checks remain separate.

External services and privacy

No Sage account, license key or remote activation service is required to use the Free widgets. The plugin does not include a telemetry client. The editor and its JavaScript/CSS assets are distributed with the plugin.

The Video widget can display an external player when a page author explicitly supplies a supported provider URL. The visitor’s browser then requests that provider’s player and media; the provider receives the connection information needed for those requests, and may use cookies or other technologies according to its own policies. This plugin does not provide a visitor consent-management system or guarantee that the external player is cookie-free. Site owners should review the provider policies before embedding content.

Supported external video providers:
* YouTube, including the youtube-nocookie.com player option: https://www.youtube.com/static?template=terms ; privacy: https://policies.google.com/privacy
* Vimeo: https://vimeo.com/terms ; privacy: https://vimeo.com/privacy
* Dailymotion: https://legal.dailymotion.com/en/terms-of-use/ ; privacy: https://legal.dailymotion.com/en/privacy-policy/
* VideoPress (Automattic): https://wordpress.com/tos/ ; privacy: https://automattic.com/privacy/

Self-hosted video/audio use the media URL configured by the page author. Images, galleries, poster images, caption files and other configured remote media URLs are requested by the visitor’s browser from their respective hosts. Social widgets render author-configured links; following a link opens the destination service. None of these URLs are used to unlock local Free functionality.

Source code

PHP sources: sage-page-builder.php. JavaScript source files: assets/.js; expanded, editable reference copies: source/editor.js and source/i18n.js. CSS sources: assets/.css. No webpack, npm, compilation or bundling step is used to create these assets. The human-readable source/editor.js and source/i18n.js are also used verbatim as assets/editor.js and assets/i18n.js in the runtime.

Source maintenance: edit the JavaScript files directly. When editing source/editor.js or source/i18n.js, copy the edited file verbatim into assets/ with the same filename. No build step is required. Prettier 3.6.2 was used only for development-time formatting of the 0.4.30 JavaScript sources; it is not a plugin dependency. See source/README.txt for details.

Review notes

This is a testing build, not approved for WordPress.org. The Free editor exposes 14 Free widget types. Layouts originally saved with other types are preserved for compatibility, and rendering of such types is delegated via a filter to a separately distributed Pro extension, if installed. The Free package does not include Pro widget renderers. Static syntax checks and Plugin Check results do not replace a complete WordPress.org code review, dynamic security testing, or a decision on the proposed name.

Legacy compatibility CSS and interface translation strings may refer to widget names from older layouts. They do not provide premium widget renderers, license checks, or an unlock mechanism. Scripts and styles are loaded through the WordPress enqueue APIs. Per-layout style attributes remain dynamic renderer output; there are no PHP-emitted script or style elements.

The declared GPLv2-or-later license applies to the distributed plugin sources and assets. No third-party JavaScript library, bundled font or image binary is included in this package; WordPress libraries are loaded through WordPress APIs. This declaration does not establish ownership of the proposed plugin name or of media supplied by site authors.

Blocks

This plugin provides 1 block.

  • Sage Page Builder

Installation

  1. Back up your WordPress database and files.
  2. Go to Plugins > Add New Plugin > Upload Plugin.
  3. Upload the Sage Page Builder ZIP file and activate it.
  4. When upgrading, choose to replace the current plugin with the uploaded package.
  5. Open Sage Page Builder and verify that existing content is unchanged before saving.

The separately distributed Sage Page Builder Pro add-on may be activated alongside this Free plugin. Do not activate a second competing Free edition alongside this plugin.

FAQ

Are saved page layouts preserved when upgrading?

Existing storage formats are retained. Back up your site and verify all layouts after updating.

Can I embed a Sage page in Elementor?

Add an Elementor Shortcode widget containing [sage_page id=”123″], replacing 123 with the ID of a page saved in Sage. The shortcode renders that page’s stored Sage layout, not its theme header, footer or other editor content. Updating the source Sage layout updates its embeds.

Published, publicly viewable pages can be embedded for visitors. Draft, pending, scheduled and private pages require permission to edit the source page; visitors receive no output. Password-protected pages require their password to have been entered. Missing IDs, invalid IDs, non-page posts and pages without a Sage layout produce no output.

Recursive rendering is stopped, including cycles through Pro rendering hooks, with a maximum of ten nested Sage pages. Existing Pro content still requires the separate compatible Pro add-on. The shortcode does not convert Elementor pages into Sage layouts.

Where is the collapsible sidebar?

In the Sage editor, select Sidebar Recolhível under Estrutura. It is fully functional in Free in addition to the original 14 widgets. Configure title, description, links (one per line: Label | /path/), side and width in Content. Set background, title, description, link/hover, border and button/icon colors in Style. The preview responds while choosing a color; save in Sage Builder before checking the published page. The button appears on the published page; the editor shows a static preview.

For site-wide display, set Onde exibir to Em todo o site, save the source through Salvar no Sage Builder as an administrator, and publish it without a password. Only one global drawer is active. Draft, private, trashed and password-protected source pages are never used for site-wide output. Imports, restores and old global options do not activate a new global drawer automatically. Disable it by switching its source widget back to page scope and saving as administrator.

The recovered drawer uses the original sidebar_drawer field names. Existing opaque Pro widgets remain delegated to the separate Pro add-on. The editor-panel collapse button introduced in the locally recovered 0.4.35 test package remains separate from the public menu drawer.

Can I use a card-style menu with a header image?

Select Sidebar Recolhível and choose Premium under Modelo visual. Classic sidebars remain unchanged until you select the new model. Premium is the visual style name, not a paid tier. The design is generic and fully functional in Free, with optional header/background/logo/footer images from the WordPress media library, a configurable overlay, subtitle/divider, original built-in SVG icons, card colors, radius, padding, spacing and shadow. No icon fonts or external libraries are loaded. Images are not bundled; choose media you may use. A built-in decorative wave is used when no footer image is selected.

Links retain the format Label | /path/. Choose icons per row in Content; their names are stored separately, without changing the link text or URL. Published and global rendering share the same markup and security checks. The page shortcode and all existing Free/Pro hooks remain available.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“Sage Page Builder” is open source software. The following people have contributed to this plugin.

Contributors

Translate “Sage Page Builder” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Changelog

0.4.40

  • Updated plugin text domain to match the WordPress.org directory slug.
  • Removed external example image URLs from the gallery field placeholder.
  • Updated public plugin name and package directory for directory review.

0.4.40

  • Name the optional card-style drawer Premium while retaining the classic style and existing saved model identifiers.
  • Clarify that Premium is a fully available Free visual option for any website, with editable titles, images, colors and links.
  • Label/documentation update only; no renderer, storage, permissions or asset behavior changes from 0.4.38.

0.4.38

  • Add an optional card-style drawer with header image, overlay, logo/icon, subtitle/divider, per-item icons, chevrons and decorative footer.
  • Add media selectors and color/spacing/radius/shadow controls with a matching editor preview.
  • Retain the classic drawer as the default and preserve links, layout storage, keyboard handling and global permissions.

0.4.37

  • Fix drawer color editing: expose the eight supported colors in the Style tab and update the editor preview immediately.
  • Preserve valid legacy generic text/background/border colors when drawer-specific fields are absent; explicit drawer fields take precedence.
  • Scope public drawer colors to withstand theme color overrides while retaining separate normal/hover link colors.

0.4.36

  • Recover Sidebar Recolhível as a fully functional Free widget, alongside the original 14 widgets.
  • Restore page and administrator-controlled site-wide display using the legacy sidebar field names, without reactivating old global options automatically.
  • Add readable, enqueued drawer assets with keyboard controls, focus handling and safe link output.
  • Preserve the 0.4.34 page shortcode and the local 0.4.35 editor-panel collapse improvement.

0.4.35

  • Restored collapsible left editor panel (open/close) without changing saved page data.

0.4.34

  • Add the sage_page shortcode to embed saved Sage page layouts in Elementor and other shortcode-enabled content.
  • Validate source page IDs and visibility, respect password protection and stop recursive layout rendering.
  • Load existing front-end assets for embedded layouts while retaining widgets, saved data and Pro integration filters.

0.4.33

  • Document optional external video providers and their terms and privacy policies.
  • Update local validation notes to distinguish completed tests from their limits.
  • Documentation release; runtime code differs from 0.4.32 only in version identifiers.

0.4.32

  • Preserve backslashes and quoted content in user template metadata when saving or deleting a model.
  • Keep existing layouts, template storage keys, assets and Pro integration filters unchanged.

0.4.31

  • Apply shared snapshot deduplication and history retention to normal saves as well as imports and restores.
  • Keep malformed or duplicate legacy history rows intact when safe pruning cannot be confirmed.
  • Explain the two JSON workflows and provide a specific message when an editor backup is selected for layout import.
  • Preserve widget renderers, layout storage keys, assets and Pro integration hooks.

0.4.30

  • Expand every distributed JavaScript file for source readability. Parser comparison confirms that formatting preserves the JavaScript syntax tree.
  • Keep editor and translation reference sources identical to their runtime assets.
  • Document the source workflow and Free/Pro compatibility boundary for review.

0.4.29

  • Fix import and restore failures caused by a missing validation method.
  • Allow verified Free edits around unchanged legacy Pro widgets without enabling Pro widget creation.
  • Prevent deletion or duplication of containers holding protected legacy Pro widgets.
  • Reject malformed scalar fields, invalid stored layouts, and non-list JSON roots before saving.
  • Preserve existing JavaScript, CSS, storage keys, widget renderers and Pro integration hooks.

0.4.27

  • Improve readability and layout of the editor JavaScript without changing its parsed program structure.
  • Keep the distributed editor script and editable source copy identical.

0.4.26

  • Remove author-site URLs from newly created example buttons and templates, avoiding promotional links in default content.
  • Existing saved links and layouts remain unchanged. No change to Pro compatibility hooks.

0.4.25

  • Preserve JSON backslashes and quotes when taking snapshots of legacy layouts using WordPress post metadata.
  • No changes to layout editor, widget rendering, or import/restore controls.

0.4.24

  • Remove inline JavaScript onclick handler from history restoration confirmation.
  • Use an enqueued JavaScript event listener for the same confirmation behavior.
  • Preserve the 14 Free widgets and legacy data safeguards.

0.4.20

  • Consolidate and correct source-code documentation for WordPress.org review.
  • Explain the boundary between Free renderers and legacy compatibility data.
  • No runtime code modifications.

0.4.17

  • Document locations of the editable JavaScript, CSS and PHP source files.
  • Include source discovery copies of the editor and translation scripts.
  • No runtime behavior changes; still requires manual compliance review.

0.4.16

  • Update release documentation and test notes; no runtime feature changes.
  • Document that the Free 0.4.15 package passed Plugin Check (PCP) on the local test site, and saved page layouts were observed intact after update.

0.4.15

  • Restrict Free editor content controls to the authorized Free widget list.
  • Retain compatibility safeguards for older saved layouts.

0.4.14

  • Correct release documentation and test-environment description.
  • Clarify that Plugin Check passing does not guarantee WordPress.org approval.
  • No changes to page rendering, widgets, or saved layout data.

0.4.13

  • Remove unused Pro playlist editor dependencies.
  • Correct social icon presentation.

0.4.12

  • Improve video and audio identification in editor preview.

0.4.11

  • Clarify Free widget labels in the editor and diagnostics without altering legacy saved layout data.
  • Correct installation guidance for the separate Pro add-on.
  • Historical note: earlier packages required PHP 8.4. Version 0.4.28 lowered the declared minimum to PHP 8.2; that version still required runtime testing at the time. See the current release notes for subsequent testing.

0.2.5

  • Standardize the author display name as sageenglish.
  • Technical review in progress. Not yet cleared for WordPress.org resubmission.

0.2.2

  • First public-release candidate with 14 Free widgets, responsive editing, import/export, and layout history.
  • Free widget creation and saving are restricted to the 14 included widget types.
  • Previously saved advanced-widget layouts may display in read-only compatibility mode; this does not enable creating or editing those widgets.