Why I Decided to Create Drupal Mill
I became a member of the inspiring Drupal community a little more than two years ago. Almost since then I have thought about the best way I can contribute back to it. The problem for me is that I am not a skilled coder, even though I can read code and fix the odd bug. Nor do I have the time required to really learn it, despite I would like to. My skills lie in other areas where I believe they come to better use.
During these two years I have had many ideas about ways I could do something back. At the same time I have been quite active on drupal.org, especially in the issue queues by filing bug reports, feature requests and of course helped testing as much as possible. But for me that has not been enough, I knew that somewhere back in my head I would come up with a much better idea.
Fast forward to about a month ago when I came across Larry Garfields Drupal's audience priorities post. It in combination with Dries Buytaerts The commercialization of a volunteer-driven Open Source project post gave me something to think about. Both posts, and the comments, are excellent and I recommend you to read them.
Background for Drupal Mill
Now when Drupal Mill is launched I believe I have found my way of contributing back, but before I go into that I need to explain a few things that I base my idea on.
Building a Drupal Site is a Challenge
Everyone using Drupal to build a website faces challenges that are more or less difficult to overcome. Some of these are:
- Project Planning
- Finding people with the right skills
- What modules to use
- Modules that doesn't do what you want
- Bugs that prevent your site to be launched
- Lack of good documentation and guides
Depending on your budget some of these challenges can be fixed easily, while others are more complex and depends on the features you want to have on your site.
While creating this "skeleton" site for Drupal Mill I came across many small, and some bigger, issues with Drupal 7 and the small number of contributed modules it uses.
One such example is how to create human readable URLs for the forum posts. The URLs to the forums have the format "forums/container/forum-name". Logically I then wanted to add the title for each post in a specific forum to the end of that. Well, it turned out to be impossible since the forum module uses taxonomy and you have no access to those tokens for the forum post node type.
My compromise ended with not having URL aliases for the forum posts, they will thus be "node/[ID]" until I find a way to sort it. At least that way the site wont end up with a lot of old aliases that has to be maintained when the solution is found.
Drupal is a Community Project
As a community project Drupal will only grow and become better from contributions to it. These contributions can come from many sources, but the main two ones are:
- Individuals
- Organisations with or without commercial interests
In both cases the contributions are on a volunteering basis and only because it benefits them in one way or another. However, these two groups reasons are wastly different.
Some of the reasons for individuals are:
- Learning new skills
- Be part of a bigger group
- The chance that some day get a job, or start a company, around it
Organisations on the other hand have mainly one reasons for contributing back:
- It is beneficial for their business
Some people are very against commercial interests in open source community projects. Personally I think that is due to that they simply don't understand the benefits of it. Or as Dries ended his post with:
The commercialization of a volunteer-driven Open Source project is part of a project's natural life-cycle. While it can be a significant change, it is a great opportunity. We can reap the benefits of growth, prevent volunteer burn-out and distribute the effort.
As a project grows, it is going to face bigger and bigger challenges. Many of these are not going to be "fun", but they must be done or the projects future will be at risk. Drupal is today a global player and as such it is gaining interest from all over the place. That also leads to expectations, things simply can't be done on an hobby basis level when someone has time.
An excellent example of this is just before Drupal 7 went beta. Acquia and several other commercial organisations volunteered their staff to speed up fixing the remaining critical bugs. Their efforts shaved of at least one to two months for getting Drupal 7 ready. They spent their money because it was in their commercial interest to do so, but at a larger scale everyone using Drupal is a winner thanks to that.
Drupal wouldn't be where it is today without commercial interests. Just look at the number of contributed modules that are sponsored as an example.
In the end, everyone is a winner since Drupal constantly is improved and allows us to do new things with it.
Who Does the Boring Stuff
Well, this is probable the biggest challenge for open source projects. Both posts I mentioned in the beginning talks about it as well.
What it boils down to is that things that works, even badly, will have very few volunteers fixing them unless it is in their own interest. If you look at the number of feature requests on d.o you will be overwhelmed, there are thousands of them and many are really really good.
Then why aren't at least the good ones added then?
The answer is simple - Those who can add them simply don't see the benefit for them to do so or have the time to do it. It is also important to understand that you don't have any rights to require them to do so either, unless you give them a reason such as paying them to do it.
Its also important to understand that for most commercial organisations Drupal is not their core business. It is a tool they use to fulfil their goals. They will only spend their money if it is really necessary, and certainly not on things such as increasing performance if it is already is good enough for their needs.
And that ladies and gentlemen takes me into the core of this post:
The Goal with Drupal Mill
I want to make Drupal the core business for Drupal Mill and at the same time create a website that benefits the whole community as well as helping to spread the use of it. I also want Drupal Mill to be a "real world website" built and managed using the same principles, quality and organisational requirements especially commercial websites are built with.
Therefore content about teaching Drupal will only be part of it. My goal is also to help improving all aspects of Drupal, and contributed modules, when it comes to building sites.
Complementing drupal.org
I believe that Drupal Mill can be a great complement to drupal.org since everything can't be there. Its main role is to focus on developing Drupal Core as well as contributed modules. The needs for users are often very different from the needs of developers. It is therefor I see Drupal Mill as a great complement since it will focus on the users and their needs.
The Content
The approach I have decided on is to focus on content related to Drupal, and specifically when it comes to teaching how to to build websites with it. That can be in the form of:
- Blogs
- News
- Articles
- Reviews
- Surveys
- Guides, Tutorials, HowTo's
- Interviews
- Discussion forums for support and other Drupal talk
- Resource directories
I want to do it in an organised and structured way to give you the best possible user experience. I want it to have quality content and therefor it will have the needed roles as well as workflows to manage content accordingly.
There exists tons of great Drupal content on the Internet already in the form of articles, videos, blog posts and so on. The problem though, especially for beginners, is that the really good stuff is quite hard to find as it is spread out on thousands of different sites. It is often quite outdated and sometimes not so well structured.
The Drupal Coding Standard has helped to raise the quality of the code, as well as made it much easier for developers to read others code and quickly understand it. My aim is to do the same with online Drupal content. By developing guidelines, and a unified terminology, I believe it will not only raise the quality of the content and make it easier for more people to help writing. It will also make it much easier to find what your looking for and read it since the content will have a similar structure.
Another reason is that the waste majority of existing Drupal content online is in English, which brings us to:
Multilingual
Everyone doesn't understand English and an important part of global websites is that they are available in many languages. Therefore Drupal Mill will be offering that as well.
I believe that making the content available in more languages than English will be a very good boost for helping to spread Drupal.
Best Practise
By implementing principles, structure and organisation used to build websites, my goal is that Drupal Mill will be able to help developing generic best practise guides that will provide a great resource for others.
Since the goal is to make Drupal better the aim is to find the right solutions, not taking shortcuts or hack something to circumvent a shortcoming in core or a module.
One thing I want to do on Drupal Mill is to create a special section that is focused on documenting the work done on the site itself. It should include what modules it is using, what challenges we where faced with when adding a new feature and how it was solved. I believe this could be quite interesting reading.
Minimum och Custom Coding
Another goal is that Drupal Mill will be a showcase for what can be done with a minimum of custom coding. Many contributed modules have their root in someone wanting to solve a problem for their website, then they generously contributed it to d.o for others to use. Quite often though it turns out that when you try and use that module it doesn't really do what you thought it would do. It could be that its not flexible enough to be used with other modules or it is limited in some aspects. Then you are faced with the decision to not use it, accept the limitations it has and make a compromise in your implementation, or tweak it to suite your needs.
Even building this first simple version of Drupal Mill I ran into this and had to make compromises, such as with the forum posts described above.
By aiming to build the site on the principals mentioned earlier, a goal is also to do this right. That is to work with module developers and see how it is possible to add more flexibility to their modules, as well as how they inter-operate with other modules they are commonly used with. Which takes me into:
Benefits for developers
By building features on Drupal Mill, based on roles, requirements and structures common among many larger sites, my aim is that it will provide a great resource for developers to get great feedback on how their modules work on a larger scale, how they fit into the overall administration and usability and so on.
Contributing Back to Drupal
Simply speaking, everything that is relevant to contribute back to drupal.org will be. This will mainly be improvements to core, existing modules or new modules developed for Drupal Mill.
The Commercial Side
To achieve even a part of the goals I have set up for Drupal Mill is going to require a lot of work and resources.
Drupal Trademark Policy
I want to point out that I am not going to break the Drupal trademark policy. I fully understand and accept the reasons for why it is in place and the fees needed for maintaining it. I have been in contact with Dries lawyers about my ideas and how I can use Drupal in the domain name without violating it. They have offered me a lower fee to be able to place ads or other revenue generating schemes on the site, but it is a fee I simply can't afford at this point.
However, without ads Drupal Mill will comply with getting an automatic free license. That is how it is going to be until funds are available to pay for a commercial license.
Starting as Hobby Project
I am starting this as a hobby project at the lowest level, including hosting it on a cheap shared hosting solution. Its the only option I have at the moment, but hopefully that will change as the project moves forward.
Making Money on Drupal Mill
There are several reasons why it will be needed to generate revenue from Drupal Mill, the most important ones are:
- Pay for the costs on running the site
- Be able to pay staff, contractors, freelancers or developers
- It is an integrated part for many sites built by Drupal
Its actually quite simple, the more money Drupal Mill can generate, the more will be plowed back into it so the goals I have set up will happen quicker.
This does not mean the site will be littered with ads, quite the opposite. Focus is on providing a great resource for Drupal users. Ads will be there, but they will not ruin the user experience in any way. I have also other ideas on how the site can generate revenue that is not ad based.
Drupal is used by many companies to make money, such as online shops or blogs. There are still a lot to do to reach the same level as is possible with for example WordPress, especially when it comes to affiliate marketing. By gaining experience on creating revenue from Drupal Mill, the aim is also to make Drupal more attractive and competitive compared to other platforms.
What about the Profit?
My goal is not to become rich on Drupal Mill. Profit will be needed for making this happen, and be able to for example scale the server requirements when traffic grows.
My intention with the profit is that a large part of it will go back to the community. This can be in the form of:
- Sponsoring development of Drupal Core
- Sponsoring module developers
- Sponsoring Drupal events
Right now that is a dream, but a dream I believe is possible with hard work.
Everyone is Invited
I would like to invite everyone in the Drupal Community to participate with this project. Not only to create content or developing the site, but also to define its future on an ongoing basis. After all, the main purpose of Drupal Mill is to improve and help fostering the use of Drupal.
What Help is Needed?
As I mentioned in the beginning, I am no coder so practically I will need help with everything when it comes to developing and managing the site.
For content production and translation the field is open and anyone who would like to contribute is welcome. To start with I have designed the current site to support multiuser blogging. Anyone that wants to have their own blog writing about their Drupal experiences are welcomed.
The immediate plan is to create a few more content types for articles, guides, tutorials and other things, as well as working on a more suitable theme and page layouts. I have a few ideas about this, but would welcome any input from you.
I have not yet decided on any project management tools, but are leaning at using Basecamp as the central tool for that. Their free account is sufficient for the current needs.
How to Start Helping
Just create a user account and join the discussion in the Drupal Mill forum. Right now my plan and goals are what you just have read and I would like to get some feedback on this before making an action plan.
The blogging feature is enabled and it is also possible to upload images to the posts. So, if you want to start blogging now, then just let me know using the contact form.
The only theming I have done so far is changing the default font in Bartik, so a little work will be needed to make images look good in the posts.
What about Compensation?
As I mentioned above, this is starting out as a hobby project. Therefor I can't make any promises when it comes to compensation in the form of money.
What I can guarantee though is that everyone that help out will be listed on a special contributor page. There will also be an extensive profile page with information about yourself, as well as easy access to all content you have contributed as well as roles you have or tasks you perform on the site.
When funding for getting the Commercial Drupal trademark license is sorted and revenue starts to come in my plan is to be able to reward those who have helped out in one form or another.
Lets get Started!
Alright, now you have read my idea about how I would like to contribute back to the Drupal community. I hope you have enjoyed reading it and maybe even would like to help making it happen, starting with answering this question:
Do you think this idea is a good way of contributing back to Drupal and something that will help it grow?
That's just one question I have before moving forward with this. Your feedback, and participation, will be much welcomed to help clarify or improve my ideas. It is also for that reason I have created this really simple site as the starting point. Then focus will be on adding features instead changing whats already there.
Lets gets started!
PS: I have already started a few threads in the Drupal Mill / General Discussion forum to get us started, your very welcome to join in.
Comments
stieglitz
Mon, 06/27/2011 - 04:48
Permalink
Re: Why I Decided to Create Drupal Mill
Nice idea Thomas. I'll be in contact.
Add new comment