16 Awesome Elixir Open-Source Projects
Tags: elixir, webdev, opensource
Published: 2021-01-06 08:22:39

---
title: 16 Awesome Elixir Open-Source Projects
published: true
date: 2021-01-06 00:00:00 UTC
tags: elixir, webdev, opensource
canonical_url: https://serokell.io/blog/elixir-open-source-projects
cover_image: https://dev-to-uploads.s3.amazonaws.com/i/gtn1nxpc35a7g4tun4wc.jpg
---

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):

- [Phoenix](https://serokell.io/blog/elixir-open-source-projects#phoenix)
- [Plausible Analytics](https://serokell.io/blog/elixir-open-source-projects#plausible-analytics)
- [Nostrum](https://serokell.io/blog/elixir-open-source-projects#bot-libraries)
- [Alice](https://serokell.io/blog/elixir-open-source-projects#bot-libraries)
- [Elixir-Slack](https://serokell.io/blog/elixir-open-source-projects#bot-libraries)
- [ExGram](https://serokell.io/blog/elixir-open-source-projects#bot-libraries)
- [The Changelog](https://serokell.io/blog/elixir-open-source-projects#the-changelog)
- [Bamboo](https://serokell.io/blog/elixir-open-source-projects#bamboo)
- [Remote Retro](https://serokell.io/blog/elixir-open-source-projects#remote-retro)
- [Oban](https://serokell.io/blog/elixir-open-source-projects#oban)
- [Teslamate](https://serokell.io/blog/elixir-open-source-projects#teslamate)
- [Supabase Realtime](https://serokell.io/blog/elixir-open-source-projects#supabase-realtime)
- [Absinthe](https://serokell.io/blog/elixir-open-source-projects#absinthe)
- [Hex](https://serokell.io/blog/elixir-open-source-projects#hex)
- [ExVenture](https://serokell.io/blog/elixir-open-source-projects#exventure)
- [Phoenix LiveView](https://serokell.io/blog/elixir-open-source-projects#phoenix-liveview)

## Elixir open-source projects and libraries

### Phoenix Framework

![Phoenix](https://serokell.io/files/6a/6afe8l2f.phoenix.jpg)

[Phoenix](https://github.com/phoenixframework/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](https://serokell.io/blog/elixir-companies), with websites like [Bleacher Report](https://bleacherreport.com/) serving over 3 million daily users without problems.

To learn more about Phoenix, check out our [introduction to Elixir](https://serokell.io/blog/introduction-to-elixir#phoenix).

### Plausible Analytics

![Plausible Analytics](https://serokell.io/files/xt/xtvdt2vl.plausible-analytics.jpg)

Elixir has its own open-source alternative to Google Analytics. [Plausible Analytics](https://github.com/plausible-insights/plausible) 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](https://serokell.io/blog/elixir-in-production-plausible-analytics) with them about their use of Elixir in production.

### Bot libraries

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](https://github.com/Kraigie/nostrum) is a library for creating your own Discord bots. [Here](https://github.com/Kraigie/nostrum/blob/master/examples/event_consumer.ex) is an example of a simple bot you might be able to build with it, quickly.

- [Alice](https://github.com/alice-bot/alice) is a [Lita-inspired](https://www.lita.io/) Slack bot, written in Elixir.

- [Elixir-Slack](https://github.com/BlakeWilliams/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](https://github.com/rockneurotiko/ex_gram) is a library with an opinionated framework for writing Telegram bots.

### The Changelog

[The Changelog](http://changelog.com) hosts a collection of podcasts on topics such as software, Go, Javascript, AI, and brain science.

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](https://github.com/thechangelog/changelog.com/). 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

[Bamboo](https://github.com/thoughtbot/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

[Remote Retro](https://github.com/stride-nyc/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

![Oban](https://serokell.io/files/9o/9olceet2.oban.jpg)

[Oban](https://github.com/sorentwo/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](https://thinkingelixir.com/podcast-episodes/029-running-jobs-using-oban-with-parker-selbert) with the creator of the library.

### Teslamate

[Teslamate](https://github.com/adriankumpf/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.

### Supabase Realtime

[Realtime](https://github.com/supabase/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

[Absinthe](https://github.com/absinthe-graphql/absinthe) is an Elixir implementation of [GraphQL](https://graphql.org/). 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](https://www.howtographql.com/basics/0-introduction/).

### Hex

![Hex](https://serokell.io/files/0p/0pgl63o3.hex.jpg)

[Hex](https://github.com/hexpm/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](https://github.com/hexpm/hexpm), the website for the said package manager.

### ExVenture

![ExVenture](https://serokell.io/files/0h/0hup7op7.exventure.jpg)

Once you delve deeper into open-source Elixir, you can find some treasures. In particular, [ExVenture](https://github.com/oestrich/ex_venture). If you’ve ever wanted to build your own text-based [MUD](https://en.wikipedia.org/wiki/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](https://smartlogic.io/podcast/elixir-wizards/season-two-oestrich/).

### Phoenix LiveView

It makes sense to end with one of the most promising Elixir projects.

[Phoenix LiveView](https://github.com/phoenixframework/phoenix_live_view) enables you to ditch JavaScript (most of it) from your web pages through the power of Elixir. LiveView provides a wonderful alternative to client-side single-page apps like the ones you would make with React or Vue.js.

See how LiveView can be used to implement a Twitter clone in 15 minutes:

{% youtube MZvmYaFkNJI %}

If you want to learn more about LiveView, I’d suggest you try out the [free Pragmatic Studio course](https://online.pragmaticstudio.com/courses/liveview) or listen to [Software Engineering Radio episode](https://www.se-radio.net/2020/01/episode-394-chris-mccord-on-phoenix-liveview/) with the author of the Phoenix framework, Chris McCord.

## Conclusion

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](https://github.com/h4cc/awesome-elixir).

If you have any interesting projects you want to suggest for this post, be sure to write to us on social media like [Facebook](https://www.facebook.com/serokell.io/) or [Twitter](https://twitter.com/serokell).