Bolt

Features for designers | Boltcms.io

Features for designers

I’ve done 10 client projects with Bolt 1 to 3 now. I love Twig and the Content Types system. You can offer your clients an amazingly flexible way to edit data.

/u/Obou on Reddit

Frontend Developer

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.

Best rich content editors for free

Redactor & Article: the _best_ rich text editors, fully licensed for use in Bolt itself. For free.
Why? Because we believe editing content should be easy. You, as a content editor, should be provided with as much freedom as possible to adapt your pages yourself. No technical knowledge required. Have a campaign? Drag, embed and play with the content. Add content blocks you need. Life can be so simple.

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.

Search functionality included

Bolt's backend comes with a simple but efficient content filtering. Just type (part of) the word you're looking for in the search field, and you'll see all content that contains that term.

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.

20 field types (+ dynamic collections of fields)

By default, the CMS comes with all the standard field types you’d expect, such as text, date, file, image, markdown, select and others.

In addition, Bolt supports natively the following field types:

  1. Filelist & Imagelist: easy way to allow editors to attach multiple files and images.
  2. Collections: a grouping of fields. Adding dynamic number of fields is as easy as pressing a button in the Editor. For example, you can define a collection of members on your Team page and allow content editors to add multiple people with their name, image and position. Editors can add, delete, and re-order collection items with a click of a button!
  3. Templateselect: allow editors to select the Twig template that will be used to display the page.

What is a Twig template? See right below!

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:

Framework agnostic theming

Bolt's front-end theming is completely framework agnostic. Whether you like using Tailwind, Bootstrap, Bulma or prefer to carefully hand-craft your HTML, Bolt has you covered. 

Fixtures (dummy content) to help you develop easier

Loading test content during development, or when deploying to showcase your work, is tiresome. But it needn’t be. Once you have your content types set up, it is as easy as running this one line of code to prepopulate your CMS with dummy data:

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