- Name: Kamran Kashif
- Location: India
- Work history: Web developer / designer with over 10 years of experience – 4 years as freelancer. Co-founding partner of SYS-Solutions and lead developer of CouchCMS – a CMS created specifically for designers.
- Company: SYS-Solutions
- Website: http://www.couchcms.com/
Why did you create CouchCMS?
I think it was a classic case of ‘scratching your own itch’. While creating any dynamic website, I always had two distinct problems with most CMSes I worked with– one from the designer’s perspective and the other from the client’s perspective who, at the end of the day, was the one who had to use the CMS.
Any freelance web designer who codes up his design in HTML/CSS and then has to, either by choice or by necessity, port this design to a CMS all by himself will find the following scenario all too familiar
You have a fully functional static version of your design in hand and then you start dismembering your carefully crafted piece of art and pushing and shoving parts of it into whatever CMS you have chosen for the project.
The process varies from CMS to CMS and, while some of them make it less difficult than the others, in general there are rigid rules laid down by the CMS and you are forced to either play by them or work around them. Your design gets relegated to a secondary status and it is the CMS now that drives the development process.
This part is also where, more often than not, getting one’s hands dirty in PHP code cannot be avoided.
Now, I agree that nowadays most of the web designers can work with PHP to a fair extent but, call it the ‘Right brain, Left brain’ thing, few are really comfortable doing so. Given a choice, they’d rather have some other way of getting things done. The problem is, few CMSes offer them this choice.
Design Driving Development
I always wished to have a system where things worked in reverse – where it is the design that drives the development process, instructing the CMS what functionality to add and where. Not the other way round as is done conventionally. I also wished that the designer could do so without being forced to put on a developer’s hat.
As a designer, one is familiar with the concept of using HTML tags to markup portions of his template that instruct the browsers to handle them in a particular manner.
I wished the same logic could be extended to have a set of similar tags that could be used to markup portions of the template, this time instructing the CMS to handle them in a particular way.
Fancy having a pair of tags that could instruct the CMS to render region marked up by them as editable (this could have parameters that can specify whether the CMS shows it as a wysiwyg editor, a plain textarea, dropdown list or checkboxes etc. A template then can have any number of editable regions instead of a single one that is offered by default by most CMSes.
Another tag could declare a template as clonable i.e. make the CMS allow end users to create multiple copies of the template, each having its own data. Yet another may be used to list all the pages thus created with excerpts of the contents being fetched by another tag.
It is not difficult to see that such a system could very easily be used to retrofit CMS functionality into an existing HTML template in almost no time. More importantly, this could be done without requiring any PHP skills whatsoever.
Clients Are Afraid of CMS Admin Panels
The problem from the client’s perspective was of an even more serious nature: The admin panel of most of the CMSes I used intimidated a lot of my clients! The eventual purpose of a CMS is to empower the end user and any CMS, however powerful it might be, if it comes across as being overly complex or confusing in the minds of the user, it has failed in its purpose.
I have seen many of my clients really struggle working with CMSes our industry swears by. What seems simple enough to a web developer or designer seldom appears the same to a client who just hasn’t had the same exposure to IT – perfectly competent or intelligent as he may be.
I wished I had a CMS that would give me a blank canvas to begin with. Something that would allow me to display only those elements that are absolutely essential for the client to be exposed to and not an iota more. No unwanted and unneeded array of controls and options in the admin panel that serve only to confuse a less savvy user.
So these were the features I wished to have. Now, we do have CMSes around that have some of these features, but not in entirety. On one hand we have products like CushyCMS or Surreal that allow the marking up of multiple regions. However, they are pretty limited in the other features required for creating a site of even modest complexity and not being available as self-hosted versions, they didn’t quite cut the deal.
On the other hand, we have heavy weights like ExpressionEngine and TextPattern. ExpressionEngine, I must admit, is one CMS that comes the closest to what I was looking for. However, a hefty price tag of nearly $300 and a definitely complex admin panel for end users are what made me look for other alternatives. TextPattern has the XHTML like tags I wanted but has a steep learning curve.
So, at the end of the day, the CMS I was looking for simply did not exist. I had a choice of either keep on waiting for it to appear or build it myself. I chose the latter option.
When did you decide that you wanted to build your own CMS and how do you even start such an ambitious project?
Well, sometime early last year while working on a Drupal project, that idea of building a simple yet versatile CMS occurred to me again.
This time I asked myself and my partner Abdul Raoof Khan how difficult it could possibly be to get it done. We started work on the idea and in eighteen days time had a working prototype ready. We demonstrated it to friends by using our web browser to save complete pages of random websites and then retrofitting our CMS into the ripped HTML design and having a functional dynamic website in literally minutes. (Mind you, I am not endorsing the idea of ripping HTML designs, this was done only to try out our concept!)
The reactions we had from them spurred us to develop the CMS further. A few revisions latter we deployed a rather crude CMS on some of our non-tech savvy clients and they really loved the ease with which they could manage their own sites.
This is when we decided to create a full-fledged product out of it. We named it CouchCMS to reflect the ease it was supposed to provide and got down to get it completed. It took about seven more months to get where it is now and the development is still continuing.
Tell us about some of the features you’re most proud of in CouchCMS, what sets it apart from other systems?
If I had to name a single feature, it would be the ability of Couch to allow the creation of quite complex sites out of any static HTML template without having to use any PHP at all.
Another feature that distinguishes it from other systems is the way it allows the designer to create as many editable regions as he requires (and of any type).
Couch really makes the creation of ‘write panels’ (as WordPress users call them) of any complexity a breeze.
As an example, please take a look at the following two screenshots. Here is a write-panel with only one editable region defined:
While the following is a more complex one with several editable regions of different types defined:
One lesser appreciated feature is the way Couch enables to convert your regular HTML forms into completely self-validating ones, need I say without any PHP code.
Finally, I am happy to at last have a CMS that gives me a blank canvas to mould it exactly the way I wish to. Here is what you get when you do a fresh install of Couch:
I have yet to find a CMS that greets me with such a bare interface. The following is what this blank canvas will finally shape into once I am through with the site:
We do not market it this way but Couch effectively is a framework easy enough for even non-coders for creating their own CMS.
What do you think of WordPress and why should some of its users consider switching to your system?
Whether or not Worpress is a true CMS or just a blogging engine, that debate has finally been put to rest with the custom post-types support in WordPress 3.0.
WordPress is a gem of a CMS, no two ways about it. I myself, as just about any other freelance developer, have lost count of the number of sites I have done in WordPress over the last many years. However, and I say this at the risk of antagonizing many of the readers, in my opinion, it is not a ‘designer’s CMS’.
To make WordPress bend to your needs still requires an uncomfortable amount of PHP to delve into. The reason why it is so wildly popular amongst designers, to my mind, is that designers find this PHP code already written for them by the amazing developer’s community around WordPress. This could come in the form of the literally thousands of plugins available or the plethora of quality snippets being shared over the Internet.
To make my point, I can quote one instance that comes to my mind – the famed ‘Wordpress loop’ has always been around ever since you can remember it. Yet it took several years before some intrepid developers demonstrated that the loop could be used multiple times over thus creating the so-called magazine themes. And now see what a revolution designers have caused about with these magazine themes.
As for why some of WordPress users should consider switching to Couch – I have already mentioned the problems I faced myself. Going by the response Couch is receiving, I can safely assume that I am certainly not alone in experiencing those problems. If any designer currently using WordPress thinks he shares the same tribulations, he is welcome to try Couch for his next project.
Where can interested parties go to learn how to set up a CouchCMS installation?
I suggest they begin with a very detailed tutorial we have over at our site on the Building A Real-World Site example. In this tutorial we build a complete real-world portfolio site right from scratch that includes explaining the installation process too.
They can also find a very comprehensive documentation on our Docs Page.
If they happen to be Windows users, they might consider downloading a portable WAMP bundle we have over on our Downloads Page. This has everything pre-installed and only requires one to download and click it to begin using Couch.
Finally we have an active forum. If they run into any problems or have any queries, they are most welcome on our forums.
What’s your pricing system like?
Couch is free for personal and non-commercial use. Commercial use of it, currently, requires a license that costs a very modest $39 per domain (Get it for only $9 here).
I’d like to add that we are seriously mulling over introducing a core version of CouchCMS that would be absolutely free for use even on commercial sites. Stay tuned.
Where do you see CouchCMS going in the next few years? Any big plans?
We are now finding it necessary to open up an API for developers to allow them to extend the native functionality of Couch.
For example, Couch does not have a Colorpicker or Calendar popup as field types. The API would allow a developer to easily create these. This will also open up the possibility of creating addons for Couch like simple forum or e-commerce.
The idea is to make it possible for developers to add functionality to Couch and expose it as simple tags for the designers to use. Couch has been built for designers and we’ll always focus on that.
To sum up, if you or your clients are constantly frustrated with the complexity of most modern CMS solutions, you should absolutely check out CouchCMS. It offers designers the flexibility of keeping most of their current HTML designs intact and only requires a few tags to be dropped in to define content as editable.
This week only you can save 77% on a CouchCMS commercial license and start using it for your client today. Stop by our Deals Page to learn more.