For businesses which directly depend upon open source software, investing developer time and expertise can yield more tangible and enduring benefits than monetary sponsorship alone, fundamentally strengthening the technological infrastructure upon which your business’ success depends. Today, we at Bellroy are pleased to discuss our role in the the 2.0 release of Amazonka — a vital Haskell package providing bindings for the AWS (Amazon Web Services) infrastructure. This package stands as the primary tool in the Haskell ecosystem addressing these needs, and it is extremely satisfying to see a new major release on Hackage.
The Amazonka 2.0 release included a significant contribution from our dedicated staff engineer, Jack Kelly. Jack devoted considerable time and effort to the release, during and beyond his regular working hours, to ensure its successful delivery. His commitment is testament to the passion we share for open-source development and our desire to contribute back to this vibrant community.
We rely upon Amazonka in many of our production systems. Upon noticing that the project could greatly benefit from having a dedicated full-time developer, we supported Jack by allocating more than six weeks of full-time work to the project. Now that it’s released, we eagerly look forward to seeing the ripple effect this release (and our other contributions) will have in the Haskell community. It is our hope that Haskell ecosystem contributions such as these will inspire more developers to look favourably at Haskell when considering technologies for their next project. We also hope it encourages more companies to invest in open-source contributions and support the ecosystems in which they operate.
At Bellroy, we have always held a deep respect for open-source software. It significantly benefits our own endeavors, and underpins a significant portion of today’s digital infrastructure. Our journey from a proprietary e-commerce platform to a completely bespoke one would be unimaginable if not for the availability of open-source frameworks like Magento and Rails. We view contributing to the open-source community not as a nice-to-have, but as an obligation in keeping with our aim of using business as a force for good.
When we create technology that we believe could be useful to a wider audience — and it isn’t a source of competitive advantage — we generally consider open-sourcing it. Prior to adopting Haskell as our primary development language, we open-sourced multiple Ruby and Elm packages, such as:
- dry-monads-sorbet Sorbet types for the dry-monads Ruby gem.
- elm-email Parse email addresses safely in Elm.
- elm-embed-youtube A simple way of embedding a Youtube player using an iframe, in Elm.
- elm-imgix A wrapper around Imgix, in Elm.
- elm-infinite-gallery A simple gallery that supports infinite scrolling, in Elm.
- rspec-sorbet* A Ruby gem which makes it easier to use Sorbet & RSpec together.
- sorbet-struct-comparable* Add equality testing to classes which inherit from Sorbet’s
* A former Bellroy employee is now the primary maintainer of these packages.
Amazonka joins a growing list of open-source Haskell (and other FP) libraries we’ve contributed to, including:
- hal A runtime environment for Haskell applications running on AWS Lambda.
- haskell-cached-io Cache a single IO action (we’ve taken over maintainership of the original repository)
- github-actions-dhall Typecheck, template and modularize your Github Action definitions with Dhall.
The following libraries are examples of where we saw a package-sized gap in the ecosystem, and decided to fill it ourselves.
- aws-arn Type and optics for manipulating Amazon Resource Names (ARNs)
- timeline A library for handling data that changes over time
- wai-handler-hal Lets you run a WAI application as the backend Lambda of an AWS API Gateway REST API
We generally try to contribute upstream features and fixes first, even if doing so requires a little more initial digging. This approach is better for everyone in the long run: it reduces our maintenance burden, helps other people with their problems, and shores up the long-term viability of the Haskell ecosystem.
Bellroy’s mission is to become global leaders in carry, and we work towards this by “using business as a force for good” and “helping the world, and our crew, flourish”. This successful release reaffirms our “upstream-first” model of open-source contribution, and to release additional open-source packages — watch this space.
We’d like to say a big “thank you” to Brendan Hay for creating Amazonka, and everyone who has contributed to the above-listed projects over the years.