What is Legendary?
Legendary is a template and framework for building PETAL-stack web applications without reinventing the wheel. To this end, it comes out-of-the-box with several things you probably want and need for your application:
- Authentication & Authorization
- Admin interface & dashboard
- Lightweight content management / blogging
- Background & scheduled jobs with Oban
- Tailwind CSS
- Alpine JS
- Fluid HTML email templates
- Full CI / DevOps scripts
Whether you are building a weekend project or a new business, you should be able to skip to the interesting part.
Legendary is free and open-source.
Who Are You?
My name is Robert Prehn. I’ve been developing Phoenix applications for over six years now (since before Phoenix was 1.0!). I’m a consultant who has worked with hundreds of clients in dozens of industries to build and improve web applications.
As I went from client to client in the Elixir ecosystem, I noticed something— we’re all solving the same basic problems again and again. And they aren’t even the interesting problems we set out to solve! So many teams are re-inventing user accounts, roles, permissions, content management, scheduled jobs, admin areas, dashboards, etc, etc. To me, these are not things every team needs a unique solution for.
That’s why I created Legendary— to give teams a baseline that they can use so that they can focus on their unique challenges.
What is it?
Legendary is part template and part framework. When you download the template, you are getting a fully-functional Elixir app. It comes with a selected set of packages installed and configured for you with reasonable defaults. We’ve integrated those packages so that they all work together (e.g. admin is protected by auth and lets you edit content). We’ve included a few modules unique to Legendary such as our simple content engine. The template gives you direct access to the code— you aren’t beholden to my decisions and you can custom to your heart’s content.
Why would I want to use it?
I’m sure it’s not for everyone. If you really want to hand pick every package and write every bit of your authentication code (and admin system and email templates and CI configuration) from scratch, you might not like it.
But imagine a weekend project. You set out with a goal and two days to deliver it. Starting from scratch basically gives you two options— build something that gets to the point but is really unpolished, or build something polished but never get to the point.
Or imagine a small engineering team at a new company. You only have so much time and so much budget. Chances are, that time and that budget has to go toward the thing that brings in users and revenue. The rest of the experience— especially the experience for developers, product managers, customer support, etc— gets de-prioritized. What if that small engineering team could focus on great features for users while not sacrificing their own tools?
Ok, I’m sold. What now?
Check out the getting started guide and tutorial in our documentation!
How can I help?
The framework is in its early days. There’s still so much more I want to include. If you feel like this is a valuable project to exist in the Elixir ecosystem, I have two requests: