A few months back, I was taking notes on potential projects to work on. One project I was interested in doing was an Aurelia wrapper for the incredible gesture library interact.js. I knew I could do it, but I was wrestling with the time commitment involved. Was it worth my time to take responsibility for another open source library?
Looking for wisdom, I decided to reach out to interact.js developer Taye Adeyemi to get his thoughts. He gave me some incredible advice on getting involved with open source, and I wanted to share that advice with the world. Hopefully this advice will help guide any developers trying to understand the value of getting involved in the open source community.
Building and maintaining a library will…
- …establish you as a subject expert,
- …give you a strong edge when applying to jobs and projects,
- …teach you how to successfully handle customer requests,
- …make you money, especially if you offer a paid commercial license.
My name is Matthew James Davis and I run my own software consulting company, Foursails Technology Group, in addition to working on the Aurelia team. I recently used your library interact.js in a project for a customer with great success. I followed this project up with a blog on how to use interact.js in Aurelia, and I'm considering building an offical aurelia-interact.js plugin.
I love the open source community, but I want to make sure that whatever I work on will build and support my business as well. This would be my first independently maintained open source project, and I want your advice on how to do it right. Did building interact.js open doors for you? If you could go back, would you do it all over again? What would you do differently?
Thanks in advance,
Matthew James Davis
It certainly did open a lot of doors for me. I think there are three particularly valuable things that I gained from the project:
- "Expertise" with SVG and browser input events which seem to be valuable attributes in a lot of frontend projects.
- The confidence and experience to start freelance development as I now know that I can handle feature requests and bug reports well enough. This is probably the best example: https://github.com/taye/interact.js/issues/4.
- A a portfolio entry to confirm my skills to people who have never heard of me or interact.js and shows how I communicate with users/clients.
Recognition from the project hasn't led to many commercial gigs but I joined Upwork.com and mentioning the project in job proposals has definitely been a big factor in the jobs that I've gotten from there. I usually only apply to very specific projects involving SVG and/or pointer input – things like graphical editors, customization tools, etc. I'd like to think that mentioning "open source" and "standards expert" in job proposals really helps.
If I would start a similar project again, I'd probably make it GPL3 (at least at the start) and offer a paid commercial license. Perhaps it's better for everyone that interact.js is MIT licensed and that it helped it gain popularity, but sometimes the economics of it feels a little unfair. For a time I was getting a few small donations per year which, now that I think about it, stopped a little while after I put ads on the site which now bring in more than the donations used to. The donations and emails of gratitude are very encouraging and I appreciate them very much, but having a commercial license might have been more lucrative and motivational.
All the best,
Taye Adeyemi’s Blog
Expertise by Nathan Barry