It was sometime in 2016 that I took my first real headfirst dive into the open
source ecosystem and community. After some years of traditional MVC development
using frameworks like backbone and angular with build tools like grunt
and gulp, I finally jumped ship to webpack and react.
Bundling via webpack stood out as it provided something most backend
developers take for granted, a proper module system. While it wasn't the
first project to interpret CommonJS and ES6 module syntax, it was the first to
start allowing the treatment of all web assets as import-able modules. This
plus some advanced module resolution features had me sold.
So I was building react applications, bundling them with webpack, and
generally loving life. I had also switched to npm for dependency management
at a time when many were still manually including libraries or using other more
browser-focused package managers like bower. As I was doing all this, I kept
seeing a similar theme in many discussions around webpack and those learning
it.
There was a general consensus that while webpack was a great tool, it
required a lot of configuration know-how to set up. Comments like these
demonstrate the more extreme sentiments (some are paraphrased to fit)...
While not every comment was this harsh, it was somewhat mind-blowing to me how
much people could complain about a free piece of software. If you're not an
open-source contributor, understand that open source projects -- especially
bigger ones -- require just as much work as professional projects. In some
cases, they require even more work because they get scrutinized by a broader
audience. That's actually a good thing, assuming the maintainer is open to
feedback, but my point is just that you shouldn't be an asshole about it.
Definitely provide feedback, but go into with some understanding and respect
for the work that's been done and that most if not all of that work has been
done for free.
All that said, I did agree that some of the documentation was confusing and I
wanted to help do something about it. I familiarized myself with more of
webpack through both the documentation and source code, and then started
some designs for a new version of the site. Once complete, I shared that work
via a comment on an issue in the docs repository.
I anxiously awaited the first response, waiting to get shot down as a newb that
had no idea what he was doing. webpack was already a pretty big project at
this point and I figured I was way out of my league. To my surprise, the team
seemed to really like the idea of a new site and that one comment spawned more
discussion and some new threads. Within a few weeks, we started building the
new version of the site.
Soon it was launched and even more feedback and ideas started flooding in. Most
of what we heard was positive but here and there we still got the occasional
douchey comment. The community overall was wildly supportive and we couldn't
have made the site what it was without their contributions (via PRs and ideas
shared in comments). I learned a lot from the core team and others not just
about webpack but also about managing projects and communicating with others.
After about two years, I handed the project off to some new contributors...