codeflood logo

About SashimiCMS


SashimiCMS is designed to manipulate XML files. The main focus so far has been on XHTML, but there is nothing stopping you from using SashimiCMS for any non-pre-compiled language such as ASP, ASP.NET (no code behind), JSP or PHP.

Who should use SashimiCMS?

SashimiCMS is developer oriented. There are no pretty interfaces or GUIs. It is hard core (somewhat) text and XML editing and command line. Even thought SashimiCMS doesn’t provide user friendly tools for editing page content, there is nothing stopping you from using a graphical tool to edit your content. So therein lies another strength for SashimiCMS. You can edit your content using whatever tools you feel comfortable using. Although you will need to be technically inclined if you need to do any tweaking or modifying of the base system.

SashimiCMS is “1 time compiled”, meaning there is no processing or overhead for any requests, other than that of serving out your pages. This makes SashimiCMS very fast. So in addition to static environments, if you have critical performance requirements and your content doesn’t change to often, then SashimiCMS may be what you need.


In 2005 I offered to help a community group redevelop it’s website. As this was a community group they were using a free static hosting environment which didn’t allow for any server code to run. I had been doing web development for a while and had done plenty of sites in which each page was a completely seperate file, and was a nightmare to try and update the overall look and feel of the site, keeping everything looking consistent.

And so I started to think of ways to overcome this and better manage the common elements between pages, such as header, footer and navigational elements. I initially wanted to do something like tag replacement, like an include in JSP or ASP, or a web user control in ASP.NET. This way I could simply place a custom tag on each page in which I wanted to have this common element shown.

Initally I was thinking of writting a Java application which would do the substitution for me. At the same time that I was contemplating this approach I was using Apache Ant a fair bit at work. Whilst looking through the manual one day I saw that Ant could perform XSLT transformations. I had used XSLT a bit previously and knew it was definatley capable for what I wanted to achieve. So I started to play with a few simple XSLT transforms, executing them out of Ant. This was perfect! I built the site using this technique. This site is the pre-cursor to SashimiCMS (pre-cursor, as I did a complete rewrite for SashimiCMS).