Learning from Open Source

Like all developers I’ve benefited immeasurably from the open source community. My entire livelyhood is built upon the languages, frameworks, and libraries that have been released for free to the world and I’ve tried to contribute back here and there when I can. But last year I learned to use open source to my benefit in another way that I hadn’t realized before.

At the time Revelr was a fairly straight forward webapp with no real complications too it, yet. As such the front-end was simply your standard HTML and CSS with a bit of Javascript. But we were just about to get into some of the more complicated bits and that meant deciding how to move forward. I could push forward with just using plain Javascript and sprinkles of jQuery and associated libraries. Or I could break one of my personal rules about shiny objects and pick a front-end framework. After lots of reading and investigating it was starting to sound like React might be a good choice. The only problem was trying to understand what it would look like in a larger code base. Enter Sentry.

Sentry is a service I’ve used for years and love. It’s part of my default stack when setting up projects. The two great things about Sentry, when I was making this decision early last year, was that it’s also open source and uses React. This was perfect for me. A real world application I know and use, with a larger and more complicated code base than my own, that’s also 100% open. Being able to look at how they organized things and set things up really helped early on and has been a great reference since then but being able to read their pull requests and see how stuff has changed since then has been just as helpful.

Since then I’ve been on the lookout for new projects to add to the list of ones that I can use as references like this. Despite being involved in open source, and used open source projects, for years this was the first time I’d used a project quite like this. And it’s proven increadibly helpful. Too often the documentation for a library or framework has the simplest possible examples documented and it can be very difficult on your own to figure out how to setup a larger, more complicated, project. This is also a great way to discover useful extensions and see how you can integrate them and use them to make your life easier.

It’s been almost a year now and every few days I still check out the Sentry repo and read their the recent pull requests as if I was reviewing them, just to see how things are being changed as their feature set grows and changes.