I've been using Drupal now for the past several years, and my time with Drupal has been varied. What I have noticed though is that there is always an overabundance of contributed modules that have great feature sets, and a small number of truly exceptional contributed themes.
A lil bit of history
When I first discovered this powerful CMS, I was at a small web shop that was teetering on the brink of disaster using an in-house CMS built by a single developer. I quickly set up a test site, learned the basics, and presented it as the ONLY valid option for this web shop to continue down a path to larger and larger clients. It was taken well, and a week later, I was given a chance to use Drupal to theme out a basic site for a client. It was fast, painless, and the client was very happy with the end result. During this time however, I knew nothing of implementing advanced custom features, or really manipulating the theme layer to my will.
So I continued to learn Drupal on a string of fairly simple sites, leading this small web shop in the direction of a full conversion to all supported sites being in Drupal. Then after leaving that shop, I went back to freelance for a couple years, and continued to do small projects exclusively in Drupal, learning all the time, but never really digging into what makes Drupal such a powerful system.
Now that I'm at a larger web shop, I've been exposed to some great minds that have been working with Drupal a similar amount of time (from when I estimate the company adopted Drupal) but each person there has a very advanced understanding of various focused elements of Drupal, and some have a large understanding of it all. With that said, it's always great to be in an environment outside of freelance, in an open collaborative atmosphere where you can continually learn from others every day.
In this short time so far that I've been with CommonPlaces, I've really pushed myself to set aside some of my time wasting, and really dig into various aspects of Drupal that I was either not familiar with, or only semi-familiar with. I've released several modules in the past two months to suit my needs on various things that I would come across. Save & Edit, Permission Select, 960 Gridder, Omega Tools, and the still unfinished Taxonomy Rockstar.
I've always had the intention of releasing multiple themes to the community, and since my time with Drupal, I've proabably re-themed my site (this site) with 4 or 5 different designs and code with the intent of releasing it to the community, but the themes were never quite complete, always leaving some browser bug for IE6 unfinished, and probably a long string of other excuses why it's just never quite worked out.
The overabundance of modules
Of all the modules I've ever put together personally, whether contrib or custom for clients, with the exception of a VERY slim few of those, each module was completed within just a few hours, and at most perfected within a day with a tiny amount of code, and if it was "really fancy" some custom settings. Really my main exception to this statement is the Taxonomy Rockstar module that I've been working on, and it will probably be semi-complete for the unforseeable future due to it's large size.
But what I've seen is that it is SO incredibly easy to just put together a tiny module that provides a great benefit to someone, and contribute it back to the community. A lot of times, those small modules may or may not ever need updating or bug fixes unitl a new major release of Drupal is available.
This makes it easy for developers to contribute modules without a ton of comitment to the project. Of course this is not always the case. I know tons of the larger modules, or the more popular ones always require maintenance, bug fixes, feature relases, etc. But that is a TINY percentage of modules that do compared to the ones that dont.
The void of great themes
In my recent hard work on my new Omega theme, which I'm toting to be the be all, end all to 960gs theming for Drupal, I've discovered some things about what goes into a "good" contrib theme, and at the same time why NONE of my present or old blog/site themes have ever made it to the contrib repository.
In my opinion, there are a few things that really put up a barrier for designers and developers/themers from contributing themes to the Drupal community.
Using CVS
This issue has been well presented and discussed on Drupal.org, and while it's not an issue personally, it has to be presented in the list as the "standard" designer/themer may not know the inner workings of CVS and that alone become a barrier to contributing to the community.
The complexity of a GOOD theme
This is the whole reason for this post. As I've been building the Omega theme, which is a base theme, not just a standard out of the box pretty theme, but nevertheless, already a TON of time has went into ensuring the theme is browser compliant, semi-clean code, and "hopefully" ready to use for production on sites other than my own.
Picture it like a long project for a client. You have to really ensure everything is proper, and it takes a LOT more time than just throwing together a single feature or two in a 10 or 20KB module. A lot of time goes into making sure your client sites are worthy of putting your name on, and the same care would have to go into ANY theme that could ever be considered "good". This is the same reason that for now, my Taxonomy Rockstar module is on the back burner, for the ton of hours I've had to commit to making it worth its while.
So far on my Omega theme I think I've logged roughly around 80 hours, which includes incorporating features from a lot of popular themes, basic CSS for the core, and custom theme settings. And so far that time still doesn't include the first subtheme, dubbed "Polished", which will be a more ready to use theme.
Conclusion
This was a rather long winded rant of sorts, and I'm not completely sure what the solution for my main point here, which was that it takes a lot of work to make a decent contributed theme.
If you actually did read this thanks, and feel free to voice an opinion about this if you have one, as this was more of just a "what is on my mind" type of post. I'm kind of interested to know if anyone thinks I'm completely full of it, or if these points are right, or if there is something left off.
And with all that said, my next post should be the official release post for the Omega theme, and it's first sub-theme!


That's right
I clearly remember the first someone walked me through the process of commiting a theme through CVS for Drupal.org ... I think I seriously considered not contributing anything, ever.
Then of course, I got stuburn, and finally go it... more or less. But I totally understand that anyone who doesn't have the chance to have someone to explain the process will not bother at all. It is already a hard work to develop a theme, if it's even harder and time exhausting to give it for free... why bother really ?
I would also add that Drupal being so flexible, it is kinda hard to manage every case scenario and thus quite tricky to get fancy. Developing a theme fo the community, you always have to ask yourself :
What if this region is empty?
What if this menu is super long?
What if this is not filled?
what if...?
I'm always amazed by the support request I receive on my themes, users always find a glitch, a way to use your theme that you didn't think about, and hat will break anything.
Maybe Drupal is just too flexible for very particular designs. Great designs could only be develop for clients, where you get to say what they can and can't do, where you have more control on the "if"
Post new comment