Drupal -vs- DIY


You say you want to build a website? It must be feature rich, flexible, extensible, powerful, and very web2.0. This is an important site, and you don't want to be locked in to someone else's framework, so you have decided the smartest approach is DIY. You have a small team of very experienced LAMP developers who have track record building successful sites. They've promised to meet your every requirement. You're new site will look and feel unique. It will not have that distasteful look of so many of these other sites built on one of the open source content management systems (CMS) like Joomla, Wordpress or Drupal. Down the road, as you extend your website, you will save lots of money as you won't have to hire developers with specialized skills in a certain CMS. Anyone with sufficient knowledge of Apache, PHP and MySQL can work on the site. A CMS might work wonderfully in many situations, but in your case, you need the power and flexibility only offered by a DIY solution.

Sounding pretty reasonable to you? If so, you are probably buying in to some common fallacies.

LockedLocked In

Using Drupal (or any other CMS) does not result in any more 'lock-in' than a home grown solution. The fact is, once you've developed your site, you're pretty well committed to whatever solution you chose unless you're up to completely re-developing the site. My question to you is which would you rather be 'locked in to', a well known, used, tested and documented system such as Drupal or something crafted up in the last six months by your team which likely has no documentation, little testing and almost certainly no architecture for easily extending functionality as the demands of your site evolve?

Smells Like Drupal

Smells Like DrupalI regularly hear folks talking about 'the Drupal look'. Drupal does come with several default themes that are each distinctly Drupal. Most websites either stick with these themes or variations of them that don't go out of their way to hide the Drupal roots. So, yes, most Drupal sites look like Drupal. That is not to say that using Drupal requires that your site look like Drupal. Drupal is completely themeable. Most visible aspects of Drupal can be customized using plain old CSS (ala CSS Zen Garden). If you truly want to tweak the details of element rendering, you can do so with Drupal's cool PHPTemplate system. At the end of the day, your site can look as un-Drupally as sites like The Onion and NowPublic.


Special Secret Knowledge

Enigma MachineAnother favorite of mine is something along the lines of, "we want to develop our site in pure PHP using open technology and standards". Yes, I've heard that more than once, I'm not making this stuff up. I won't bother pointing out to my savvy readers that Drupal is written purely in PHP and relies only on equally common and open technology such as MySQL, PostgreSQL and Apache. You already know that.

There is validity to the argument that developing a website using Drupal will most likely require some degree of knowledge of the Drupal API. If you want to create functionality that doesn't already exist in Drupal or in one of the many third-party modules, you'll have to learn how to write Drupal modules or find someone to do it for you. But there are thousands of Drupal developers worldwide. You'll have a lot more luck finding someone who knows the Drupal API than you will finding someone who knows the homegrown system your team developed.

In this modest web serf's opinion, building a website infrastructure from scratch is a matter of necessity if you'll be serving billions of requsts a day. Otherwise it's pure hubris. Invest in some time with a good therapist before making any final decisions.

a well known, used, tested and documented system such as Drupal
You might add secure to that list. You can either hope that your small team finds the holes they create. Or you can trust in the hundreds (or is it thousands) of developers auditing each other's work. -dalin

Drupal locks you in in several ways. Most notably are the conceptual lock-ins. If you don't like how stuff is done (in contributions), you need to develop large parts from scratch, which results in something similar to DIY. If you find that what some module promised, is not true in reality (many contribs pertend to work, but fail to even get running without errors), you have to DIY large parts in the end anyway . If two modules conflict, you'll end up in a DIY hackathon too. And if you find that module Foo looks and acts like This, while Bar looks and acts like That, yuo'll end up hacking either one, or DIY-ing it up yourself. All of which uncalculated for, since you probably quoted and planned a working drop-in solution, not a 40-hour-debug track. Security: I would not say that even half of the contributions are even half secure. Saying that Drupal is tested, is not entirely true either. Drupal has no official test round, nor does it go trough any security audits. Security is handled in a stumble-upon-fashion. Using the right tools: DIY does not mean "bad docmented" or unknown. Use a good framework, stick to the defaults and stadards set by these frameworks, and chances aer that you'll find even more developers savvy enough to develop on your app. Right now, there are (just a quick measurement) 402 people in #rubyonrails, versus 102 in #drupal. Both are developers channels. Conclusion. DIY, using the right tools, often brings you far closer to what the client wants, in far less time, with far more secure code. Drupal, or any other CMS is a good choice, if the end result fits close withing the default behaviour/concept/philosophy, else DIY is probably the best choice.

Drupal core is reviewed when written, it is reviewed by members of the Security team. If an 'exploit' is reported the incident is followed up on. Documentation on how to write secure modules is provided and as the team can it notifies module owners of security flaws that must be corrected or the module will be unpublished.

I had this problem once. Someone I worked for wanted to build a CMS from scratch using offshore programmers. It took about 6 months to convince them to go with Drupal.

Like you mentioned, a custom-built solution is going to create lock-in as much as Drupal — probably more than Drupal...

lets step back a moment, please...

DRUPAL CAN DO IT ALL!! oh wait, its not super man, its a CMS, which does mean that it is design for what? oh yes yes, managing content... no?

Drupal is a cms, it is designed to solve common problems, and make life easier for developers and users alike. This in no way, means it is a solid solution for everyone. I would like a show of hands of all developers ( who happen upon this site < thanks bar camp >) who have had a client know exactly what they wanted, up front, and did not need any sort of customization. Oh there is one person in the back of the room, hi how are you? is it nice up there on that yellow brick road? Once you go down the road of a cms, you must stick to your guns right? So now there's a new feature you client wants, oh wait lets see if the community has a module/addon/what-ever. You may find one "close" or even worse your client will find one "close" and say oh it shouldn't be so long to make it do x,y and z; after all it already does y and z. But perhaps x means you create a new y that relates to z?

There is nothing wrong with using a existing CMS source code, but when you ignore the fact that there are different tools for different jobs, you are being biased and incorrect. After all, do you think the core developers who wrote the CMS built it from an existing CMS? no, they did what? THEY DID IT THEMSELVES!

I understand that there is a large pool of people that use PHP and that a majority of them my not think of every single possibility, be it due to time, or lack of experience. However if you are in need of an application that does something customized to your business needs, besides allow you to edit pages, then you need to seek out an experienced developer who can meet your business goals.

To the owner of this topic, if you consider yourself a developer ( devbee.com sounds like you do ) then you should have noted the above in your topic, it is unfortunate that you are presenting your readers with your one sided opinion rather then simple logical facts ( $logic === PHP; $opinion != PHP )

Maybe I have been to harsh, after all I don't know you and you don't know me. If I have offended you, please email me and maybe we can go have a hearty laugh over a cold brew.

Best of luck to you all.

I primarily use Joomla and i'm pretty new to DIY web design, and haven't come across many limitations. Should i switch to drupal or is it just personal preference?

I regularly hear folks talking about 'the Drupal look'.STUFF-you need to develop large parts from scratch, which results in something similar to DIY.

It's true that Drupal is written purely in PHP and relies only on equally common and open technology such as MySQL, PostgreSQL and Apache.Drupal has no official test round, nor does it go trough any security audits. If an 'exploit' is reported the incident is followed up on.

There is nothing wrong with using a existing CMS source code, but you can't ignore them.At the end of the day, your site can look as un-Drupally as sites like The Onion, NowPublic or BroadBand Sports.

This are all easy to be done. Thanks for a nice post

The paragraph titled Locked In is especially true. Highlights the importance of researching the software capabilities and making sure they it can do all the things require of it, not just when starting out but also further down the line. It’s like the mafia once your in their isn’t no getting out. OK its not that bad but it is a lot of work and full of headaches.

At present there are many online player in this game .You only need apply an account ,you can completely access to the game .But there are many people played the game they wanted to get the kamas .
At first I was attracted by the cheap kamas .Because it effected the level of game ,every time it is easier to buy kamas .It is the reason I liked it .

I had not used Drupal yet but I am intrigued by some of the good reviews and good thing said about it. Wordpress do serve most my purposes though it has some limitations which have some room for improvement.

Wordpress is not going away because it is great as a blogging platform and CMS, but it has some limitations as a CMS! I think drupal is great! And I also think it is best to use it as a base for another CMS than to start from scratch, so much great work has already been done on it, why waste it and start over?

I have been using many solutions and I am about to start using Drupal.
Thank you for such a great post.

I use joomla for sure :)

I have been using wordpress only due to its plug-ins. I think that is the best feature on this planet. I am going to have drupal on one of my sites to try. Let's see what happened.

I'm not a developer, but I mainly use Wordpress as my CMS presently. I agree that WP locks you into a certain design format, but there are thousands of free and paid templates that you can utilize. The WP plug-ins seem to be akin to Drupal modules (at least, conceptially) so WP has some extended functionality. I've looked at Joomla and given some thought to trying it. Since you folks seem to be pretty savy, how does Drupal match up against Joomla? Any significant pros or cons between the two?

We tried using Drupal for our client sites, but we found the learning curve for managing the sites by the clients was too steep. We currently use a heavily-modified version of Website Baker (WB) for our custom web design projects. WB has some nice modules, but not as many as Joomla or Drupal. The big advantage of WB is how easy it is for clients to learn how to use. That saves our team the drudgery of handholding through the learning curve that ALL clients face when learning a new app. YMMV.

Yeah I'm considering picking up drupal. up to this point, I use mostly wordpress to manage my sites. I've been looking for a new CMS to mix things up a little, drupal, joomla 1.5 etc. Wordpress is also coming ou with a new ver. 2.17 Check out my cms site at Home Repair

Using a CMS is an important decision for a lot of people, because they will often be tied to that CMS for many years to come. I generally wouldn't recommend rolling your own CMS, because there are many good solutions out there that will do what you need out of the box - including Drupal. I ran across this article a while back that discusses choosing a CMS. It gives the positives and negatives for Joomla and Drupal, and it also covers basic PHP / MySQL hosting considerations. Might be worth a read...

"would you rather be 'locked in to', a well known, used, tested and documented system such as Drupal or something crafted up in the last six months by your team"

Very True.Nice article, Thanks for posting.

I haven't had much experience with Frameworks as I prefer to build my own sites and write my own scripts. I guess these frameworks offer great functionality for people who do not have the skills or knowledge to create functional sites themselves. After all, how can millions of Wordpress users be wrong?!

Article Writer Pro

Thanks for the article. Trust me when I work with my web design clients and colleagues, it is best to have a CMS that is well documented, tested, used, and secure. No matter what cms that someone uses, there is some "lock-in", but drupal has no more lock-in than any other in my opinion. I agree with you on that. I think anything you use will have some lockin, that is just normal. again thanks for the article.

Indianapolis Web Design

Wordpress is much easier to use especially for beginners. But anybody can still workaround with Drupal. -- J. Parker

As an Online Strategy company we have seen many Content Management Systems, including Drupal and DIY CMS. Our clients use a mix of all of them. We find if you think out your online marketing strategy you can make the right choice. I'm with the posts on ensuring your CMS is tested, documented and secure. Many good CMS providers also have free support and upgrades for those maintaining their website in house.

The other business needs also need to be considered, like integration to financial systems, work flow management, customer relationship management and lead nurturing programs.

Your business constraints are the biggest drivers - speed of execution and low maintencnace costs need to be considered in choosing your next CMS. Is that new bit of functionality really going to help your bottom line profit, or is the money better invested in other areas?

One client in particular chose Drupal because of inhouse capability and the need to launch on an open source platform from a marketing point of view (Their own product is also open source). The right choice for them...

Bottom line, there are many business questions, aswell as technical, that need to be answered to make the right choice.

Thanks for the informative page. www.loggedon.com.au

Wordpress is a great tool, especial if your just starting out trying to make money online. The software is easy to use, once you get the hang of it, it can take a few day to get your head around it. Blog'g can make you money by posting original content on them.

Wordpress also lets you change the look of your new site and other stuff with widgets. It keeps all your content manageable to, which is great them you have allot of pages after a few months work. It's easy to install by FTP, just create a database and upload the Wordpress file to your directory to get started publishing great content.

I have over 50 Wordpress site and they do over £4,000 a month, it only took me 9 months to do for regular cash in the bank. If I can do it, so can you guys.

I believe Drupal is leading at the moment with popularity and ease of use.Great post.

I'll surely go with Dupral.Thanks for sharing.

Very True.Nice article, Thanks for posting. I always prefer the Drupal.

You have a lot of good stuff here.This post is superb. You have a very good knowledge about this matter. The way you wrote very nice.

Thank you for this nice blog!

I’m not big on commenting, but nice post. I always found good quality information from this site! I will keep visiting this blog very often.

Nice blog!