Am I Drupal or Not?
October 18, 2006 2:52 PM   Subscribe

What are the downsides to using Drupal versus a roll-your-own framework in a high-traffic commerce site that will need to be customised quite a bit in the future?

The programming team that I'm in are currently evaluating the possiblity of using Drupal as a framework versus rolling our own (yet again). This is for a commerce site, not a community site. We have heavy traffic and can't skip a beat with sales when we switch to our new system, whether Drupal or home-grown.

Drupal first came up as an option because we are under a severe time crunch and need a system that we can customise to our heart's content. After quick evaluations of the available modules we've determined that we're going to have to write our own modules for ecommerce, shipping, affiliate system and other important areas.

Is there a benefit to just using Drupal as a framework and writing most of our own modules? Or are we barking up the wrong tree? Note that no member of our team has any real Drupal experience but are fairly proficient with PHP itself.
posted by melt away to Computers & Internet (10 answers total) 2 users marked this as a favorite
 
Wow, I was just considering posting a similar question about CMS's in general.

I'm getting up to speed in Drupal right now. It is indeed quite flexible, but my experience with every CMS so far is that it takes more time to actually learn the architecture behind the thing than to roll-your-own. The payoff, I imagine, comes from having become so familiar with the CMS that you know exactly what functions/objects/files/etc to go to for what.

So I guess I'd say either plan to do an overnighter or two (seriously) to learn the thing as quickly & thoroughly as possible, or just roll your own. The advantage to biting the bullet & learning Drupal now, I suppose, is that you'll be better prepared to leverage what you've learned on the next go around. But considering that you'll have to write so much of your own modules anyway, this may not be the best project to learn with.

For what it's worth, I'm finding Drupal to be the most sanely organized and least byzantian CMS I've worked with so far. And the online/community documentation is actually pretty good, unlike others which seem to have only sparesly filled-in wikis.

One other thing -- Drupal isn't, strictly speaking, object-oriented (though it's "hooK" architecture attempts to mimic some object-like functionality). For me, this has made it easier to learn. For others, it might be more of a stumbling block.
posted by treepour at 3:28 PM on October 18, 2006


Er, I meant "byzantine" when I said "byzantian".
posted by treepour at 3:34 PM on October 18, 2006


Check out ExpressionEngine, which is quit nice and powerful and has a SimpleCommerce module already included (for paypal) with a full blown ecommerce module due out soon. You may or may not like it better than Drupal.
posted by Brandon Blatcher at 4:14 PM on October 18, 2006


Well, there are exploits that come up in Drupal every now and then. Since it's a well known piece of software, a lot of script kids will have automated bots looking for it whenever there's new zero day.
posted by o0o0o at 9:43 PM on October 18, 2006


I used drupal for our virtual appliances directory. It's a good framework, but we didn't need a lot of the community functionality, and I might not use it again.

Problems: Although modular, I often had to hack the core code. Workflow features are absent in 4.6, new in 4.7, not sure how robust they are yet. You need to keep up on security patches. At over 1M page views per week, we needed to turn on caching, and the internal caching system is wonky. The flexinode system doesn't have inheritance or private fields, which made things more difficult for our needs.
posted by troyer at 9:49 PM on October 18, 2006


I second Expression Engine. I tried out Drupal for a bit and dropped it like a hot potato.
posted by gomichild at 10:57 PM on October 18, 2006


The short answer is, you can customize Drupal to your heart's extent, but it does take some time to learn it on top of what you know about PHP/etc, so whether it will actually save time for you really depends. In my case it took a solid week or two, plus a looming deadline on a large client project...and I'm still learning more about it with subsequent project we've used it for. It's not a system for dabblers.

In the end though we grew to really appreciate Drupal a lot, from the extensibility to the very active community and organized community surrounding it.

(Incidentally, every popular CMS/blogging system out there has exploits so saying Drupal has exploits is not a valid argument against it. And they do patch up security holes very quickly.)
posted by derMax at 11:21 PM on October 18, 2006


..organized and active community, I meant to say. (grr)
posted by derMax at 11:22 PM on October 18, 2006


Every popular CMS/blogging system having exploits would seem to be a pretty valid argument for rolling your own. Unless of course, you don't think your team can do any better. But then again, I'm kinda biased against php that way too.
posted by mock at 2:59 AM on October 19, 2006


honestly, building an ecommerce site with drupal sounds like a nightmare. you say you'll have to write ecommerce, shipping, taxes, affiliates... that's a lot of work just to gain some handy modules (which still will need to be customized) and to justify the time to learn a new framework.

my fear would be that the client wants a feature, which should be easy, but ends up sucking up huge amounts of time. (can you make the survey an AJAX survey so the page doesn't reload?) or you have performance problems - and it's hard to optimize a system where major parts are unknown.

i've found that a good templating engine (e.g. Smarty) along with some helpful routines (or objects) to get stuff in and out of the database is the best framework of all.
posted by kamelhoecker at 7:53 PM on October 19, 2006


« Older More stone knives, more bear skins...   |   Can I sell a custom-built MAME cabinet? Newer »
This thread is closed to new comments.