We can't find the internet
Attempting to reconnect
Something went wrong!
Hang in there while we get back on track
Use proven generators, libraries, and source code to quickly launch key features for any Phoenix LiveView project.
Let your users sign into your app with nothing more than an email address. Powered by the blazing fast email provider Resend , passwords have never felt more old school.
Safeguard accounts with a two-factor implementation that supports both Authenticator apps and SMS. Comes installed with industry best practices to deter bad actors.
Accept file uploads to any cloud and associate uploaded files with other schemas in your business logic. Handle file deletion and post-upload processing gracefully.
Group users in organizations with roles and settings. Manage other and invite new users. Allows users to define a custom URL slug for their organization.
Elixir SaaS is a project I've started to document the ways I build products, specifically with Elixir, Phoenix, LiveView, Ecto, and TailwindCSS. It is a collection of individual features and expansions to those features, using similar practices and minimal external dependencies. The features above are standalone, in that they are useful in their own right and build on a freshly generated, boilerplate Phoenix project. Some features may build on top of others incrementally, leading to a greater degree of functionality in a way that still feels incremental.
I've taken inspiration from a practice that is more common in Elixir than in other programming ecosystems, which is that the code here is intended to be copied. In other words, there is no library you need to install as the developer to access the functionality here. José valim writes about this in his explanation for why phx.gen.auth exists, as opposed to a rich authentication library (and he is knowledgable on this topic, being one of the authors of Rails's Devise gem). I've made the same choice here for similar reasons; these are pre-built features and meant to be adapted to your own use cases. Many things about the code here may have to change throughout the life of your app and you should be free to have full control over that. Elixir SaaS features are designed to sit in the domain logic of your app. Copy and then modify them as if it is code that you wrote yourself.
If you have questions, require support, or have ideas for other features to be added to this project, do not hesitate to get in touch! You can find my information at the bottom of this page. I plan to continue to add code that is useful to me and that I find myself repeating in projects frequently. There is no end goal for Elixir SaaS (yet) and no path to monetize at the moment. Straightforward implementations of experiences found in typical SaaS applications is something I have always wanted to see coming from the Elixir community, and so I have started to do so myself, as best I can from the experiance I have gained.