We’ve released Bolt 1.4 as a recommended upgrade for all Bolt users. This release contains a bunch of new features, and no security-fixes. It has been only six weeks since Bolt 1.3, our last feature-release. We still managed to get quite a few nice improvements done in the last month-and-a-half, though. Our thanks go out to everybody who helped us build new features and fix bugs. See below for the details on what's new.

As you might’ve heard: This will be the last feature-release of Bolt 1.x, as we’re now shifting our attention towards Bolt 2.0. At the end of march 2014 we’ll release Bolt 2.0. The most signifcant features of that release will be a redesign of the Backend (both in visuals as well as in functionality) and the marketplace to share your Themes and Extensions. Want to help? You can! More on this can be found here.

Highlights of this release:

Caching : Bolt now has Built-in support for full-page and request caching. Using this allows you to significantly speed up the frontend of your websites. If enabled, cached pages can be shown without the need to gather data from the Databases and rendering the pages. For example, see this screenshot of the profiler for a cached page. You’ll see the entire ‘controller’ part is skipped, as soon as Bolt determined the visitor can be served a page that has been cached.

Note: When logged in, you will not see this behaviour by default. Logged-in users will always get a ‘fresh’ page, to make sure they will see all latest changes.

![](/files/2013-12/Screen Shot 2013-12-24 at 12.12.30.png)

: Bolt now has Built-in support for full-page and request caching. Using this allows you to significantly speed up the frontend of your websites. If enabled, cached pages can be shown without the need to gather data from the Databases and rendering the pages. For example, see this screenshot of the profiler for a cached page. You’ll see the entire ‘controller’ part is skipped, as soon as Bolt determined the visitor can be served a page that has been cached. Note: When logged in, you will not see this behaviour by default. Logged-in users will always get a ‘fresh’ page, to make sure they will see all latest changes. ![](/files/2013-12/Screen Shot 2013-12-24 at 12.12.30.png) Roles and Permissions . We now have support for a more extensive Roles and Permissions structure in Bolt. It is designed in such a way that it’s very non-obtrusive when working with a small team, but it allows for very fine-grained control over who’s allowed to do what, if that’s what you need. Every aspect of this is controlled by the new `permissions.yml file: You can define roles, and set up permissions that are global or specific to one or more contenttypes. The default file will suffice for the vast majority of websites, but you can add as many roles/permissions as you like. Documentation for these features can be found here.

. We now have support for a more extensive Roles and Permissions structure in Bolt. It is designed in such a way that it’s very non-obtrusive when working with a small team, but it allows for very fine-grained control over who’s allowed to do what, if that’s what you need. Every aspect of this is controlled by the new `permissions.yml file: You can define roles, and set up permissions that are global or specific to one or more contenttypes. The default file will suffice for the vast majority of websites, but you can add as many roles/permissions as you like. Documentation for these features can be found here. We have a brand-new MenuEditor extension , contributed by @bacbos. This extension will allow you (or your editors) to manage the menus in menu.yml in a visual way. Of course this extension works with our new Roles and Permissions, so you can determine who should have access to it, and who shouldn’t.

![](/files/2013-12/Screen Shot 2013-12-24 at 13.30.27.png)

, contributed by @bacbos. This extension will allow you (or your editors) to manage the menus in menu.yml in a visual way. Of course this extension works with our new Roles and Permissions, so you can determine who should have access to it, and who shouldn’t. ![](/files/2013-12/Screen Shot 2013-12-24 at 13.30.27.png) Added a new MetaTags extension , for easier insertion of meta tags into the HTML source of your pages, and “SEO”-ing your titles.

, for easier insertion of meta tags into the HTML source of your pages, and “SEO”-ing your titles. Bolt can be configured to use SSL-only (‘https’), for all access to the backend.

(‘https’), for all access to the backend. You can now add custom views for contenttype listings in the overview and the dashboard.

for contenttype listings in the overview and the dashboard. Menus in menu.yml can now be nested deeper than two levels.

can now be nested deeper than two levels. Simpleforms : Option to log user’s IP-address and timestamp of when the form was posted.

: Option to log user’s IP-address and timestamp of when the form was posted. Simpleforms: Option to disable the built-in CSRF protection.

Simpleforms: Added option to use ReCapthca in your forms. Thanks, @julianxhokaxhiu.

Updated Dutch, Spanish, German, Italian, Russian and French translations.

Added Norwegian Bokmål. Thanks, @hansfn.

Thanks, @hansfn. Added new “Filelist” field for Contenttypes. Thanks, @doertedev.

for Contenttypes. Thanks, @doertedev. Replaced the quirky cleanup of HTML with the new HTMLmaid component . Thanks, @tdammers.

. Thanks, @tdammers. Improved the “ImportWXR” extension (for PivotX and Wordpress): It uses way less memory, imports categories, and other tweaks.

(for PivotX and Wordpress): It uses way less memory, imports categories, and other tweaks. Streamlined the ‘save’ / 'save & return' workflow. There's now also a conformation dialog to prevent closing window/tab with unsaved changes, and finally: you can now use ctrl-s or command-s to save the current item.

![](/files/2013-12/Screen Shot 2013-12-24 at 13.31.32.png)

![](/files/2013-12/Screen Shot 2013-12-24 at 13.31.32.png) We added a new “ PasswordProtect” extension. Using this extension you can easily add a password protection to one or more of your pages.



Using this extension you can easily add a password protection to one or more of your pages. The record.previous() and record.next() can now use ‘where’ statements for more control over what constitutes of the ‘previous’ or ‘next' item.

for more control over what constitutes of the ‘previous’ or ‘next' item. Images can now be deleted in the File browser.

in the File browser. Updated Symfony to 2.4.0 . The most notable aspect of this for Bolt users are the improvements to the developer toolbar.

. The most notable aspect of this for Bolt users are the improvements to the developer toolbar. Tweaked timthumb.php. It should now work properly on all kinds of odd servers, proxy-settings and old browsers alike.

Major refactoring on ‘bootstrap.php’ and ‘app.php’. Moved all relevant code to it’s own class, and streamlined all the providers. Removed and refactored out quite a bit of dead code. Large parts of the codebase have been cleaned up to adhere to the PSR-2 standard.

on ‘bootstrap.php’ and ‘app.php’. Moved all relevant code to it’s own class, and streamlined all the providers. Removed and refactored out quite a bit of dead code. Large parts of the codebase have been cleaned up to adhere to the PSR-2 standard. And, as usual, there’s quite a few bugfixes and smaller improvements in this release.

To upgrade an existing install, or to setup a new one, just follow the instructions for installation or for updating. When you do an upgrade, you will not overwrite your modified settings with the upgrade. You should still make a backup before doing an upgrade, though. Get the latest .tgz or .zip, or browse the folder with the distributions.

Updating should be just as simple as always, but behind the screens some extra things are done, because the Roles need to be initialized for existing users. When you log in for the first time, you will be promoted to ‘root’. If you have more users, you should check and verify that your users are still able to do what they should be able to do.