Saturday, May 21, 2011

Do we really need CMS systems like Joomla /drupal or wordpress (There are many though) ??

Well from long time I have being thinking this. By definition CMS systems are for the people who have lack of technical knowledge. With most of the popular CMS systems , you can make a website in quick time .Yes true ..! That can be done for anyone who is in any technical level . Before go further, we will just have a look what are the popular technologies used in those.

  • Php (may be ruby on rails)
  • Mysql (don’t forget SQlite or postgre)
  • Jquery plug-in s (Some are good  ... But sadly some are crappy )
Just assume u downloaded wordpress and stared developing a website. What you would do is download free wordpress plain template from internet and start integrating  with embedding ur own stuff. Nothing to worry u just wanna upload a compressed format (zip/rar) of the template they given , and rest of the stuff will be cared by wordpress. After that you would need to show some upto date news /events and some feeds. Just search for internet for plugins and integrate (Very easy).

Finally ull be really happy for your product and after u host the site even everyone will appreciate you.
Week gone.. Month gone … Now almost 1.5 years of time passes since you hosted the site. You will be really happy by seeing the site traffic and all too. But think wisely behind the scene is not beautiful as u see.
When u getting more and more traffic ,the website can face difficulties to maintain. Following are the reasons.


  •        Most parts of the CMS stored in the database and you need to pass DB hit many many times when page loads
  •     Cllient computer will experience a  issue with resource usage cz of some unnecessary browser scripts ( Unorganized js code and jquery plugins )
  •       If your website has 100 pages. You have to iterate through 100 each time to find out a single page
I hope we are clear so far.
Now lets see what u actually need to do with CMS?

  • You probably need to update your articles / posts frequently once you created.
  • You might need to create a web page on the fly.
Eventually your simplest requirement is to create webpage on the fly by few clicks .Once you create , it should make menu item and should appear in header menu.
Now will see what are the main parts of web page .

1) Page Title
2) Page content

If you think a bit..Using this u can do more. Think wisely … If u make unique title, can request your content belongs to it. And again once u makes several pages, u endup with title list.
Then can’t u make that list as your website main menu?
How simple it is?  Once you created a simple core application then style it using effective template engine.
Lately we can add caching for static types , may be using simple  json cache .
Security can be main issue for you , but can manage with third party system like OAuth when needed.
Here I’m not going to explain in details .But later with ma articles ill provide a sample CMS system I developed for ma own purposes.