Nimble Page Builder


What is Nimble Page Builder ?

Nimble Page Builder is a fast and agile page builder plugin for WordPress. Nimble Builder uses the live customizer which is the native and powerful WordPress interface for real-time design.
The plugin allows you to easily drag-and-drop modules like text-editor, post grids, images, contact forms, maps, icons, or beautiful pre-built sections with a parallax background, into any page of your site. You can edit your sections in real-time, and then click “publish” when you are happy with the result, or save for later.

Watch the video below to see how this demo page has been built !

Works on any page of your site and with all WordPress themes

Nimble Builder allows you to insert sections in any context of your site : home page, single post or page, category or tag page, even search results or 404 pages. No only that, but you can also decide to start designing from a blank page on any page of your site, and even create a custom header and footer. Nimble Builder uses native WordPress action hooks, which makes it compatible with all WordPress themes.

Live demos

Features overview

  • Drag and drop neatly pre-designed sections and customize them in real-time preview.
  • Works in any WordPress contexts : home, pages, posts, custom post types, archives, author pages, search page, …
  • Create content, style, move / duplicate / remove elements in real-time preview.
  • Includes many content modules : classic text editor, image, column layouts, contact form, button, icons, map, html code, WordPress widget area, menu, and more.
  • Insert engaging post grids on any page, looking great on desktop and mobile devices.
  • Use full width image or video backgrounds for your sections, and enable a parallax effect.
  • Easily customize your content specifically for mobile devices : change the responsive breakpoint, adapt font-size, spacing, alignment, column layouts, in real-time preview.
  • Customize any text with Google Fonts.
  • Add custom CSS to any specific page of your site ( and only to this page ) : post, page, archive, 404 page, WooCommerce product, etc.
  • Export / Import : re-use your sections in other pages and between sites.
  • Embed shortcodes from other plugins, and see the result in real-time preview.
  • Nimble Builder automatically generates responsive HTML markup for a pixel-perfect rendering on smartphones and tablets.
  • Nimble Builder leverages the WordPress live customizer features for auto-drafting and schedule publishing. You can safely build and save drafts of your content before deploying in production.

Content modules

  • Headings
  • WordPress text editor ( support blocks and shortcodes )
  • Image
  • Button
  • Icon
  • Post Grid
  • Image Carousel
  • Contact Form
  • Google Map
  • Menu
  • Social Profiles
  • Divider
  • Spacer
  • Columns
  • Quote
  • Widget zone
  • Accordion
  • Shortcode
  • Tabs ( coming soon )
  • … and more to come !

Getting started

Once installed, Nimble Builder can be accessed in the WordPress live customizer. You can start creating your first section !


You’ll find a growing online knowledge base for Nimble builder here : Nimble builder documentation.


  • Creating a page with 3 sections
  • Dragging and dropping a pre-designed section
  • Editing content in live preview
  • Creating columns layouts
  • Customizing a section with an image background
  • Using the section navigator


  1. Install the plugin through the WordPress plugins screen. Or download the plugin, unzip the package and upload it to your /wp-content/plugins/ directory
  2. Activate the plugin through the ‘Plugins’ screen in WordPress
  3. Navigate to the WordPress live customizer
  4. Look for a drop zone candidate in the previewed page and click on the “+” button to start building your first section of content
  5. Drag a module from the left panel and drop it in a drop zone of the previewed page


How do I use Nimble Builder ?

Getting started with Nimble Page Builder for WordPress.

Can I use Nimble Builder with any theme ?

Yes, Nimble builder works with any WordPress theme. If you experience any problem with a specific theme, please report it in the plugin support forum.

How to troubleshoot problems with Nimble Builder ?

  1. Use the latest software versions : make sure WordPress, Nimble Builder and your theme are all up to date.
  2. Documentation : try to find a possible solution in our documentation pages.
  3. Search the forum : use the search field on top of the topic list with keywords describing your issue. Another user may have had a similar problem already resolved.
  4. Cache plugin : if you use a server cache or cache plugin, please clear it’s cache content and disable caching via it’s settings. It is recommended to disable your cache plugin when customizing your site.
  5. Check for plugin conflict : deactivate all of your plugins. If it fixes the issue, re-activate your plugins one by one, until you identify the plugin in conflict.
  6. Browser : clear your browser’s cache / history. Switch to another browser if needed. Make sure you do not use a browser extension that conflicts with the plugin.
  7. Theme : try to switch to another WordPress theme, like the default WordPress theme. If you use a child theme, activate the parent theme instead.

We have also published a detailed troubleshooting guide for Nimble Builder.

If you can’t troubleshoot your issue, please open a new thread in Nimble Builder support forum.


28 2841 December 2841 000000 2020
In last 6-7 years I've tried several page builders for WordPress, for one of them I've been paying PRO version for a few years, until I've discovered Nimble. Nimble has everything I need in free version (and even more), and along with Customizr Pro theme from the same author helps me in building beautiful and unique web-designs. It is very powerful, easy to handle and reliable. Thank you!
6 0608 October 0608 000000 2020
This is by far the best page builder I've come across. Very easy to use and very fast. It has every feature that other page builders make you pay to have. The thing that impressed me the most is that the support team is very very helpful and friendly, even though this is a free plugin to use. Thanks again for this. Keep up the great work!
23 2319 September 2319 000000 2020
This a great plugin without a doubt but it really isn't multilanguage friendly, whether be with WPML or Polylang, the 2 I have tried Nimble with, and that a draw down. Make it compatible and I will change my review.
14 1426 August 1426 000000 2020
Memory and cache are the main problems with this plugin. It refuses to accept the changes you make even after clearing browser cache, disabling caching plugins and Cloudfare. Certain animated features work in preview mode but not when pushed live. Disabling all plugins, removing all custom CSS code and using the default WordPress theme has no effect. It still won't work. You can see the code it generates in preview mode but when in live mode - the code is nowhere to be found. Manually putting it in and marking it as !important has no effect. Spend hours developing your own template or table for pricing only to have it altered with subsequent updates. Need to change the price - and it throws off the entire table requiring you to readjust the list one column at a time because altering the fonts size, weight and height have no effect. Changes made to the desktop view end up applying to the tablet and mobile view and vice versa. It's beyond annoying that you have to keep going back in and readjusting for each device until it finally accepts the changes. This is a decent plugin with minimal resource usage and has a lot of potential. Having used Divi and Elementor (which I migrated from) - these plugins are packed with features (most that users don't need) and consume a lot of resources and memory. There has to be a balance between usefulness and client needs to the overly bloated alternatives out there. Nimble just isn't it but I don't have the weeks required to test out another one so I'll just suck it up. Too bad it's nowhere near as good as the Customizr Pro theme from which it evolved.
Read all 81 reviews

Contributors & Developers

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


“Nimble Page Builder” has been translated into 4 locales. Thank you to the translators for their contributions.

Translate “Nimble Page Builder” into your language.

Interested in development?

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


2.2.2 February 18th, 2021

  • fixed : [character encoding] some characters like (€ quotemarks „“, ä ü ö ß and € 😘🚀) can break rich text editor content

2.2.1 February 11th, 2021

  • fixed : regression introduced when fixing emoji encoding issue => json encoding html markup can break serialization
  • fixed : [button module] remove sanitize_text_field() action when sanitizing

2.2.0 February 9th, 2021

  • fixed : inserting emojis leading to blank page
  • fixed : [html module] prevent double instantiation of the code editor
  • added : [template] beta version of template saving
  • added : [image module] new option to use the current post thumbnail as source of the image
  • added : [level background] new option to use the current post thumbnail as source for the background url

2.1.36 February 2nd, 2021

  • Updated : FontAwesome icons to latest version (v5.15.2)

2.1.35 January 29th, 2021

  • fixed : [form module] reCaptcha badge not displayed even when global option checked
  • improved : [performance] prevent concatenating twice the same module stylesheet if used both in local and global stylesheets
  • added : [mobile menu] collapsible sub-menu items

2.1.34 January 25th, 2021

  • fixed : [Menu module] Submenu items not clickable when option “expand the menu in full width below the menu hamburger icon.” is checked

2.1.33 January 21, 2021

  • fixed : [menu module] clicking on a sub menu item doesn’t open the link
  • added : [user sections] edit icon to modify the title and description of the section

2.1.32 January 12, 2021

  • fixed : [form module] javascript may break after submitting the form when jQuery called too early

2.1.31 December 24th, 2020

  • fixed : [customizer] minor possible bug when initializing NB customization interface

2.1.30 December 23rd, 2020

  • fixed : [dynamic CSS] insufficient specificity when setting section style options
  • fixed : [file import] bug when trying to assign sections to missing locations if current page uses a local header/footer
  • fixed : [text editor module] line break not preserved when re-opening a text module UI

2.1.29 December 12, 2020

  • fixed : [customizer] minor issue when adding a new section in an empty location
  • fixed : [customizer][pre-built sections ui] pre-opened section group is broken
  • improved : [user template] added various component to prepare introduction of reusable templates

2.1.28 December 3rd 2020

  • fixed : [js] always check that window.nb_ is defined before trying to emit an event
  • fixed : [performance] removed global performance > jQuery options, replaced by PHP boolean constants: NIMBLE_LOAD_JQUERY_ASYNC and NIMBLE_USE_LATEST_JQUERY_VERSION

2.1.27 November 24th 2020

  • fixed : [WP5.7][jquery-migrate] replaced deprecated shorthands and fixed wrong usage $.fn.css() method
  • fixed : [carousel module] when customizing the lazy-load preloader is not self-removed
  • fixed : [images] removes any additional style attribute added by a theme ( Twenty Twenty one ) or a plugin to the image
  • added : [slider module][performances] introduction of a new option to pick an image size
  • fixed : [lazyload][performance] Wait and trigger the dom-ready again after 1 second, so we don’t miss any image initially below the viewport (can happen if the height of a page element like a slider is modified at dom ready)
  • added : [post grid module] grid layout now supports up to 12 columns
  • improved : [post grid module] the number of columns by device is now consistent with the global custom breakpoint, and the section custom breakpoint
  • improved : [post grid module] default border-radius of post thumbnail now set to 4px by default
  • improved : [grid module] adjust default font-size, line-height, color css rules for text blocks

2.1.26 November 24th 2020

  • fixed : [pre-built section] link to demo should not be displayed when not specified
  • fixed : [WP 5.6] images in the image module should not be inline styled by third party themes/plugins (as new default theme Twenty Twenty One does it with a filter for example )
  • fixed : [WPML translation] compatibility issue with WPML preventing NB to build translated page

2.1.24 November 19th 2020

  • fixed : [WP 5.6][admin][NB button] updated selector of the header toolbar with new in WP5.6 + implement retro-compat with previous versions
  • added : [compatibility] Implemented compatibility with the content analyzer of Rank Math SEO plugin
  • added : [button module] new options to customize width and height of the button

2.1.23 November 17th 2020

  • fixed : [jQuery][javascript] prepare code for WordPress 5.6+ and removal of jquery migrate
  • fixed : fixed : [CSS][default style] headings font-sizes should be styled by default when used in another module than the heading one, like in the rich text module for example

2.1.22 November 9th 2020

  • fixed : [dynamic CSS] a missing input id can break building css rules
  • fixed : [global style] global font size not taking precedence over default theme rules in menu items, and ul / ol lists
  • fixed : [search form] add max-width rule to search input to reinforce Nimble CSS precedence over active theme/plugins
  • fixed : [menu module] removed buttons added with a filter by upcoming Twenty Twenty One theme to top level menu-items
  • fixed : [level background] print inline css when customizing instead of relying on data-sek-src
  • fixed : [special image][pro] added more specificity to the link CSS rules to prevent override by global link rules
  • added : [module,column,section] new z-index option in “Height” options
  • added : [links] simple default color CSS transition
  • improved : [lazy load] Disable smart load parsing when building in the customizer

2.1.21 November 5th 2020

  • fixed : [Image module] custom width not taken into account if > 100% of the parent element.
  • fixed : [link picker][customizer] list of links not visible (opacity set to 0) due to “clearfix” class styled by other plugins

2.1.20 October 22nd 2020

  • fixed : [javascript] replaced javascript alert when jQuery not detected by a console log

2.1.19 October 17th 2020

  • fixed : [CSS] php error when user not logged in when enqueuing CSS stylesheets

2.1.18 October 17th 2020

  • fixed : [javascript][performance] front javascript can break when user activates the ajax load performance option
  • added : [front assets][performance] introduction of a new property Nimble_Manager()::page_has_local_or_global_sections, set @template_redirect, which let us know if NB asset are needed on a given page. More efficitent that the previous check which was running several times a recursive walker on the section tree.

2.1.17 October 16th 2020

  • fixed : [global CSS] bug : missing global style options after updating Nimble Builder to v2.1.15+
  • added : [customizer][font picker] link to Google fonts showcase

2.1.16 October 16th 2020

  • fixed : [CSS] specificity too low for rules generated for modules
  • fixed : [html] attribute data-sek-lazy-bg is added to all levels even when there’s no lazy backround to load

2.1.15 October 15th, 2020

  • fixed : [CSS][Button module] border and text color should have more specificity to avoid being overridden by future WP default theme twentytwentyone
  • fixed : [customizer preview] some CSS rules for UI buttons are not specific enough when using a theme like twentytwentyone
  • fixed : [CSS] global stylesheet may be erased when generating local stylesheet with no global locations
  • fixed : [CSS] specificity too low for module dynamic styles, in particular for text CSS rules
  • fixed : [CSS][performance] better performances on front for global options CSS, like text, breakpoint, sections widths
  • fixed : [menu module] added more specificity to button style to avoid inheritance of themes or plugins style ( twentytwentyone overrides buttons style )
  • added : [CSS] new selector .nb-loc to location wrappers
  • added : [CSS][performance] use a new global option to store global style to be rendered inline
  • improved : [JS][Performances] reduce main script file + defer loading of partial ones + load when needed only
  • improved : [CSS][Global options] implement a better way to print global options stylesheets with a filter ‘nimble_set_global_inline_style’
  • improved : [performance] preload some front assets like Font Awesome style and fonts
  • improved : [performance][js][css] assets for magn. popup, swiper, video bg are now by default loaded by js on front. WP enqueueing is only used when customizing for those assets.
  • improved : [CSS][Performance] implement dynamic module stylesheet concatenation + added a new folder name ‘nimble_css’ for new concatenated stylesheets + clean the previous one ‘nb_css’ + removed global performance option ‘use_partial_module_stylesheets’. Fallback on full stylesheet if concatenation broken due to permissions problems.
  • removed : [performance] option ‘preload_front_scripts’, now implemented by default
  • removed : [performance] removed php sniffers to detect if we need to load specific assets in favor of a js detection

2.1.14 October 6th, 2020

  • fixed : [performance][Lazy loading] when rendering NB content, remove attr loading=”lazy” added to images by WP
  • fixed : [scroll to anchor] + [lazyload] => avoid layout shifts problems for page with many images

2.1.13 September 30, 2020

  • fixed : [module settings] horizontal alignment should be customizable without setting a custom width
  • added : [prebuilt sections] link to live demo when hovering thumbnail
  • improved : [i18n] clean unused translation strings

2.1.12 September 28, 2020

  • fixed : [lazy load] background images off screen are not loaded when lazy load is disabled
  • fixed : [image module] an image with an invalid url should not be rendered
  • fixed : [shadow on levels] not refreshed when customizing
  • fixed : [scroll to anchor] when lazy loading is on, the scroll might not land to the right anchor
  • fixed : [carousel module] first image not displayed when customizing with global lazyload disabled BUT slider lazyload enabled
  • fixed : [carousel module] adapt image to carousel height broken
  • added : [carousel module] new image layout option so that images fill space and are centered without being stretched
  • improved : [scroll to anchor] implement scrollIntoView

2.1.11 September 26, 2020

  • fixed : [dynamic css] css value may not be taken into account when typed fast, for example when setting an height in pixels
  • fixed : [slider module] horizontal centering broken when slider fills 100% of height
  • fixed : [slider module] improved slider image style when chosen option is to adapt image on height
  • fixed : [prebuilt sections][performances] removed the get sections action at ‘nimble_front_classes_ready’
  • fixed : [img module] make sure the html has a minimum height when no image was found
  • improved : [dynamic stylesheet] always animate to level when stylesheet is generated
  • improved : [dynamic stylesheet][performance] improved the CSS rule generation for level box shadow
  • added : [fonts] new web safe font
  • added : [image module] introduction of a custom height option
  • added: [prebuilt sections] new group of sections “Team” with 2 new prebuilt sections included

2.1.10 September 17, 2020

  • improved : [admin] settings links should point to “Options” tab
  • fixed : [accordion module] striping script tags should be moved before parsing video embed, leading to tiktok videos embeds not working

2.1.9 September 11th 2020

  • fixed : php fatal error on front end

2.1.8 September 11th 2020

  • added : [contact form module] introduction of a privacy checkbox for a better GDPR compliancy

2.1.7 September 7 2020

  • improved : Maintenance release, minor admin code improvement.

2.1.6 September 1st 2020

  • fixed : [customizer] fixed possible javascript error when setting a font family
  • improved : [admin] Welcome notice doesn’t need to be displayed on all screens

2.1.5 July 20th 2020

  • fixed : [compatibility with WP 5.5] wp_make_content_images_responsive is deprecated, replaced by wp_filter_content_tags
  • fixed : [compatibility with WP 5.5] adapt customizer color-picker script with latest version of WP 5.5
  • improved : [performance] limit the number of transients created by Nimble Builder + clean old unused transients.
  • improved : [icon module] added a default line-height of 1em to the icon wrapper

2.1.4 July 18th 2020

  • fixed : [Customizer UI][device switcher] limit scenarii when preview is automatically set back to desktop, while user customizes mobile or tablet preview.

2.1.3 July 17th 2020

  • fixed : [CSS generation][performances] empty stylesheets not always removed from upload sek_css folder. Introduction of a new folder ‘nb_css’ in /upload to store Nimble dynamic stylesheets.

2.1.2 July 7th 2020

  • fixed : [performance][css] don’t generate CSS for inactive locations on a page
  • fixed : [menu module] submenu items won’t inherit user defined text styles
  • fixed : [menu module][mobile menu] make sure users can scroll down mobile menu items if menu wrapper is higher than vh
  • fixed : [lazy load][performances] image parsing can break srcset and sizes attributes
  • fixed : [UI][Content Picker] Fix all content type displayed in some cases + make sure the content picker is set to “section” when user creates a new section

2.1.1 June 17th 2020

  • fixed : [options] prevent duplicated dismissed pointer in user_meta
  • fixed : [admin] wrong url for NB icon in options title
  • improved : [developers] allow filtering module params from a plugin
  • improved : [developers] allow filtering of NB header CSS classes
  • improved : [developers] the way section CSS classes are printed + add a way to filter from a plugin