A documentation, demonstration and support site for Concrete CMS addons and themes by JohntheFish.  (For underwater photography see jlunderwater.co.uk.)

Web Sites

Rock Star - Only the few have given so much.

I build web sites using the open source Concrete Content Management System. Using a good CMS is the way to future-proof a web site and Concrete CMS leads the way in usability, both for site owners and site developers. 

I offer pretty much anything from complete sites to emergency repairs, specialising in advanced development as a service to customers and for my own portfolio of addons. I balance this with my other business as an underwater photographer and journalist. Web and diving work provide a good balance between home and away, especially with global communications.

I have used many of the Concrete CMS add-ons I have developed to facilitate the process of building this site and have generally used this site to showcase my addons wherever I can. Having the right tools to hand makes creating a site easier, faster, reliable and maintainable.

With the right tools, it doesn't take long to have a web site up and running. Of course, there have been subsequent changes as I add more support pages for my addons, but hopefully you get the general idea and by using a CMS the updates are easy to stay on top off. When it does come to updates, with the right tools you can make changes easily and safely.

At the 2018 Cascadia ConcreteCMS conference, Katz from Macareux Digital (Concrete CMS Japan) recorded a short video interview to introduce me.


I do magic development stuff with the Concrete CMS using php, JavaScript, jQuery, CSS and LESS. This site demonstrates what can be achieved by putting a little bit of that magic to use.

I like making Concrete CMS add-ons that are both highly functional and easy for others to use. Things that make an otherwise difficult job easier.

Where simplicity of interface is not possible, documentation and examples need to fill the gap. A unique function of many of my addons is the ability to View settings from an example on this site, copy and import them into the addon on your own site. That way even relatively complex capabilities can be made easier by providing a starting point.

To maintain these addons I use Package Magic to analyze the code, bundle them up and upload to this site. Its a fact of life. Developers make mistakes. I make mistakes. Using the right tools minimizes those mistakes and helps us fix them quickly.

The tabs on this page use Magic Tabs, an add-on that chops a page into tabs simply by inserting a block where each tab is wanted. It comes back to one of my opening comments. Magic Tabs is easy to use, but behind the scenes has some intricate engineering so that site builders can simply get on with their work without worrying about the code behind it.

Also used throughout this site is Button Nav to provide supplementary navigation and information, Syntax Anywhere for code samples, Universal Content Puller for many places where content needs to be duplicated between pages or pulled in from elsewhere, Omni Gallery for image galleries and sliders and Last Updated to show when main content has been changed.  A site maintenance task that is now safely automated.

Behind the scenes, I use Extreme Clean to remove the hidden bloat of obsolete data that web sites accumulate, keeping things running smoothly and making sure such housekeeping maintenance is not neglected. I also leave notes to myself using Editor Comment, so that when I come back to a page to edit again I have a record of previous decisions, good and bad.

Searching on this site is powered by Search++, an enhanced search system I developed to break out from the extreme literal pitfalls of the default Concrete CMS search. Give it a try and see how it compares to searches on other Concrete CMS sites.


I am not a designer in the graphic sense. If all you are looking for is an original theme design, there are theme designers who have a better eye for a new theme design than I do. 

So why am I writing about design? For a web site, design cannot be independent of engineering. Behind a theme design you need good engineering. There are some beautiful Concrete CMS themes out there with, behind the scenes, mediocre engineering. There are also some with excellent engineering.

I can take a graphic design and turn it in to a thoroughly engineered theme. To put it simply, build a theme into a site that works, that will carry on working, and that a site owner can confidently use.

The theme used through most pages of this site is Atomik, the default Concrete CMS theme, supplemented by Frontend Dashboard, a theme that makes front end pages follow the Concrete CMS dashboard theme.

Many of my Concrete CMS add-ons help put the finishing touches to a design. My general principle is to provide front end styling that inherits from your site theme as far as possible.

Button Nav is an easy way to add styled buttons to a page with dropdown, dropout and popup functionality. Many of the templates provided by Magic Tabs assume styling from the site theme, so in many cases you don't need develop custom templates (and when you do, the examples are easy to follow). Both provide easy ways to extend the site theme without having to get inside the theme files


Even a site with minimal content needs to read well and tell visitors what it is all about. Whether its purpose is advertising or reference, a site has a message. More important than any graphic design or neat tricks with CSS and JavaScript is just getting that message across.

All the bits and bobs a site is built from need to be documented so the site can be maintained in the future. The way a site is built is not something to be done once and forgotten. 

With addons and themes for Concrete CMS, their use needs to be clearly explained and documented so site builders and developers know what they are installing on their site and how to use it effectively.

Inside the addons and themes, the code needs to be clearly commented and explained, so those that need to develop new templates or extend functionality can easily understand how to do so.

The principle of commenting code also applies to web site pages. Within pages my Editor Comment block can be used to keep notes about how and why a page is structured, hidden from general view, but always there next time a page is opened in edit mode.

All of this is where my second career as a photographer and diving journalist plays its part. I know how to write and show things in a way that others can understand.


Whether its an entire web site or an addon for Concrete CMS, it will need supporting.

My engineering principles mean that you should be able to do much of this yourself. My work is well documented and my code is well commented. I provide training and guidance for customers. Nevertheless, there are times when help will be needed and my commitment to support is part of the process. Where support has been needed, my support and solutions are consistently fast, as testified by many of the reviews for my addons. 

Golden Baton.

Take a look at karma and badges earned within the Concrete CMS community. These are a measure of support, promotion and development (much of which is supporting development). In August 2021 I was the inaugural recipient of the 'Golden Baton', an award created by Portland Labs for commitment and support of Concrete CMS and the community.

PRB Administrator - Currently running the concrete5 Marketplace Peer Review Board.

On a more general level, I help others out on the Concrete CMS Forums, have written some useful tutorials for Concrete CMS and am the lead administrator of the Peer Review Board, the group of developers that makes sure new Concrete CMS addons and themes are up to scratch. I have even written tutorials to help others get marketplace submissions through the PRB.

Concrete CMS v9

As a general guide, I have moved minimum core version supported for all addons and themes listed on this site and in the Concrete CMS marketplace to v9.1.3. That is not to say they won't continue to work with older core versions. Its just that testing updates against core versions further back is too big an overhead.

In theory, all these packages should work back to Concrete CMS v9.0.0. However, the v9 core before v9.1.3 had issues and upgrading within v9 is reliable, so upgrading your site core to v9.latest is recommended.

This site, with all addon and theme demonstrations, is running on Concrete CMS v9.2.+ and php8.2.+. 

Legacy Concrete CMS version 8.5 and earlier

Most of the packages on this site were developed for back compatibility with Concrete v8.5.12 and should be compatible with earlier v8.5.x. However, as noted above, updates are no longer tested for compatibility that far back.

If you have a requirement for back compatibility, contact me with details and I can advise. In most cases, the minimum php version is php7.3.

Legacy Concrete version 5.6 and earlier

Anyone requiring support information for my older addons and themes on version 5.6.4 legacy sites, please contact me directly.