Drupal 7 Not Ready for Production Yet

The last few days I have been prototype testing a new site for a client. Some of the requirements for this site is multilingual support, referral management and simple eCommerce. Before this project, those are areas I haven't really touched for Drupal 7 yet. Unfortunately my tests borked pretty badly right away. Here is a quick summary of my experiences from that.

Firstly there is no module yet for automatization of referrals. The only module I found was the User Referral module, however a stable version is only available for Drupal 5. There is a dev version for Drupal 6, but it hasn't been worked on for almost a year. It's actually quite surprising. For a platform that has it's heart in community building and social networking, strong referral support should be quite a common feature you would think.

Forget Multilingual for now

Next I gave the Internationalization module a go. I have been stopping by the project page for time to time, checking up on how the progress is going. There is an alpha3 version available, so I downloaded and installed it. The configurations seems to work pretty good, not many problems there. Some new options as well. I really liked how well integrated it is with the redesigned admin UI in Drupal 7. Big applaud to the team for that.

When I had done all the configurations, including enabling multilingual support for the Story content type, I went to the front page of the test site. The theme, Bartik, was a complete mess, all graphics and most of the formatting was gone, it looked awful. Flushing the caches didn't help either. This was a fresh installation with only the i18n module enabled so not much to put the blame on.

I know that the team is working really hard to finish it and there are also several very interesting new multilingual projects for Drupal 7 in the works. That in combination with the improvements to core leaves me with no doubt about that once it is stable it will provide a great improvement over Drupal 6.

At this point I realised that it would be impossible to build this site in Drupal 7. Even though the site is quite simple, multilingual support and referral are critical features and thus those boxes can't be ticket at this point.

Update: In a comment to this post Lars reminded me about Gábor Hojtsy's excellent overview series of the improvements with the multilingual support in Drupal 7. If you haven't read it already it is well worth it as it will show you what is to come.

All isn't This Bad

The lesson I learned from this is that Drupal 7 simply isn't ready for many production site projects yet. Many important modules are still missing in stable enough versions. It will take some time before they are ready and there is not much to do about it besides helping as much as we can.

It is also important to have in mind that Drupal 7 was only released a month and a half ago. A lot of modules are already available, many even in stable releases, while many others are usable even in they dev, alpha, beta or RC versions. Compared to the state of Drupal 6 at the same point after its release, this is eons better.

Depending on your needs, resources and skills you have a choice to make before you opt to build using Drupal 7 or not. Its quite easy to quickly throw together a test site and quickly give the critical modules a go to see if they hold up, check the issue queues for activity as well. If you have to opt for Drupal 6, keep an eye on if the modules you select have a Drupal 7 port or there is one planned. That will be important when you later on want to upgrade the site to it.

Part of why I created Drupal Mill was to be able to experiment in a real environment with Drupal 7, really see how much you can build with it using as little custom coding as possible. So far this experiment has been very positive for me. But I get away with having a lame design, weird layouts and other things a mission critical site never would.

What I will do from now on though is to blog more about these experiences here, both positive and negative. My hope is that these posts will give you a better insight in the state of modules for Drupal 7, what is usable and what is not. I also hope that it will help when you make decisions about what to use for your own projects.

Let me know what you think about posts like this. Would you like more of them?

Comments

thanks. That was very helpful. A lot of modules have Drupal 7 versions in dev or alpha or beta but with little up to date info on how usable they currently are. If only module developers would be required to fill out some kind of status field indicating stability when they upload something to CVS/GIT! ;)

I make heavy use of i18n and didn't know it wasn't necessarily usable yet so that was especially helpful.

dalin's picture

That's what alpha/beta/RC means:

Alpha - The maintainer believes that the module only partially works. There are likely big chunks that don't work at all. There definitely isn't an upgrade path. Only install if you are willing to get into the code to fix/build things.

Beta - Things basically work. There are a few known issues. There is likely an upgrade path, but it is probably buggy. You probably still need coding skills to use it.

RC (release candidate) - The maintainer believes it to be ready for release, but needs a few other people to try it out in different configurations to be sure.

tsvenson's picture

I tend to agree with Christopher about this. Before I start using a module i do extensive testing on it on a test site. I have often found that the especially the alpha and beta labels are quite misleading. Many of the modules used here on Drupal Mill is only available as dev releases, but are still much more usable than many other modules that are in beta versions.

It often depends on what feature you need in the particular module. I have for example used the Views module on production sites since May last year, long before an alpha version existed for it. For what I needed it was rock solid and thus usable.

Also, project maintainers are in control of what releases are visible on the project pages and that include the dev version as well. A short status message about each version listed would be very helpful as an indicator. This message could also include info about what the developers need most help with, such as testing a specific feature of the module.

geerlingguy's picture

For referrals, there's a paid option that works pretty well... but costs money, at http://www.moneyscripts.net/ - I haven't used it on D7, but I had to use it on a D6 site once, and it seems to be a pretty solid solution.

But I've found this to be the case as well - in terms of building out a site quickly, there are a few gaps in Drupal 7 right now that will take some time to be filled in properly.

tsvenson's picture

Thanks for the tip, will check them out. In this case though an external solution would not really have solved the problem as the referral needs to be integrated with several other features as well as business logic.

A nice thing with the Referral module for D6 is that it supports User Points as well. If I get some time over I might give it a shot to try and port it to Drupal 7.

George Baev's picture

Internationalization module does not work. Period. This module blocked a bilingual web site completely . We consider switching back to Drupal 6.

tsvenson's picture

As I mention in the post, the team behind the module is working very hard on making it ready. The admin UI seems to work pretty much as planned already, hopefully it is not too much left to do to on it now.

Best way of speeding up this is to help testing it and report all problem discovered to the issue queue.

Pasqualle's picture

If you base your decision on contrib modules (like user referral), then you can tell Drupal 6 is not production ready.

tsvenson's picture

I take it that you meant Drupal 7 and not Drupal 6 with your comment?

As I say in the post, the choice you make is ultimately down to your needs, resources and skills. If those are limited, then so are currently your choices for using Drupal 7 to build sites with. On the other hand, if you can afford to pay for development and/or are a really skilled PHP developer, preferable with Drupal module developments skills as well, then using Drupal 7 is a much more viable option.

droplet's picture

Yes, that's true, it's not really for quick & low budget development

Yannick's picture

http://drupal7ready.org will tell you if modules are ready for Drupal 7 and if it is stable.

tsvenson's picture

Nice idea, but not very useful since you need to know the exact name of the module you want to check up.

What I would like to have is an easy way of filtering when searching for module and only list those that are in stable releases.

lars's picture

I agree that the alfa3 version of i18n is definitely not ready for use yet. However, it is possible to make a very basic multilingual site without i18n:

  • you can translate nodes and fields
  • you can construct a multilingual front page using Views
  • and have a multilingual "menu" using a Views block

Views provides a filter to select only nodes of a certain language, or the user's current language.

So if you need a Views block with links to nodes, you could in the content type include a text field called "Menu item title" and have views show the translated text of that field, linking to the full node.

Localization update also seems to be working fine, although only in alfa3 (like i18n).

tsvenson's picture

I did try without the i18n module as well, but since core doesn't handle navigation in different languages well it fell on that. Plus that it is much more complicated for someone that is not that experienced with Drupal.

The problem with Views is that it doesn't have any good support for language fallback. At the moment you either get only the nodes in the language you are viewing the site in or all nodes in all languages in lists. Its a little annoying. Hopefully some day there will be a fix for it.

lars's picture

In Drupal 6 you can use Select translation to have language fallback. Unfortunately, it seems to be not maintained at the moment. However, the code doesn't look very complex, so it should be an easy job for someone with a little programming skills to port to Drupal 7. There's also a patch which allows you not falling back to original language, but only for example to the default language.

I haven't done a lot of experimenting with language negotiation in Drupal 7. But I didn't have problems in Drupal 6, and I understood it should have improved considerably in Drupal 7. There is a great article here about this subject: Drupal 7's new multilingual systems (part 1) - The basics

tsvenson's picture

The Select translation module pretty much covers the features I would like to so. Hopefully someone will take it over and port it to Drupal 7 as well.

Had forgotten about Gábors excellent overview of the multilingual improvements in D7. Will update mu post with a link to it. Thanks for the reminder.

Craig's picture

I'd argue that Drupal 7 IS ready for production. The title of the original post may simply be inappropriate for the content. The post goes on about how specific modules are not ready for D7 which is a completely different issue.

What the post is suggesting is that a site may not want to move to D7 because some necessary modules are not D7 production ready. As you can see, this blog along with my Drupal blog, are both using Drupal 7 in a production capacity. D7 core is perfectly suitable for production in this case.

I cringe when I see titles like this because it can be misleading to folks who aren't tuned in to the community and understanding of how Drupal operates. Drupal 7 IS production ready and it simply may be a matter that Drupal 7 isn't (yet) the right version of Drupal to use.

tsvenson's picture

As Pasqualle and lars piont out, it is not Core that isn't ready it is because so many contrib modules still aren't up to scratch yet.

In my post I writ about this when I say it depends on your needs, reasources and skills if Drupal 7 is possible to use for your project. Your needs when creating your blog site wasn't that complex, the modules you needed to create it was stable enough. Also you obviously have good Drupal skills and are able to sort out many issues yourself.

That is not the case for everyone that fancies using it for a new project. Especially this is true for commercial use where they often care more about that it works the way they want than that it is built on a particular platform.

Bernard Shell's picture

Well, to be bluntly honest, Drupal 7 is indeed a clusterfuck; it's basically the Windows Vista of Drupal. 3 years of development, rampant over-engineering, misplaced efforts... I am even wondering how I'll put that one at work. I'll hold on D6 until D8 probably, or better... move to something else, like some did... http://developmentseed.org/blog/2011/feb/22/open-atrium-and-managing-news-acquired

tsvenson's picture

I don't agree with you one bit that Drupal 7 can be compared to Windows Vista. I would rather say that the Drupal community managed to avoid that. So if Drupal 6 is Windows XP, then Drupal 7 is at minimum comparable to Windows 7.

The stability and availablity of contribs has nothing to do when it comes to the quality of Drupal Core. Modules and themes are more to be looked at as drivers and programs you install on it. That is the only time you can find some similarity to Vista, but that will not last for long, that I'm sure of.

Andrew Wasson's picture

I'm pretty sure you posted a variation of this on Drupal.org but as was pointed out it isn't a fair assessment.

Drupal 7 as compared to Drupal 6 is more like Windows XP as compared to Unix/Linux. D7 is a much more flexible core (once you lift the hood and start to get to know it) however at the moment you are still looking at it from the old (Drupal 6) perspective. Also the vendors (module builders) you've come to rely on haven't caught up to it so all of your favorites might not be available.

While you wait for the documentation, community resources and modules to catch up to D7, you're free to continue developing production websites in D6. I'm building 2 in D6 and one in D7 at this moment but I wouldn't slag D7 because I don't know it as well as I know D6... That's just poor form.

Cheers,
Andrew

lars's picture

I agree, and I think that is also what Pasqualle was saying. It is important to distinguish between Drupal 7 and contributed modules which provide extra features besides the basic functionality.

UPDATE: Sorry, I put this in the wrong thread, it was meant as a reply to Craig's comment.

Alan's picture

Yes, please, more posts like this in the future. By the way, it's = it is.

David's picture

In my opinion D7 can handle standard sites right now pretty well. For complex features that aren't in core you'll likely have to wait for several more months before they're stable enough. Including internationalization. Internationalization in Drupal is insanely complex... I dove into that code to explore it before, it's definitely not a simple affair.

Most of the super essential modules are up and running like Views, admin menu, menu block, pathauto, ckeditor, token, redirect, analytics... go much beyond that and you're bound to hit barriers this soon after release.

Ryan Cross's picture

I'm really surprised to read this post. I've built several sites on D7 already and I would definitely stay that it is ready for production. I recently did a site with 1M+ visits per day all on D7 (we were under pressure but got it all going in <2 weeks with only a few minor bugs, which have all been fixed now).

For non-developers, Drupal is always going to be dependent on the status of its contributed modules, but to say its not production ready is just wrong. Each project needs to be evaluated based on its requirements and its suitability to existing code, but by your standards, Drupal 6 isn't ready yet because the abandoned referral module doesn't have a stable release yet...

tsvenson's picture

No Ryan, this post is most certainly not troll bait. Saying that you created a 1M+ site in Drupal 7 doesn't really add much to this discussion if you don't also disclose the functionality of it. For all I know it doesn't use any contrib modules and then it is of course not a problem building that site with Drupal 7.

In the text I talk about "Depending on your needs, resources and skills you have a choice to make before you opt to build using Drupal 7 or not." If the features you need for the new site is available, and stable, for Drupal 7, then of course Drupal 7 is ready for that particular site. However, if the features aren't and they wont be for many months, how can you then use Drupal 7 to build that site? The client you build the site for is not interested of waiting until the modules needed are ready, they want their site up and running as soon as possible. For them this is firstly a business decision.

I think a common mistake some in the community does is to not understand the business needs when selecting platform to build a site on. Yesterday I was watching Acquias Under the covers of Drupal Commons - the "Instant Community" distribution webinar from November 11 last year. In it they talk about that Drupal Commons will be ported to Drupal 7. However, they don't expect it to be ready until summer, or even fall, this year due to that the modules they need wont be available in stable enough version until then.

We who are passionate about Drupal need to better understand that just because a new major Drupal version is released, it simply can't be used to build any site. The whole surrounding ecosystem needs to catch up with it too. That especially includes contributed modules. Until enough of the important modules are ready, and stable, Drupal 7 simply has limitations when it comes to the sites you can build with them.

Let me point out again that traffic is not an indicator of how ready Drupal 7 is for production sites. Available features, stable contributed modules, are the measurement on what kind of sites you can build with it. For many projects Drupal 6 is still the right choice for quite some time to come. That is not trolling, it is a simple fact.

Ryan Cross's picture

Thomas, your reply seems to give a quite different stance than your original post (and its title).

To your point about contributed modules - contrary to what it might seem like some times, there will never be a module for everything a client wants (and how they want it) so there will always be a question of whether there are modules available that suit your project. People also seem to forget that sometimes clients need to pay for development work. They may not want to wait several months for someone else to bite the bullet, but they may also not want to have to pay someone to do the upgrade on their site which can quite often be more expensive - that's a business decision too.

Perhaps a better title for this post would be "D7 not ready for multi-lingual sites" or "D6 is still the right choice for new projects" or something a bit more descriptive and less misleading. I would agree with Craig that this can be damaging for less knowledgeable people in our community

Also, for reference the site we built with high traffic is http://qldfloods.org - a community driven effort to the emergency response to that disaster. We did try to use core as much as possible for performance reasons, but we're still using many contributed themes and modules with key ones like views, pathauto, field permissions, google analytics, etc. We also built a mobile interface as well, but couldn't get the server configuration right in time to make it useful which was partly a few bugs in the modules and partly just time to get it working. I should point out that we also upgraded the legal module for use with D7 as part of that project, which should hopefully highlight how each of us should be part of this situation.

tsvenson's picture

Ryan, my stance haven't changed. If you read the second part of the post you see that I make clear that I am not talking about every kind on production site. I give a brief summary over contrib status, including that in many cases even dev releases are usable. Then I also point out that a lot depends on the needs, resources and skills of the person/organisation wanting to build the site if Drupal 7 is a viable choice or not for them.

When I wrote this post one of my goals was to give a reality check regarding the combined status of Drupal 7 and contributed project based on my own experiences using it for almost a year. I also wanted to give some quick advises about what you should do before you commit to much effort into the new project. I believe I partly archived that goal, but I also realise I need to explain this better based on all the great comments it has received. I am working on a follow up post that will be published either later today or tomorrow that will further dive into this topic.

CinemaFunk's picture

I agree. I've been testing D7 for sometime now and some very essential modules are still conflicting or are not available yet. But in other aspects, the new build is great and a little more user friendly. But I have a feeling that I'll be sticking to D6 for at least another year.

Nikos's picture

I think post title is misleading. Maybe some people(myself included) are disappointed because their favoured *contrib* modules are not ported to D7 yet but scaring people away from D7 just delay things even more.

Rob's picture

I know it has been stated several times above already, but just want to reiterate, Drupal7 Core is plenty ready for production sites. Some contrib modules may not be yet ready, and that seems to be the focus of your post, possibly a different post title would serve this statement better?

"Many Drupal 7 Contrib Modules Not Ready for Production Yet" ? Just a thought.

I have built several high-profile Drupal 7 sites, that are now in the wild.

JVA's picture

I agree with tsvenson, I've trying to build a fairly simple website with D7, but there are a lot of simple and industry standard features that keep missing in D7, Copy content, TAC, JSCript bugs. The future is for D7 but it's just not there till now.

Rob's picture

I've found that in Drupal 7, a lot of things you thought you needed a module for, you can now carry out in Drupal 7 with no additional modules, and just a little creative problem thinking.

You sound like you might be better off on a system like Wordpress.That is like big block legos. Pretty good system for people that just want to slap together a few large blocks and get a crude structure whipped up with little effort.

Overall, what a dumb post, from a completely unqualified person to be making such statements...

tsvenson drupal profile:
"Drupal contributions
Mainly irritates people in the issue queues by finding bugs and other problems. Then try and make them smile by helping to test patches, sometimes even providing a patch if the problem is simple enough for my skill level. I also trying to help others as much as possible, and even wrote a document page about updating Drupal 6 between minor versions."

Add new comment