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.
To introduce you to the wonders of open-source Elixir, I have compiled 16 neat frameworks, projects, and libraries that I’ve recently encountered.
Here’s the list (further descriptions below):
- Plausible Analytics
- The Changelog
- Remote Retro
- Supabase Realtime
- Phoenix LiveView
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 to Elixir.
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.
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:
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.
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.