At the outset, building a Web Content Management System from scratch can seem like a good idea. And frankly, for some of us techy types, building such a thing can sound like a lot of fun as well. After all, commercial content management systems are expensive and require a lot work to learn, configure and deploy. Furthermore, if an open source CMS is going to be considered, and you expect to have to learn and modify the code-base, why not just build one from the ground up?If the historic landscape -- littered with hundreds of CMS projects -- tells us something, its that the lure of building a CMS solution that meets an organization's needs exactly and solves one of the great software engineering problems is rather intoxicating to bright and ambitious developers. That's fine and dandy, and perhaps even wise for some, but as Seth Gottlieb describes in his excellent piece: Homebrew CMS, these lofty aspirations are often quickly brought down to earth as the complexity of implementing a useful and usable CMS becomes apparent. Seth, who is founder and principal of the Content Here consultancy and a CMSWire contributor, provides six areas that if not contemplated extensively at the beginning of the design phase can bring much heartache during implementation. The six areas are: * Versioning: A feature so common to content management that it is often considered an after-thought, versioning is deceptively difficult to implement because of the many nuances that accompany the act of versioning content. It is not as simple as check-in/check-out, etc. A JCR compliant repository can help with the nuts and bolts of implementation, but it cannot foresee all the different versioning strategies that will need to be supported. * Localization: With audiences increasingly becoming global and in regions such as Europe where most mid-sized companies cater to multiple cultures localization has become a critical feature. The unfortunate truth is that many smaller organizations still don't think about how their content should or could be displayed to non-English speaking audiences until it is too late. Attempting to build localizing in a project is a goal Seth rightly points out as one not for the faint of heart. * Preview: As Seth states in his article, "Authors love preview". As a Web writer myself, preview is absolutely essential to getting my work done within a decent time-frame. Ignoring preview is a great way to insure that no one ever uses the system. While the implementation of preview is arguably easier than versioning and localization, it is considerably more tedious. There are an almost infinite number of use cases that must be satisfied for preview to be useful. * Deployment and Dependency Management: The invention of the hyperlink is what makes the web a web, but it also makes publishing web content infinitely more challenging than publishing a book or magazine. A content management system must not only publish individual pieces of content, it must also manage the relationships between all the pieces of published content. If this was not challenging enough, the rise of Google and the value of Pagerank have made link management that much more important. * Usability: The CMS developer who builds a truly usable content management system will be the first. While Seth is correct when he says that usability is the primary reason that many homegrown content management systems are abandoned, usability is also the primary roadblock to adoption within an organization. If it is more difficult than a word processor and an email client, chances are people will ignore it. * Access Control: Controlling access to content becomes more important as the size of an organization increases. Unfortunately, the time required to manage access control also increases as an organization grows. The challenge is making this an hour of work versus a day of work. For more of Seth's angle on the Build vs. Buy question we encourage you to jump on over to the original article. Seth goes into more detail on the above topics and also provides some excellent recommendations for those of you who are currently struggling through this debate.