Setting up Brotli on Nginx or Phoenix

Brotli is a relatively new compression format that has two big advantages over gzip. It’s faster at compressing things and it compresses them down to nearly ~25% smaller files!

Let’s set up our Nginx server to serve brotli compressed HTML, CSS, JS and JSON assets! If you’re running Phoenix, Rails, Django, Node or anything else behind an Nginx proxy, this setup should work for you.

A basic strategy is also covered for serving brotli compressed assets from a Phoenix server running directly on the server without anything proxying in front of it.

Elixir Protocols: a gentle introduction

Protocols are one of the more important but less publicized features of Elixir.

That’s why this lesson focuses on them directly rather than being part of a larger project. It explores defprotocol, fallback_to_any, defdelegate and working with structs.

Reversing BIP-39 and the Power of Property Testing

While building and testing a decoder to go along with the Bitcoin BIP-39 encoder we wrote a few weeks back, a simple property test uncovered a bug in our original implementation that I never would have caught through manual testing.

I’m blown away.

Check out the full article for a rundown on my property testing experience, and the full implementation of the decoder: Reversing BIP-39 and the Power of Property Testing.

ElixirWeekly: The Elixir Community Newsletter, covering community news you easily miss, shared on ElixirStatus and the web, in one email every Thursday.

Ethereum's Recursive Length Prefix encoding in Elixir

Ethereum’s Recursive Length Prefix encoding in Elixir Implementing RLP with recursive protocols

AlloyCI v0.6.0 released!

AlloyCI v0.6.0 has been released. The biggest change since last release is that it now supports any S3 compatible storage service, in order to store any build artifacts generated by your project. Check it out!

Plugs demystified

An entry-level introduction to Plug - build a simple website without using Phoenix.

New version of ElixirJobs with redesign and Telegram channel

New version of ElixirJobs has just been released, including a brand new design, easier offer posting and push of new offers to a dedicated Telegram channel.

Source code updates can be found as usual on GitHub and contributions are welcome!

Learn @elixirphoenix by rebuilding a mini-version of it. 16:00 GMT on 15th May. PM to register.

The first online class on rebuilding Phoenix will be on 15th May, 2018. Considering 16:00 GMT on 15th May (,240 ). This session is free or pay what you want. Limited to 16 people. PM to register.

Why I'm co-organizing The Big Elixir Conference

ElixirWeekly: The Elixir Community Newsletter, covering community news you easily miss, shared on ElixirStatus and the web, in one email every Thursday.

New book: "Phoenix Web Development" is out now!

Hello Twitter! I am proud to announce that my first programming book on #elixir and @elixirphoenix has finally been released to the world! If you like my tutorial series on @Medium this will be right up your alley!!

Troubleshooting On Running System By observer_cli

observer_cli inspired by erlang in anger and recon. It is mainly to find abnormality in the production system in a very simple and clear way.

StrawHat.Review: Review System.


We try to put together a review system analyzing some systems out there like Fiverr, Amazon, Google, Lyft and Uber.


Review: it allow you to have multiple aspects with an score, imagine how many businesses like Fiverr have some features of the review you want to score independently.

Aspects: are like featured skills in the review that you would like to score: like good_communicator, nice_music or whatever comes to your businesses model.

Reactions: you can react to comments or reviews on the systems. You can use reactions as you please, maybe a like and dislike reaction, or funny or whatever makes sense to your business.

Comments: are just what you expect, you have a thread of comments for specific Review

Future Ideas

We want to add some soft of AI analytics that you could do, we could send the review to some Google services for example and then tag back the review. We are not planing to add this in the near future because we need to focus on making money so we can continue improving and creating free and open source code, but we are more than welcome to help you out in the process.

Also the ability to track directly the IPs and flag untrusted reviews and so on.

Benchee 0.13.1 with memory measurement fixes released

After our friend Michal Muskala tried out memory measurements in a benchmark and broke them (thank you!) we went to work and fixed them. Enjoy new and improved memory measurements in benchee 0.13.1 Changelog

TMIB-16: This April, we added restricted retry and custom committer support

Paseto (A better JWT) v0.3.0 release

This is marking the first release of an Elixir implementation of the Paseto (Platform-Agnostic SEcurity TOkens) specification. Unlike JSON Web Tokens (JWT), which gives developers more than enough rope with which to hang themselves, Paseto only allows secure operations.

Github: More info about Paseto: RFC Draft:

Building a distributed chatroom with Raxx.Kit

Step by step walk through to building a multi-node chatroom based on the Raxx micro-framework.

Bonus: No websockets needed, HTTP/2 supported by using Ace server.

Passwordless Authentication with Veil

In this episode we’ll implement passwordless authentication in a Phoenix application using the Veil package.

2hr online training in @elixirphoenix. Vote your choice

I am planning to give a 2hr online training in @elixirphoenix in the coming month. I have two topics in mind. I am taking in 16 people per session. Date and timing to be decided.

Vote here:

PM for more details or questions.

Drab v0.7.7, with the brand new EEx engine, without any limitations, released!

This is a huge step towards the stable version - Drab’s living assigns engine has no previous limitations anymore.

Ethereum Virtual Machine implementation in Elixir

Ethereum Virtual Machine implementation in Elixir