Why Custom Build Auth?

After a couple of decades of writing code and studying 30+ CMS/Frameworks & Enterprise Auth providers we concluded that all the Authentication/Authorization systems are still way too complex and required far too many steps.

Rather than lock ourselves into something complex and then be stuck with slow/no progress, we decided to build something from scratch that would allow us to move much faster in the long run.

We have documented all the steps taken in creating our auth system. The code is well tested and maintained so anyone can read how it all works.

The Best Way to Understand Something is to Build It!

We encourage anyone interested in understanding how things work behind the scenes to read through the auth chapters. We've attempted to include all the steps we took so that anyone can grok it.

However we know this is not the most exciting part of the application stack. If you prefer to skip the auth section entirely, you can just use it and treat it as a "service" that "Just WorksTM" and only refer to specific parts when needed.

Why Re-build Auth?

We learned a lot from building our first version of auth in Elixir. Our "Version 1" has been working in production for several years and thousands of people have used it successfully. The UI/UX for the "end-user" is fine; it's fast and already does what we need. We aren't going to change what the person using auth see very much in the next iteration. What is not fine is the maintainability and thus extensibility of the project. We recently saw this when we tried to add a new feature to auth, but we saw Ecto constraint errors.