5 Phoenix open source projects to study

Phoenix is a mostly well-documented and easy-to-follow web framework. But if you never worked on an Elixir app before, you might need a little guidance in structuring your first application and see some Phoenix patterns in the wild. Here are 5 open source projects on GitHub to study.

Plausible

Plausible is a privacy-friendly alternative to Google Analytics, which I wrote before. Apart from the ability to run Plausible yourself, you can study its code on GitHub.

It’s pretty ordinary Phoenix application with Paddle and Twitter API integrations. You can also check their Dockerfile for containerizing Elixir applications and see how they use it together with docker-compose.

Hexpm

Most of you know about Hexpm, but perhaps did not realize that it’s an open-source project for everybody to see.

Hexpm can show you how to implement two-factor auth, use ETS for blocking IP addresses or implement throttling.

Changelog

Changelog is a general site about new things and updates in tech.

You can study a lot of authorization policies files or look at how Changelog deals with helper functions grouped as kits.

ElixirStatus

ElixirStatus is a community site for project updates and relevant blog posts. Similar to RubyFlow from the Ruby world, it’s the visitors who submit new entries.

The Phoenix code, written by the author of Credo, reveals custom implementations of plugs or GitHub integration with OAuth2.

Bytepack

In the end, I include a project that was killed in its infancy but shows a basic multi-apps umbrella setup. This project is called Bytepack and comes from the Dashbit folks themselves.

The code also shows the implementation of an audit log or TOTP.

I hope this gave you an idea of how the Phoenix code looks like in the wild.

← BUY THE PRE-RELEASE

I am writing a complete guide on web application deployment. Ruby with Puma, Python with Gunicorn, NGINX, PostgreSQL, Redis, networking, processes, systemd, backups, and all your usual suspects. 19 chapters and 2 case studies already available.

More →