May 21, 2009 by Alistair Deneys
So what is SashimiCMS? SashimiCMS is a CMS I created a few years ago. I didn’t write any compilable code for this CMS. All data is stored in XML files, all transforms are done using XSLT and the thing that binds this all together and builds the site is the Java build technology Apache Ant . The CMS contains no friendly user interfaces and no web interface. It is developer oriented as you have to write the (x)HTML yourself.
But what good is SashimiCMS? To answer that, let’s look at why I created it in the first place. I was redesigning a community website that was being hosted on a free hosting platform which didn’t allow server code. I didn’t want to have to worry about keeping the common page elements such as navigations in check and consistent across the site, so I tried to devise a way in which to automate this. My original idea was to write some code that would replace custom tags in the HTML files. So instead of writing out the navigational components, I could just use a custom tags like <menu/>. And being that I wanted to remain cross platform compatible I was going to write this in Java.
At the same time that I was thinking about this little project I was playing with Apache Ant a fair bit at work. At the time I was doing a little stint as a Solaris sys admin and build manager for a Java project. Through playing with Ant I realized it could execute XSLT directly without any extensions. I already knew about the power of XSLT through a little bit of reading and a brief play with it through using Sitecore 4. So I started to create the first incarnation of SashimiCMS which worked quite well.
The original version of SashimiCMS was actually custom built into the community website I was building. After I launched that site I rewrote SashimiCMS under it’s new name using the website project as a reference. And thus, SashimiCMS was born.
SashimiCMS doesn’t have a huge market share, and it never will. In fact, I only know of 2 sites which use it. One is the community site (hopefully soon to be migrated to Sitecore Xpress ) and the other is my website http://users.tpg.com.au/adeneys.
But looking at SashimiCMS in terms of raw features, it does have some pretty nice facets which I’m proud of. It employs a “page template” approach to pages. You simply write your HTML page template and use it amongst several pages. Each page and template can make use of custom tags which the user creates. So I could create a custom tag for a reusable piece of HTML, such as the webmaster email link might be bound to a custom tag called <email/>. Out of the box there are “controls” to render menus, a breadcrumb, a header, a footer, rss and lists of articles. And SashimiCMS is cross platform. It runs wherever Ant runs; Windows, Linux, Mac, Solaris, Unix, etc.
Each page can also contain multiple content fragments which are bound into the template at build time. So I might define the central content area as a fragment, and some side bar promotional element as another content fragment, and the template pulls these fragments in at build time.
So what should you use SashimiCMS for? SashimiCMS can aid you when you have to generate an HTML only site and the only people interacting with the content will be developers. For any other case at all, use Sitecore!