Bolt

Features for developers | Boltcms.io

Features for developers

Bolt is an example of a CMS that uses the entire Symfony framework, making it easy to work with for experienced PHP developers.

Adrian Senecki photo

Adrian Senecki

Content Creator

Powerful ContentTypes

Bolt structures all content in ContentTypes: a content type defines the structure of your website content, for instance News, Pages, Blog Posts, Testimonials and Sections are all examples of a ContentType.

What makes them so cool is how ridiculously easy it is to define them: all ContentTypes are defined in YAML format in the contenttypes.yaml file.

By adding the pages content type to your configuration, Bolt will:

  1. include the content type to the Editor (admin area) of the website
  2. allow editors to create, edit and delete pages
  3. display all published pages to your website.

Symfony-based development

Bolt is a Symfony application, and it shows in many ways. If you're familiar with Symfony, you'll immediately recognize the project structure and how things work. That's not limited to the core of Bolt itself, though. Projects you build on top of Bolt, as well as extensions for Bolt benefit from the Symfony underpinnings.

Extensions: get your hands dirty and customise Bolt further

Getting a little more technical here, but… The beauty of Bolt being a Composer package is how easy it is to extend it. There’s literally no limit to what functionality you can add to Bolt, or on top of Bolt, as an extension. Write your code and easily create a Bolt extension from it. Bolt automatically makes your extension autoloaded and autowired, and you'll have all of Symfony's services available.  You can even have your extension depend on other Composer packages to pull them into your project.

To read more about extending Bolt, read the documentation and check the extensions that already exist to get started.

Built-in internationalisation

By adding just one line to our content type, Bolt will make your pages translatable.

The even cooler thing? You have field-level control over what is translated and what is not. For example, the page heading can be translated, whilst the photo will stay the same across languages.

Want to see which fields are translated across languages and which not? No problem. Bolt’s got you covered.

Great Command Line Tools

Bolt makes extensive use of the Symfony command line tools. Some examples:

  • during installation and for adding fixtures
  • clearing the cache and updating the database schema
  • inspecting all Event listeners and subscribers
  • listing all Twig functions, filters and environment settings

Easy deployment

At its core, Bolt is a Composer package. In addition, all of Bolt’s (and Symfony's) configuration is stored in its YAML configuration files.

This means Bolt is easy to deploy in different environments. You can most likely keep using your preferred deployment and release strategy when you start working with Bolt. Whether you prefer using a tool like Deployer, a small bash script to git pull, Composer install or old-fashioned FTP. Bolt doesn't enforce a specific workflow, but adapts to your preferences.

Debug toolbar / Profiler

During development, Symfony's toolbar and profiler are an invaluable tool. Inspect everything that's going on under the hood: Execution time, Database calls, Exception traces, Profiling, Twig settings and much more.

Expressive Content Querying

Bolt's Twig implementation allows template developers to fetch content using an expressive and semantic syntax. The {% setcontent %}-tag can be used to retrieve data from the database based on ContentType, date, taxonomies or other values. 

Twig templates

The flexible, fast and secure templating language Twig is the de-facto standard across the Symfony community and beyond. At the core of it is simplicity and security.

Take a look how easy it is to generate the HTML for your pages:

Out-of-the-box API: REST and GraphQL

Without any additional configuration, Bolt provides a RESTful and GraphQL API. It allows you to use the CMS in headless mode, alongside a static site generator, or simply to feed data into whatever other platform that wants to listen to it.

Friendly and supportive community (good morning to you ☕)

We saved the best for last: our open source community! Our Slack community has over 1,600 members doing the same thing as you do: building awesome websites. The community is a great place to get to know like-minded people, as well as get some help when needed. Head over to the community now and say hi :-)

Let's get started