Which content management system?
Feb 9th
We are a web development company.
We create software.
From the start of our company, we have focused on specialized custom web development work mainly using open source technologies. Most of our work has been using popular Internet technologies including PHP, Cake PHP and Ruby on Rails. We have used these technologies successfully to deliver quality solutions from the ground up for the needs of our clients.
However a recent trend and something that we are recommending to more and more of our clients is a website that they can manage themselves. This us done using a Content Management System(CMS). CMS solutions allow our customers to manage the contents of their sites, while we cater their custom requirements.
Sometimes, clients, both end users and development companies come to us with the idea in mind already that they want a Content Management System for themselves or for their client. In that case for themselves or for their client they usually ask for Wordpress or Joomla and we build on top of that. This is an indication how popular those two systems among the web community.
Before deciding which Content Management System (CMS) will best meet your requirements we have provided some information here to help you know which might work best for a given scenario. These are notes about how we feel about each of these systems. All of these are freely available open source systems; we have installed and tested each of them and are familiar with the internal architecture and workings. In most cases we have them in production for clients. What we have written here may not 100% correct so your comments and suggestions are highly appreciated.
Wordpress - Examples of our work
The wordpress web site [www.wordpress.org]
Wordpress is a simple but powerful blog aware CMS. With a little knowledge once the site is up you can start creating content. The interface is easy to understand and It has very good support for content management.
Wordpress has many commercial and freely available wordpress templates can be used and modified for your site. There are also many useful plugins contributed by the Wordpress developer community. These can be simply installed and used or modified for specific needs. Because of its standard way of doing things google search engine can easily index pages and these pages can appear on google within couple of days after a site is released. When it comes to extending Wordpress for custom requirements, Wordpress is less flexible than other options. Plug-in modules can be built, but we feel, it is not as easy or straight forward when there are lot of custom requirements compared to some other options.
One example of a site that we have done which uses Wordpress, but which also uses extensive custom application development is FreedomTravel4You.com. In this case so far, rather than customizing Wordpress, the customized modules where built outside of Wordpress. However as budget will allow additional integration between the custom code and Wordpress will be done.
Joomla -
The Joomla Website [www.joomla.org]
Joomla is another popular and matured product which mostly focuses on content management. Like Wordpress, most people know the product since it has been around for a long time. It has a sensible flow of managing content and with some advance knowledge you can extend it for for custom needs.
When you start to touch the code however, you will learn that the code structure is brittle and clumsy. We feel Joomla doesn’t have a good modular architecture. We do not feel good reading or writing joomla code.
Another down side is the limitations within its template system when compared to other content management systems. The Joomla template system is not easy to modify when making a pretty looking web site for the average skilled web developer.
The core system of Joomla is also very complex. This puts high demand on server resources. If the database is not adjusted for better performance and if a couple of fancy external plugins are added, chances are that the site will break down when considerable amount of traffic begins using the site.
We are comfortable doing Joomla sites if there is a specific requirement which it is the best suited for, if the project is already in Jooma, or if the customer is already familiar with Joomla. If none of those conditions exist, we find our selves steering clients towards other options.
Drupal -
The Drupal Website [www.drupal.org]
Drupal is a content management system (CMS) + a platform which you can use to build powerful web solutions.
The architecture we feel is flexible and extensible compared to Joomla or Wordpress. We see lot of good features in Drupal and the ease of managing content. Drupal provides a module system to extend the core functionality and also to add new features. There are also many community provided modules that can be used for specific requirements. And if we can’t find something that meets the customers requirements, we can write our own modules for custom requirements. The flow of content handling is easy for the content editors. However as with other well modularized systems, when it comes to development, there is some learning curve. We think that is reasonable for the flexibility and the clarity it offers for serious development. New developers will need to try and experiment before Drupal can be understand it well and used fluently. Here is an interesting review comparing Drupal, Wordpress and Joomla http://www.chapterthree.com/blog/zack_rosen/what_drupal_isnt
SliverStripe CMS - Examples of our SilverStripe work.
The SilverStripe Website [http://www.silverstripe.org]
SilverStripe is again a well modularised PHP5+ content management system. It is relatively new but getting lot of attention in the content management system world. SilverStripe has a simple and rich feature set for content editing. It also offers the ability for the developers to extend its functionality by using it’s underline Sapphier framework. This framework allows developers to write modules which extends the base system for custom needs in a straight forward manner. There is already an interesting set of modules provided by the silverstripe community that can be used out of the box and changed according to meet the needs of clients. The flow of content editing is really simple that even a novice user can easily understand how to use it. One downside we see with SilverStripe is that since it is still a relatively new product, there are limited resources for learning to develop on the tool. It should be noted that lot of good materials are coming out from the very enthusiastic developer community.
The above all are PHP based content management systems. From the Ruby on Rails world there are couple of content management systems that are interesting. One caution about Ruby on Rails content management systems is that most of them are in active development and are still not well matured.
Radiant -
The RadiantCMS website [radiantcms.org]
Radiant is a Ruby on Rails based content management system that is well suited for small teams to manage their content. It assumes some programming knowledge from the content editor also. In practice it is used by professional Ruby teams to manage their contents. If we are managing the site ourselves, then this is a great tool, if we are turning it over to the client to manage however, for now, we tend to recommend one of the PHP based options.
Browser CMS -
The BrowserCMS website [www.browsercms.org]
This is again a relatively new Ruby on Rails based CMS solution. It allows you to build on top of the content management solution with the help of Rails extension system.
We hope the above review will help us to decide which CMS system best suited for a given scenario. No one single product will not play well for every scenario; we have to decide together with our clients what is the best tool for a given job.
When not to use a CMS
Just as it is important to choose the right content management system, it is also important to know when not to use a content management system.
We have seen projects where people have done things using a content management system which should have never been done in a content management system, and which should have been done using custom code.
Publishing flexible content is done very well in a content management system. Transactional Processing such as accounting, Customer Relationship Management, ERP type systems – things which are highly structured, maybe should be managed using some other type of application or even custom code.
We add this caution because we have seen customers and developers alike try to use content management systems for things which they where never designed to handle. In the end they ended up with expensive projects which don’t scale, or which can never help the customer reach their end objective.
Please contact us if you have a project you are considering doing and lets discuss it. Maybe we can save you a lot of trouble down the road whether you choose to use our company or not to do the work.
Wordpress MU how to redirect non-www to www
Nov 17th
You installed Wordpress MU on Apache and wrote few blog posts. Now when you go to your site by typing the www version of url (ex: www.yourblog.com) the url automatically get changed to non www version? But you want to get the www version instead?
Ok. This is what you have to do
1) Login to Wordpress Mu admin
2) On left side menu “Site Admin” -> “Blogs” and click on your blog
3) Change site url from http://yourblog.com to http://www.yourblog.com
4) Scroll down and press “Update options”
Now all non-www requests will be redirect to www version.
(The procedure is similar in regular Wordpress where you need to change the “Blog Address URL” in admin -> Settings -> General)
Of course to work this you need to have apache mod_rewrite installed and activated on your server.
Keeping only one url version is search engine friendly. Say you allow your site to be accessed by all these urls. www.yourblog.com, yourblog.com and yourblog.com/index.php. All these point to a same page. This can be lead to pagerank splits, Backlinks split and lastly you’re risking getting filtered for duplicate content by the new filters at Google.
For these reasons it is better you keep either www or non-www version activated but not both.
Determine the best way to automate Sitemaps
Nov 16th
In simple terms, a sitemap (or site map) is a list of all the pages in your website. Sitemaps provide two benefits: easier navigation (for visitors of your site) and better visibility by search engines.
With the rise of modern SEO techniques the importance of the sitemap has been growing. Sitemaps are the best way to inform search engines about changes on your website.
As a development company, we always apply current SEO techniques on our customer’s websites to ensure that they get top ranking on search engines. Not only on Google, but Yahoo, Bing and Ask.com etc. as well.
Including sitemaps is one of the important tasks we perform when developing sites for our clients. And this is done either manually or dynamically according to the customer needs.
Typically a good site with lots of content changes regularly. In this case it is expensive and tedious to continually update the site map. For this reason, we feel that in some cases it is important to be able to auto generate a sitemap.
We evaluated some sitemap auto generating tools and following are some of the solutions we like:
- Google XML Sitemaps [ http://wordpress.org/extend/plugins/google-sitemap-generator/ ]
- It is a plugin for Wordpress sites, which automatically updates the sitemap and notifies all major search engines every time you create a new post/content.
- Addme.com [ http://www.addme.com/ror-sitemap-generator.htm ].
- An online tool dedicated for sites developed using Ruby on Rails (ROR)
- Google Site Map Generator [ http://www.neuroticweb.com/recursos/sitemap/ ]
- Another simple online tool to generate site maps.
- PHPClasses.org [ http://www.phpclasses.org/browse/package/2612.html ]
- A class library which can be integrated with PHP sites.
It is obvious that selecting a sitemap generating mechanism is depending on several facts such as the nature of the site, sever side technology used etc. So making the correct decision is up to your experience in SEO and web development team.
Contact us if you would like help generating a sitemap for your site, have general web marketing, seo, or web design questions…
RDFa vs microformats for Google Rich Snippets
Nov 16th
We are in the process of implementing Google Rich Snippets into a customers web site. Specifically to provide ratings to travel vendors and travel destinations, which will appear in search results on Google as google snippets. These will be delivered in Cake PHP. Also we are considering using it for some product ratings for e-commerce sites delivered in Ruby on Rails. We may even consider adding it to WordPress sites as a way of rating the content described on the page.
Of course the immediate concern was which technology to use microformats or RDFa? Not that it should be a big concern but we have to support whichever technology we implement.
Searching microformats vs RDFa on, brought up a ton of articles, and in depth debates on the subject.
Understandably so, since microformats appear to be more adopted, and the other is developed by W3C.
I think Googles approach is a good one, they support both of them so we can use whichever standard we prefer.
As a development company we inherit a lot of work started by other development companies, so we will also support both. If we are creating or adding them from scratch to a site however, we will choose RDFa.
Initially I thought the opposite because microformats seemed more intuitive and easier to implement. After more research however, it seemed that RDFa would win out in the long run, and be more flexible. No one can know for sure though and I guess the best solution for everyone would be for them to just merge as a standard.
For more detail on the subject Evan Prodomou has a good write up RDFa_vs_microformats
How many links are there to my site
Nov 13th
Unfortunately the tools used to do this don’t always work perfectly, but a few simple ways to check the links to your site are:
Checking your links on Google:
link: yourdomainname
example:
link: ibcscorp.com on google
Checking your links on Yahoo: (same way)
link: your domain name
example:
link:ibcscorp.com on yahoo
This is very trivial perhaps, but on Yahoo, if your site hasn’t been crawled or indexed or has no results, then you will get an error message. This will in turn give you the opportunity to submit your site for free to Yahoo. You have to have a Yahoo ID to do this it is kind of a pain.
This will then put you in the cue to be crawled by Yahoo. I am sure if you wait long enough it will happen anyway, but if your site is new this will help speed things up. Even still they say to expect a delay of several weeks before your URL is crawled, unless you pay them 299 in which case they will do it in 7 days.
Checking your links on Bing.com (was MSN.com) is again the same thing.
link: your domain
example: link:ibcscorp.com on bing
Like Yahoo, if the page isn’t found, it can be entered at this point, again it may take some time for it to be indexed.
Determining where you are at for web marketing
Nov 13th
Before you start any program or set a goal; it doesn’t matter if it is an exercise program, weight loss program, or marketing program; you have to take baseline measurement of where you are.
You also have to take measurements along the way in order to determine if what you are doing is working or not.
Over the next several posts I will be reviewing tools which help determine your effectiveness on the web, and then how to put together a program to improve that.
A glance at “Test First Development”
Nov 11th
The classic model to building software is, “code it first and then test to find errors”. That is how most of us started software development. In fact that is the practice most developers and development companies follow. There are software companies I know which have lengthy quality assurance processes and huge teams with QA people and testers but still what they simply do is “write it first and test it second”.
This type of testing keeps the developer away from testing. Normally developers don’t like to consider themselves as testers. Although if the developer himself performs testing, it is less likely that he/she will exercise or discover every possible edge case. Developers are normally over confident about what they code; they blindly guess it will run without any problems. However, that is not true in almost every case. The bugs in code can pop up at any time even after years of operation in production systems. It is cheaper to find the bugs and fix them early in the project life cycle than correcting them later after you put the system into operation.
The test first development (a.k.a Test Driven Development TDD) as opposed to code first development emphasizes writing the test code before you write the actual implementation code. The tests are written for a particular piece of functionality know as a unit. (Hence they are known as unit tests). Usually this is done by the same developer who then write codes for the functionality which is under test. The developer even before running his code can first run the test to find it fails and then write enough implementation code to get the test pass. Then she goes to next step. Again writing tests for the next unit of functionality, running the test, watching it fail, and again writing enough code to make it pass. He continues this cycle until all the customer requirements get implemented. The final outcome of this process is an operational software which is fully tested and confirmed as bug free. Because the tests were written for the functionality of the system, the tests can also serve as a documentation.
Test first development got lot of attention and buzz in recent years. These days, writing code without first writing tests is generally considered as a bad practice. However it is still the most common practice.
Starting form this introduction, I will write few posts on test first development. Specially focusing how test first development is done using Ruby on Rails. Test first development can be done in most current popular development languages. I am choosing Ruby on Rails for these articles because that is the development platform I use most, and what I am most familiar with.
Laknipayum.com becomes iBCScorp.com
Nov 9th
Laknipayum has had two separate divisions since shortly after it’s beginning. After years of providing web applications and development for our clients, Laknipayum has split off its web development services into its own separate company iBCScorp.com.
iBCScorp.com will continue to provide world class service for its clients. iBCScorp.com specializes in Ruby on Rails development, Cake PHP development, PHP, PostgreSQL, MySQL, LAMP, as well as tools like Joomla and Wordpress. iBCScorp as an Internet Business Consulting Company also provides expertise and advise about how to make your company successful on the internet including web marketing, application architecture, development processes and project management.
Laknipayum will continue to operate as an exporter of goods from Sri Lanka and will continue to help its clientele establish export markets for their goods. Some of their products include Coconut coir products, rubber products, and a variety of hand crafted items.
Web Marketing!
Nov 9th
Ibcscorp.com cares about the success of its customers. We provide web marketing consulting and services to help maximize the benefity that our clients can get from the Internet. Some of our leading consultants have been using the Internet since as early as 1992, and have created and worked in many successful on line businesses.
Our goal is to work with our clients to help them determine an appropriate marketing budget for web marketing and then to maximize the effectiveness of that budget. We can’t do it all for you, but we can do it with you to help improve your success.
