17 Awesome Elixir Open-Source Projects
For its age, Elixir has a lively ecosystem with a lot of mature and stable libraries.
While there are some obvious heavy-hitters such as Phoenix, there is also a multitude of cool, smaller-scale projects to use or check out.
As an Elixir consulting company, Serokell has substantial experience working with its libraries. In this article, I have compiled 17 neat frameworks, projects, and libraries to introduce you to the wonders of open-source Elixir.
Here’s the list (further descriptions below):
- Plausible Analytics
- The Changelog
- Remote Retro
- Supabase Realtime
- Phoenix LiveView
Elixir open-source projects and libraries
Phoenix is the main web framework of Elixir that’s reliable, fast, and scalable. In fact, a lot of other applications on this list have been built with Phoenix.
Phoenix uses the power of Erlang’s virtual machine to create extremely scalable web apps, extremely quickly. It is used by quite a few companies, with websites like Bleacher Report serving over 3 million daily users without problems.
To learn more about Phoenix, check out our introduction.
Elixir has its own open-source alternative to Google Analytics. Plausible Analytics is a lightweight analytics tool that can run without cookies. If you want to switch your analytics to something simpler and more privacy-oriented, this is a nice choice.
To learn more about the project, you can read our interview with them about their use of Elixir in production.
Papercups is an open-source live chat application that helps businesses build relationships with their customers.
You can learn more about the project by reading our interview with Alex Reichert, one of Papercups co-founders.
With Elixir, you can easily create your own bots! Here are four libraries that can help you create bots for your Discord channel, Slack team, or Telegram:
Nostrum is a library for creating your own Discord bots. Here is an example of a simple bot you might be able to build with it, quickly.
Alice is a Lita-inspired Slack bot, written in Elixir.
Elixir-Slack is a Slack API library for Elixir. It features a GenServer-like behaviour for handling events, and, overall, is a pleasure to write stuff in.
ExGram is a library with an opinionated framework for writing Telegram bots.
If you want to see how a CMS written in Elixir might look, you can check out the one used by folks at The Changelog. While this is not a plug-in-and-play platform like Wordpress (and you shouldn’t use it for your own website), it is a good example of how applications like these are built in real life.
Bamboo is an email library for Elixir. With a functional approach to creating and sending emails and adapters for several popular mail delivery services, Bamboo is a great choice for adding email functionality to your Elixir or Phoenix app.
Remote Retro is a nice cool app for doing sprint retrospectives as a remote team. It has everything, from idea generation to action item identification and assignment, and is used by world-class companies like Spotify and Squarespace.
Oban is a robust job processing library that uses PostgreSQL for storage and coordination. Its main advantages are reliability (it’s on the BEAM, after all) and historical observability. Using PostgreSQL instead of other tools also decreases the number of dependencies since you don’t have to add things like Redis.
You can learn more about the project and the benefits of BEAM for job processing from the ThinkingElixir podcast episode with the creator of the library.
Teslamate is a powerful, self-hosted data logger for your Tesla. It features dashboards, packed with drive stats, visited addresses, and efficiency reports. Teslamate is constantly one of the trending Elixir repositories on GitHub, so if you have a Tesla and want to do something cool with Elixir, I suggest you try it out.
Realtime is an application for listening to changes in your PostgreSQL database. It’s a Phoenix server that listens to PostgreSQL’s replication functionality, converts the byte stream into JSON, and then broadcasts it over websockets.
Absinthe is an Elixir implementation of GraphQL. Absinthe implements the working draft of GraphQL while providing a nice, idiomatic API for Elixir users. In addition, it has some extras like easy-to-read schemas, support for Phoenix, Plug, and Relay, and a very configurable querying pipeline.
If you haven’t yet heard about GraphQL, it is basically a better REST created and invented by Facebook that allows for querying APIs through a single endpoint instead of fetching a load of data from multiple endpoints. You can learn more about it at How To GraphQL.
Hex is a package manager for Erlang and Elixir that hosts over 11 000 public packages.
To see an example Phoenix project, you can also check out Hex.pm, the website for the said package manager.
Once you delve deeper into open-source Elixir, you can find some treasures. In particular, ExVenture. If you’ve ever wanted to build your own text-based MUD, it turns out you can do it in Elixir.
Build your own imaginary world, with goblins, dragons, and other creatures. Graphics are so 2019, anyway.
If you want to learn more about ExVenture, you can listen to an interview with its creator on Elixir Wizards.
It makes sense to end with one of the most promising Elixir projects.
See how LiveView can be used to implement a Twitter clone in 15 minutes:
If you want to learn more about LiveView, I’d suggest you try out the free Pragmatic Studio course or listen to Software Engineering Radio episode with the author of the Phoenix framework, Chris McCord.
Overall, the open-source ecosystem of Elixir is quite large, with several high-quality projects that are used by many companies in production. To see more examples of Elixir software and find inspiration for your own Elixir project ideas, you can check out this curated list of Elixir libraries.
If you have any interesting projects you want to suggest for this post, be sure to write to us on social media like Facebook or Twitter.