Drupal: Getting Paid to Do What I Love
I’ve been planning and working toward this moment for long time. The latest Webform feature is not for the community, it is for me. This new feature, which I’m calling "Promotions," provides me with compensation to do what I love: collaborate and build free software that is used by 1000's of websites.
Getting paid to write open source software is a known challenge. I’ve been exploring many options and researching how other open source projects promote and charge for add-ons, support, and additional services.
Promise: Free of Charge
Please understand I have no intention of ever charging for add-ons. That said, if people in the Drupal community started sponsoring features, I’d be completely on board. Is offering paid support a viable option? I’m not sure. I think promoting additional services is a proven approach. Many companies provide SaaS solutions and hosting services for Drupal. I’ve spent the past year learning how to promote myself via my website, blog posts, and presentations at conferences. Promoting myself in all these ways led me to recognize that my best opportunity lies directly within the Webform module's user experience.
Research: Promotional Banner
Ninja Forms for Wordpress has an amazing user experience. When installing Ninja Forms, there is a "Ninja banner" which promotes the plugin's latest features. I have never seen a Drupal module display a promotional banner or callout within the actual module. Project pages rarely contain promotional callouts. Banners and splash screens are part of the typical software experience. I realized I needed to sell the Drupal community on having a promotional banner within the Webform module's user experience.
Challenge: Selling Value
So I embarked on the challenge of adding a promotional banner to the Webform module. A good way to sell someone something is to show its value. My concept is that if I provide enough value to the Webform module, people will be more comfortable with seeing a promotional callout. I’ve worked really hard to improve the overall quality and value of the Webform module by adding better support, documentation, and training.
Support: Answering Questions
All community interactions with a Drupal module begin in the module's issue queue. On a daily basis, I try to answer support questions, fix bugs, and implement new features. Besides providing daily support, I’ve decided to have monthly releases.
As I started answering support questions, a natural and beneficial progression emerged: I began moving the questions and answers into the Webform's document as recipes.
Document: Collecting Recipes
The Webform Cookbook helps keep track of custom code snippets and tricks in recipes. Most recipes begin with issues of Drupal.org or question on Drupal Answers. I’m better at writing code than I am writing words. Still, I’m trying my best to provide documentation and code examples.
My discomfort with writing led me to experiment with creating screencasts.
Train: Creating Screencasts
Learning a Drupal module can be overwhelming. It seems to me that video tutorials and walkthroughs help people relax so they can start the process. Researching other form builders, I noticed other organizations were using inline contextual videos within the software's user interface. I began recording screencasts and placing them throughout the Webform module. It’s a feature that has received a lot of positive feedback and has successfully heightened the Webform module’s value.
Add-Ons: Organizing Related Projects
The Webform module for Drupal 8 can do many things, but the truly amazing stuff happens when Drupal's army of the developers built additional contrib module's that extend and enhance the Webform module. There are hundreds of Webform-related projects for Drupal 7 available and I decided to try to organize and categories Webform-related projects for Drupal 8 within an Add-ons section.
The Add-ons page in the Webform module and on Drupal.org provide an organized and maintained list of modules. Having dedicated page-to-list related projects has provided me with the opportunity to start exploring promotions.
Donations: Why I Don’t Ask For Money
Early on in the development of YAML Form, which became the Webform module, I thought about adding a "Donate Now" message to the Webform module's release notes and user interface. After talking to other module maintainers, I realized soliciting donations is not my best approach.
Most people are not going to pay or donate to software that they can get for free.
Promotions: Partnering with Lingotek to Integrate Translation
Knowing that people are willing to pay for a service, I decided I’d have to either create a service or find a service that people would be willing to pay for.
Around the same time, my client Memorial Sloan Kettering (MSK) was exploring translating their Patient Education materials. At DrupalCon New Orleans, MSK and I starting to talking to Lingotek at their booth. Within a few months, MSK became a Lingotek customer. As a result, I started integrating Lingotek's module and services into MSK's Drupal 8 website.
The Lingotek-Inside Drupal Translation Module integrates a Translation Management System directly into Drupal, allowing the Drupal community to use professional-grade translation technologies (e.g. machine translation, translation memory, CAT tool) without ever having to leave the comfort of the Drupal environment.
I have first-hand experience working with multiple members of Lingotek's team during their onboarding, implementation, and support process. I even contributed a few patches back to the Lingotek-Inside Drupal Translation Module. MSK's initial engagement with Lingotek only involved translated documents, a process that got me thinking. I started to experiment with translating Webforms via Lingotek. In a matter of seconds, I was able to fully translate every aspect of a Webform, including backend error messages and confirmation emails. A lightbulb went off in my head: Translations via Lingotek are a service--a valuable service.
I can say with confidence that valuable services, in any language, are a good thing.
At DrupalCon Baltimore, I showed Lingotek how easy it was to demo their services by translating a Webform in less than a minute. This summer I became a Lingotek partner.
Referrals: Lingotek’s Multilingual Module Adds Real Value to the Drupal Community
Partnering with Lingotek is exciting because their paid service adds real value to the Drupal community. It is easy for me talk about Lingotek's services and it only takes a few second to show you how to translate a webform.
Now, I’d like to refer you to Lingotek.
Lingotek pays a software referral fee to partners who engage potential clients. My goal is to have these software referral fees fund my ongoing effort to improving and making the Webform for Drupal 8 module awesome - in multiple languages!!!.
Feedback: How can we get paid to write Open Source software?
I have been as transparent as possible. I am not asking for permission, but I am looking for feedback
Anyone in the Webform issue queue can see that I like to get things done. I aim to iron out one issue at a time and quickly move on to the next problem. Currently, I’m trying to solve the predicament, "How can we get paid to write Open Source software?" Open Source software is about the freedom of creating and sharing software. What I’d like to try is a new way to promote and market services within an installed Drupal module. Instead of discussing this concept, I decided to just implement this feature and fully document the work in the Webform issue queue and thought process here.
As always, my intention is to expand the horizons and reach of the Webform module and Drupal
I sincerely hope that no one is offended by these promotions, which can be disabled in the Webform admin settings page. I’m optimistic that other module maintainers can follow my lead, while I respect that the community may want to discuss and define the best practices and recommendations for promoting paid services within the Drupal community. With an open mind and a high esteem for the invaluable collaboration forever present in our community, I welcome all suggestions and thoughts.
Thank you for reading.