Webpack’s Sean Larkin on growing the project’s budget with crowdfunding, sponsorships, grants, partnerships… and pure love.

Watch the recording of the live webinar, or read the text version below.

We don’t want the success we’ve had to be a unique story.

I’m a program manager for the Microsoft Web Platform, working on Edge Dev Tools. I’m also a maintainer of Webpack — I fit into the developer advocate role for the org. I’ve done some work with the Angular core team, and I’m an evangelist for open source sustainability.

We don’t want the success we’ve had at Webpack to be a unique story. So I’m doing what I can to get other maintainers excited about making their project more well-known and well-funded. We use Open Collective as the driver for our ability to fund our organisation.

A Brief History of Webpack

2012: Tobias Koppers started creating Webpack for a thesis project based on an abandoned PR for a library called Modules Webmake. Webpack was forked from that to add code splitting.

2014: React-hot-loader shows up. Other developers, like Dan Abramov, from the React core team, who helps create Redux and React App, started learning about what Webpack and its features were. He’s in there answering Webpack questions and you can see interest increasing in the community.

Webpack 1 was noticed by Pete Hunt of Instagram. He introduced Webpack to the universe at OsCon West, showing the architecture of how Instagram was built using Webpack and why it was so beneficial to them. This was the point of explosion in Webpack’s popularity, when the React community started to adopt it.

2015: I experienced Webpack for the first time as a UX developer at a company I was contracting with, and I got obsessed with it. I had the opportunity speak at a conference about it, and realised no one in the Angular community understood what Webpack was. I reached out to the Webpack maintainers and said, “Look, I want to get you guys paid.” We created a Gitter chat with all of them and I asked what I could do to help.

I reached out to the Webpack maintainers and said, ‘Look, I want to get you guys paid.’

2016: Out of dumb luck, we had the opportunity to be on a podcast, and I got on there to be a panelist. That day, Kent Dodds had posted a graphic showing the Webpack Core Team, and my face was just there. We had never talked about this, but in July 2016 the core team was established and I became a maintainer.

We wanted to not only release Webpack 2, but have a revitalisation of our image, branding, and everything. That’s when we joined Open Collective and pushed our transparent funding model. Finally we were able to finish our documentation and release Webpack 2.

Things started increasing at a really rapid pace. We were trying to reach $100,000 in the first year, and we hit $80,000 in 3 months. Then Juho released SurviveJS - Webpack, a 500 page guide to using Webpack that was complementary to our documentation and also helped drive his Webpack consulting.

2017: We released Webpack 3. You can see a huge difference between the time it took to ship Webpack 1, 2, and 3. By August we’d crossed a quarter million dollars in the budget, with not only Open Collective funds, but also a $125,000 grant from Mozilla and a large support agreement with Trivago for $12,000 a month.

Our annual budget is now over $400,000. I’m sure you’re thinking, ‘How? Sean, I don’t care just tell me how you did it.’

How We Do It

Changing the Culture

Webpack used to be just a project, maintained by one person. Tobias was working on it 5 hours a day while being a full time C# developer who made software for industrial CT machines. So this was a change in not only development activity and support, but how we reached out to people, how we published meeting notes, how we communicated on Twitter, and how we recruited people to get involved with the project.

Medium

Our Medium publication is the most active it’s ever been. We not only publish content ourselves about four times a month, I’m constantly looking for great articles from other people, especially people who are under-represented in our community, so we can host those articles on our publication.

What’s so important about Medium is it allows us to aggregate and really take over mind-share of quality content for Webpack. Sometimes when an open source project first comes out or starts to get hot, you’ll tend to notice random people trying to push out a bunch of cheap 5 cent articles. We try to stop this immediately. If you search for Webpack you don’t see “Webpack Bits” or “WebpackNews.com” — you get the Webpack Medium publication. We’ve monopolized the content creation.

I recommend people trying to build their project’s image and identity create a Medium page, make it readily accessible, and prevent content being spread across multiple random authors and channels.

Outreach

Outreach is very important to me. Maybe it’s because I’m a talky person and I like interacting with people. When I first became a maintainer, I was too terrified to make code changes. I didn’t know how it worked. So I asked myself what I could do that I could kick ass at. I essentially just got on Twitter and started spending hours a day searching “Webpack”.

Back then there were a lot of callous messages about us, and a collective mindset about how things were in the state of the project. I literally just started responding and saying, “Hey! Can I help? Can I take your feedback?” If someone was especially difficult, I’d point out it was a great opportunity for them to contribute or maybe just to raise a GitHub issue.

When I first became a maintainer, I was too terrified to make code changes, so I asked myself what I could kick ass at.

Most of the time, people just want to be heard and listened to. I like to think we set the standard for open source projects doing this, outside of projects that are officially funded or backed by a company. We are a grassroots project trying to show the community that we care about their voice and that they are what makes Webpack great.

User Governance

We have a voting page where you can log in with a GitHub account and every user gets one point per day that we call “influence”. There’s a list of features and users can chose what they want to support. We give the users the power to decide what we’re going to focus on. We created this to put users in control of how the project will be shaped for the future.

And then we have Golden Influence, which we give for each dollar a backer or sponsor contributes. It’s 100 times stronger than normal influence. This gives a stronger influence to those who have backed us, but not so strong that it outweighs the voice of the greater collective of people who use and contribute to the project.

Transparency

Ever since we were able to grow the budget large enough for Tobias to work on Webpack full time, we promised we’d keep people up to date about what we’re working on. People have the ability to look behind the scenes and see the architectural challenges. We put it out on our Medium page, on weekly Logbooks.

And of course we use Open Collective to be transparent. It’s one of our favourite choices we’ve made: every transaction, whether a sponsorship or an individual backer, is tracked publicly. Anybody can see the finances and the work done on the project.

Love

I cannot express how important love is to me, and how much of an important influence it’s been on the project. It might sounds cheesy, but the greatest power you have for haters or trolls is love. A lot of times people just want to vent, but if you show them you care they’ll be happy to help. Sometimes they’re just having a bad day, or need to be pointed in the right direction.

The greatest power you have for haters or trolls is love.

Love is so important to us that we take it to an extreme. If there’s ever an article that drops on Reddit or Hacker News, I try to be the first one to comment and say “Hey, thank you so much, we really appreciate the support we’ve gotten from the community.” These days, most articles about Webpack have no negative comments on them, which is a pretty powerful statement for places like Reddit and Hacker News.

If you show you really care about what the user is trying to accomplish, and empathize with their day-to-day challenges, these small steps change the culture and perception of Webpack as a whole.

Even with trolls, we try to just say, “We’d love your help, and we’re sorry this is happening.” Most people do understand that you are human. Maybe we have an edge as grassroots projects without big companies behind them, because we can make mistakes and publish bugs and breaking changes, and as long as we’re open and helpful about it people will just say, “Yeah, it’s Webpack, it’s OK we love ‘em.”

You’re not only reaching out to people, you’re reaching out to project managers, CEOs and CTOs, showing that you want to change the culture and the mindset.

Partnerships First

When it comes to funding, I’ve never talked about money first. It’s the last thing I worry about. The first thing is “What is this person’s need? What are they trying to accomplish? And how can we help with their unmet needs and challenges?”

Sometimes you have to make a play, and think about long-term strategy for your project. Sustainability is really important. We need to find out why new tools are popping into existence, not to prevent them but to understand the challenges.

A great example is that we found out a year ago that Web Assembly was going to be supported by all browsers, so I started speaking to some people at Chrome Dev Summit about a possible Webpack story there. I asked who the key stakeholders were, and they pointed me at someone at Mozilla. I got connected and said there could be a great story there. So we created this relationship over time, prior to even thinking about a grant.

And then when we found out that Mozilla had a grant for open source projects, it was really important to me that we chose the right thing to work on, because Web Assembly was a killer feature for Firefox and there are huge incentives behind it. That meant the likelihood of success of the grant was a lot higher if we submitted it to Mozilla.

Those are the strategies that are really important to think about long-term. For what it’s worth, every feature we work on has to be beneficial to the web ecosystem and to users — it’s not like you can just find a company that needs something landed and say, “Hey let’s do it.” You have to be forward thinking and have an idea of what your long-term roadmap is.