We are very excited to present you the new CMS plugin. What’s new? First look around. All our site use its possibility to the fullest. Now you can create amazing websites with easiness, and for free.

Let’s start with saying that we took the core functionalities and almost rebuilt the plugin from scratch, leaving only the true essence. We wanted to give the Redmine Community and you the possibility to create useful and beautiful websites with Redmine. The plugin is still available for download for free. So let’s get our tour started! .

Old CMS plugin used to interfere with Redmine and its design. Also, you know what the best part is? Now it is working on separate layers, independent from internal pages. You can create separately new pages for internal and external pages.

Ok, going on, the biggest changes are connected with the logic of creating pages. After installation, you will notice that plugin divided layout of the system into two parts: left working space and right column with a sidebar that contains all elements: Settings, Pages, Snippets, Menus, Layouts, Redmine action layouts, Redmine hooks, Redirects, Assets, Global variables. Ready to dive in? Let’s go!


New access to Settings and more options cms-settings.png

First thing is the new Settings section. From new position, it is worth mentioning Permissions, Localisation, and additionally:

  • Setting default layout of all new pages including internal pages like Issues, Contacts, etc.
  • Setting design for error pages (like 404, 500, etc.)
  • Option to add dedicated page fields by default. Currently, they are created empty upon the creation of the page. How it can be useful, we will mention later on.

In the top menu, you will notice three new options. First one is clearing the cache for all pages and refreshing them. Another two will help for multiple projects or companies that build various websites: Import and Export of websites. On output, you receive all website exported to/imported from a YML file. What’s more you can export not only all pages with code but also all attachments (images, files, etc.). You can also just export the code with the links to attachments to save the space.

New Pages cms-page.png

The biggest changes come in the Pages. They start with new logic and structure. Before you could create re-usable parts - sections that could be displayed as a part of different sub-pages. Now parts are assigned only to specific pages, and cannot be used in another subpage. But don’t worry, we did not eliminate this possibility, just little bit reframed it. It comes under the Snippets with more flexibility. Read along Layout for each page can be customary changed. Take a look at different views on our main page, plugin page - with an example of Agile plugin, or RedmineUP Cloud App page.

What’s more, you can choose a different type of content provided in the page source code. We decided to choose a range of filtered preprocessors: HTML, textile (like in Redmine WIKI), Javascript, Scss, Sass cms-filter.png

We have also added option to add date. This solution is perfect for blog or news section. Next point is Tags that can be used for filtering or selecting the pages. You will also notice Fields. They can be added to the page and later utilized in the code, to save you the coding effort. Field ‘Name’ is the page ID inside the CMS. Moreover, Slugs. What's that? Field to create an SEO-friendly URL of the page.

The page can be cashed. It is very useful for pages that require calculations, handles many incoming requests, contains lot of files or images, and so on. Easy to use snippets.

The Preview Feature with History cms-history.png

You can preview currently edited version of the page and additionally, check the previous one. Also, in a case of need, also compare it with different versions, thanks to the History. It is a brand new feature in the plugin, similar in the work to Redmine Wiki History. I need to point out that it works for all CMS objects - Layouts, Pages, Snippets, and Parts.


Remember the reusable Parts from previous versions, that we mentioned earlier? That is now the basis of this new concept. A Snippet can be anything: code, CSS, HTML, Javascript, Liquid or else. It can use page data, like page name and so on. For example, you can create one universal “order form” that is created once and then used on the products page. On each page, it will take page data and generate a dedicated form for each page and each product with its data. What’s more, they are very easy to use - with just one line of code! Another example would be snippet for Google Tag Manager or Google Analytics code. Instead of editing scripts one every page or Google analysis code, you can just add snippet that contains the required code and then use it ( yes, just one line of code, huh! ) on other pages. In case you need to make any changes, just edit the snippet, and the inserted code in the pages that contains the snippet will be automatically refreshed.

Layouts cms-layout.png

Say Hi! to a brand new fantastic feature. You can create different layouts to use for various pages. Creating a new layout works similar to building Pages. You can also include page parts and page fields. Now the best part - you can create output you wish: be it HTML, XML, CSS, textile or another file format. What does it mean for you? That you can make a rich layout that would use HTML and CSS, but also RSS or XML feed for a blog. cms-layout1.png

Redmine Action layouts

This is an advanced feature for user or admins who are well accustomed to Redmine system core structure, actions, controllers and its specifics. If you need to change the layout for specific pages inside the system: for example Issue list, Issue view, Gantt View, or else, can use Redmine Action layout. It is Ruby-like function based on the using Redmine's actions and controllers. For specific condition and particular action, the system will show different layout. We used this feature to build user-friendly Help & Support section, which is build entirely using our questions plugin.


Menus are the same like in you could already see in the previous version. You can change it for internal pages, like Intranet. You can see example in our demo: It does not influence the External page menu.

Redmine hooks

Hooks are code blocks used for internal Redmine pages, like for scripts that do not require the change of the layout.


If you renamed or replaced existing page, you can redirect the path of the system to the new page with the new Redirect function. Another example can be replacing default projects page with the new one, in a rich layout using HTML, Javascript, and pictures. Moreover, finally, it can be used to build cleaner ULRs, because who likes long and clumsy URLs? Exactly!


They are globally and locally available attachments.

Global variables

These are variable that can be used within the pages. Do you want an idea how to use it? Instead of inserting an “order placement’ link on every page (as it will be unique for page and products or services), we created a single global variable. It is used on the page, takes the products ID from the page field (which is connected with our Products plugin, from which it takes data automatically), and makes the link autonomously, without any effort.

Stylesheets cms-stylesheet.png

Just take a look how clean and organized it looks. One place, few tabs. How are they created? Simply, using layout and CSS preprocessor.

Uff! Reading is over. We encourage you to download the CMS plugin and start building amazing sites today. Even if it seems not so easy to comprehend, after few moments you will get along just great and build all upcoming sites faster, easier and with more joy. Because let’s face it. Now, with better ways to implement eye-friendly design Redmine can be fun! We cannot wait for your comments, remarks on the changes in the comment section.