Bolt

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.

Screenshot Bolt Startscreen

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.

Screenshot of the bolt dashboard

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.

  • Pages – Pages are meant for static content. Pages provide fields for a title, an image, a WYSIWYG editor, and a selection field for templates.
  • Entries – Entries are meant for time-sensitive content, like blog entries or news. Entries support the same fields as pages. But entries can also be connected to a page via a relation.
  • Showcases – This is just a showcase of different field types supported by Bolt.
  • Blocks – Blocks can be used to manage smaller pieces of content, such as an “about” text that is displayed in the footer or in the sidebar.

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:

  • It is built upon the Silex PHP micro-framework.
  • It uses numerous components of the Symfony framework.
  • Doctrine DBAL is used for the database access.
  • The template engine is Twig.
  • The HTTP client is Guzzle.
  • Bootstrap-Framework for HTML, CSS, and JavaScript.
  • Several front-end libraries like Font Awesome, jQuery and Magnific Popup.
  • CodeMirror and CK Editor.

The installation of Bolt is easy. Just download the code and go to your-local-folder/public or your-website.com/public. 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:

  • App: Contains three folders for caching, configurations, and for the database.
  • Extensions: An empty folder for your plugins.
  • Public: A folder with themes, content-files, and images.
  • Vendor: The core files of Bolt.

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:

news:
    name: News
    singular_name: Newsitem
    fields:
        title:
            type: text
            class: large
        slug:
            type: slug
            uses: title
        image:
            type: image
        text:
            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 %}
<article>
    <h2><a href="{{ newsitem.link }}">{{ newsitem.title }}</a></h2>

    {{ newsitem.excerpt }}

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

</article>
{% 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.

Pricing

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, Wikimedia.nl, Nicalala, Pegas Real, and Two Kings. Just check the showcase on the Bolt website to get an impression.

So you like PHP CMS for simple websites? Then you might also like these CMS: Bolt, Coast, Grav, HTMLy, Kirby, Sitecake, Statamic,

Fact Sheet

Language:
Best for Websites:
Complexity:
Special-Features (Selection):
  • Lorem Ipsum generator
  • Twig
  • YAML
  • HTML editor
  • Markdown editor
Requirements:
  • PHP 5.5.9+
  • Apache with mod_rewrite or Nginx
  • Database (SQLite, MySQL or PostgreSQL)
  • Modern Browser (FF, Chrome, Safari, IE10+)
  • Minimum of 32 MB disk space for PHP
Pricing:
  • Open Source
Licence:
  • MIT

Last reviewed: January 24, 2017

Leave a Reply

Your email address will not be published. Required fields are marked *