Supporting the open source projects that make us great

Supporting the Open Source Software that makes us Great

At Algolia many of us are working with, contributing to, or benefitting from open source projects on a daily basis. We’re all about the tools that help us to get the job done, and get it done right.

Yet the majority of the software that we’re using to create the fastest search experiences on the internet is not coming from large megacorps. It’s coming straight from the laptops of talented developers all over the world who are passionate about solving a particular problem and sharing their solution with the world.

Many open source projects are kept alive and iterated on by just a small group of developers, who often claim no pay for their efforts despite their work being used by many other developers to create awesome apps.

Building up an open source project that finds a decent level of adoption in 2018 requires much more time, consideration, planning, and general day-to-day management than it has ever needed before. Luckily, the mindset of “just because it’s open source doesn’t mean it’s free” sits well with many developers and larger companies alike.

The rise in adoption of services like OpenCollective, has made it incredibly easy to donate to your favourite, or most used, open source projects as well as gain insight from the project owners around how that money is put to use; very transparent, but very useful too.

We love our community and support it whenever we can; including helping with open source projects, but it was time to take things further. So, we thought that we’d share a little about the projects we’ll be donating to over the next 12 months.

Firstly, a little background on how we arrived at the list below.

It all started with the suggestion that we take a monthly budget for OSS contributions and split it up between the 13 different squads (the micro teams that form the engineering department here at Algolia) and let them choose which projects they would like to support.

Once the votes were counted we arrived at a list of 18 projects that were used extensively throughout the company. Some projects received votes from multiple squads, so they were weighted higher and allocated a larger amount.

Others were more squad specific, so were allocated lesser amounts, but only so we could support as many as possible and still provide a little financial support to every project that got a vote rather than push more money at the most used.

Open source projects we’re supporting in 2018

Babel – Helps to make sure our JS libraries are forwards and backward compatible.

Preact – Lighter and more performant React rendering library used in the front-end of InstantSearch.js.

Storybook – Allows you to browse a component library, view the different states of each component, and interactively develop and test components. Also used on InstantSearch websites.

OpenStreetMap – This is where we get most of the data for Algolia Places.

Cheerio – A superb library that makes parsing and crawling websites in NodeJS a breeze.

CodeSandbox – An online IDE with awesome niche features like two way GitHub editing capabilities. Used extensively throughout the company for demos but also supported via InstantSearch templates.

Rubocop – Because good code quality is important for the health of any project. This helps our Ruby projects maintain their code standards as per the Ruby project guidelines.

VueJS – The incredible front-end library that we all love and cherish.

Scala – A great language that enables us to ease our development process, thanks to its amazing compiler.

Webpack – Build solution to bundle JS files for deployment to just about anything that’s also running JavaScript, from the browser, to the server, to desktop apps. There isn’t a single JavaScript project at Algolia that doesn’t use Webpack today.

MaterialUI – A strong set of React components that implement the design standard set out by Google’s Material Design specification.

Ruby Together – Donate to this and you catch the maintainers for RubyGems, Bundler and other great shared tools within the Ruby community.

Rollup – A JS module bundler that helps you create a tiny payload from your original source code.

Mobx – A state management library for modern JS frameworks.

Faker.js – Great testing requires great testing data, and Faker is one of the best at making sure you get what you need from its support of 30+ localities and a large number of API endpoints.

Pug – A templating language with powerful features, written in JavaScript and designed to work in node.js and on the browser. We use it for all the website that make up the Community side of Algolia.

Nodemon – Monitors for any changes in your source and automatically restarts your server. Oh, the hours we save by using this!

Shields.io – Living in a Readme near you. We use Shields to identify build statuses, code coverage, version numbers and much more across all our own OSS projects.

We aren’t just giving support to these projects, we’re also giving our time to others. For example, some projects that we wanted to support did not have a donation page and said, “We’d prefer you to spend time on issues and code rather than donating money”.

That’s a very valid ask, and that’s exactly what we’ll do. By working with those projects, and by providing speedy documentation search to many others via our own DocSearch project, Algolia has been giving dedicated engineering time (which means money for any company) to many other developer-driven projects as well.

We’re very much looking forward to adding to this list in 2019. If you’re donating to OSS projects at the moment, or simply have your own list of awesome tools you’d like to share,  then feel free to reach out to us on Twitter, or in our Discourse, and let us know about it.