Bolt is a fresh and lightweight open source CMS for simple websites. Bolt strives to be as straightforward as possible for developers and is easy to use for content managers.

Bolt was founded by the Dutch developer Bob den Otter and has become a popular open source project since its first release in October 2012. According to its founder, Bolt was initially developed for the web agency Two Kings to fulfill the needs of their customers.

Bolt is feature-rich, but starts pretty lightweight with the initial installation. It uses the well-established combination of Twig and YAML for theme development. Bolt is easy to use for content managers, but it focuses on web developers, who want to create a simple website for their customers.

Bolt for Content Managers

Bolt ships with an easy and nice control panel for content editors and administrators. But Bolt is not a productive system for content managers out of the box. You can easily install Bolt with a default theme on your server. But the initial installation of Bolt is more like a showcase for developers and does not make a lot of sense in real life. You should be familiar with GitHub, if you want to download a new theme. And you have to configure a YAML file, if you want to switch a theme. So you will probably not vote for Bolt without a developer on your side. But, if the developer does it right, then the process of content creation is pretty smooth and easy.

Bolt provides different types of content. The content types are listed in the dashboard menu of the dashboard. A developer can define unlimited types of content, so the menu will vary depending on the concept of your website. Initially there are four different content types: pages, entries, showcases, and blocks.

Bolt supports a classic HTML content editor, as well as a modern markdown editor. Like many other modern systems, Bolt does not support the integration of an image in the HTML editor by default. The developer has to configure the system for that. But, Bolt does supports a separate upload of a wide range of media, including images, image lists, videos, and different kinds of files. It even provides features for mapping, with an address lockup, latitudes and longitudes, and a map marker. Creating dummy content with one click is another smart feature of Bolt.

Bolt is a pretty nice option for content editors. But it has to be configured by a developer in the right way. If you are looking for a system that runs out of the box without the help of a developer, then you should look for another CMS.

Bolt for Developers

Bolt is written in PHP and uses a modern technology stack:

The installation of Bolt is easy. Just download the code and go to your-local-folder/public or Fill out the form and start the installation routine. If you do not provide information for a database, then Bolt automatically installs a file-based SQLite repository.

The initial folder structure of Bolt is very lightweight:

Bolt makes use of the well-known combination of YAML and Twig for theme development. YAML files are used for configurations and to create input fields for the content managers. Twig is used to print out the data in the templates of your theme.

The YAML files are placed in the App-folder. This means, that the admin panel is not individualized for a single theme, but it is a shared resource for all themes.

If you want to create a new content type called "news" for the content managers, then you have to enhance the existing YAML file "contenttypes" in the "app" folder like this:

    name: News
    singular_name: Newsitem
            type: text
            class: large
            type: slug
            uses: title
            type: image
            type: html
            height: 300px
    record_template: newsitem.twig

After that, you have to enhance your database tables according to the structure of your YAML file. Happily, you can do this with a single click in the control panel. This saves a lot of work!

Finally, you can use Twig to output the content of the fields in a template like this:

{% setcontent newsitems = "news/latest/4" %}

{% for newsitem in newsitems %}
    <h2><a href="{{ }}">{{ newsitem.title }}</a></h2>

    {{ newsitem.excerpt }}

    <p class="meta"><a href="{{ }}">Link</a> -
    Posted by {{ newsitem.user.displayname }}
    on {{ newsitem.datecreated|date("M d, ’y")}}</p>

{% endfor %}

If you want to learn more, just read the documentation that is linked in the fact sheet below.

Bolt for Non Coders

Bolt is a CMS for developers and does not work out of the box for content managers.

Bolt is probably a good option for code newbies because it is lightweight and clean. Be aware, that you won't work with plain PHP, but mainly with YAML and the template language Twig. If you want to start with clean PHP, then you should look for other systems, like Kirby, HTMLy or WordPress.


Bolt is an open source project. However, you can buy commercial support from Bolt and there is a market place for themes and plugins.

Recommendation: When to use it?

Bolt is best used for simple business websites, personal websites, portfolio-websites, and blogs. Bolt does not support multilingual websites or multi-site setups with one installation.

There are a lot of mid-sized companies and organizations that use Bolt as a content management system for their websites. Among them are the Historical Museum of Den Hague,, Nicalala, Pegas Real, and Two Kings. Just check the showcase on the Bolt website to get an impression.