CMSMS Builder

Introduction

The CMSMS Builder is a tool to help you develop and optimize CMS Made Simple >= 2.2.3 themes, it is made by a developer for developers.

I you like an automated file based work-flow this project might be for you. It is usable to kick-start a new CMSMS project or it can be applied to existing ones. Repetitive tasks and optimizations are automated by Gulp and Webpack. While developing- and testing you can lint your source-code. All file changes and interactions are synchronized between multiple devices using Browsersync.

Only looking for a Gulp or Webpack setup for non CMSMS related development? gulpfile.babel.js gulp/*.js and webpack/*.js illustrates battle tested examples and can be configured for any project directory structure.

You can find example themes that works with the cmsms_builder on a companion GitHub repository: cmsms_themes.

If task-runners and an opinionated setup are not your thing? Probably this project is not for you. Although: You might get some inspiration from the automation's done with the cmsms_builder. The cmsms_themes project shows a method to build up templates in a modular fashion. The cmsms-udts project has some nice utilities you can use time after time.

You can also bring your own NPM, Bash or Grunt scripts and use the setup of this project without a build tool at all.

The cmsms_builder project is separated from the cmsms_themes project. To make the build tools as generic as possible everything is configurable to adapt your own environment.

On the cmsms_themes side not only templates, JavaScript and CSS assets are stored, but also the configuration files that are specific for your project, these drive the cmsms_builder.

Beware

This is not a click and go project. You have to npm install the cmsms_builder and write most of the HTML, Sass/CSS and JavaScript cmsms_themes files yourself. Adopting a CSS/JS framework can speed things up but is not required. If you want to use the cmsms_builder on an existing project take a look at the cmsms-assets-starter linked from the cmsms_themes project.

Motivation

Since CMS Made Simple 2.2 introduced file based style-sheets, templates and is heading to more files in the cmsms_root/assets folder. It is a logical step to introduce a task-runner for developer convenience and automation.

The aim of this project is to automate repetitive tasks and to store all assets needed to build up a theme on the file-system. Currently the /admin CMSMS Layout -> Design Manager is only needed for page templates (Core::Page). As soon as page templates can also be stored outside the Design Manager you can get rid of the Design Manager module.

WARNING

You can perceive a better development experience, SEO ranking and website speed score when you start using the techniques and tools described in this documentation.