In late 2015 I started to seriously consider working full-time on Vue since its growth was very promising, and I had many ideas that I thought would push the project even further. In February 2016 I started a Patreon campaign where users and companies could make monthly pledges to support my work on Vue. To my surprise, the campaign got traction quickly, and now I'm able to work on Vue full-time. I'm extremely grateful to the community for making this a reality.
Over time many wonderful community members have joined me and we now have a core team and other active community members helping me with all aspects of the project. Vue is currently funded by the community through Patreon.
Working on Vue was how I grew as a developer: It motivated me to research and learn whatever it took to implement the features I wanted, and I had to hold myself up to decent engineering standards to keep the project maintainable. When the project got bigger and more opinions started to surface, I started to understand the art of trade-offs in software engineering and how different goals can lead to different design decisions.
As Vue grows in popularity, comparisons with other frameworks have led to long debates. Being the maintainer of Vue actually allowed me to look at all this from a different perspective and realize how important it is to keep an open mind and embrace the fact that having choices is a good thing.
"Working on Vue was how I grew as a developer: It motivated me to research and learn whatever it took to implement the features I wanted."
Properly prioritizing different types of tasks. For a very long time I tried to fix issues as fast as possible and only work on planned features after. My experience so far is that this model isn’t sustainable. My work schedule became very ad-hoc because issues can arrive at unpredictable times, and it’s hard to know how long it will take to triage and fix certain bugs.
I'm now experimenting with a different model: I have unsubscribed from most of the projects’ notifications and only triage issues in batch with a fixed schedule. The core team members filter the incoming issues and only ping me when something is critically wrong. This allows me to take better control of my time and stay focused.
As a maintainer, most of the time you get pinged for problems in your project. Although it happens less often, it’s very heart-warming when users send you encouraging messages telling you how your project has made their work more enjoyable and how grateful they are for that. I'm quite proud that all the private messages I got on Reddit are the extremely positive type.
"It’s very heart-warming when users send you encouraging messages telling you how your project has made their work more enjoyable and how grateful they are for that."
Don’t press yourself too hard, take breaks from time to time, and take it easy when there is negative feedback. Keep in mind that you are already creating value for all your users and issues are just room for improvement.
The greatest contribution to Vue would be things that can benefit the entire community: experimenting with new ideas, educational resources, or sharing solutions to encountered problems as reusable plugins, components, and CLI templates.
There are already a ton of these, but as of now the discoverability of high-quality resources could use some improvement. We’d greatly appreciate input from the community on this.
Open source is made by people just like you. Learn how to contribute, launch a new project, and build a healthy community of contributors.
Every Friday, invest a few hours contributing to the software you use and love.
Brett Cannon made his first open source contribution more than 15 years ago. Now a Software Engineer at Microsoft, he’s still a core contributor to Python, a project he has contributed to for more than a decade.
Tim Graham started contributing to Django as part of a college research project. Now he helps maintain the popular web framework full time as a Django Fellow.