quda
Non-MVC web framework?
I am wondering if are there other reliable web frameworks in Elixir that are not based on MVC design pattern ?
Maybe something based on MVVM or multi-tier ?
PS: I know Phoenix is great, but not for everybody, sometimes seems rigid, cumbersome… so please don’t insist to convince me about it, I just want to experiment other flavors of web dev/Elixir.
Thanks! ![]()
Marked As Solved
quda
Just an update (closure) to this topic.
I set my own stack and modus operandi for web dev w/ Elixir:
- I use plug_cowboy on the backend to manage the web server operations, routes, REST etc.
- Also on the back-end, the connection to the ArangoDB (a non-SQL db engine) instance is realized through Arangoex - wrapper/adapter.
- Front-end is developed using Vue.js (I transplanted the SPAs from old Node framework we used)
- Created my own/custom functions that somehow act as controllers - this took a lot of effort, time.
Notice that everything is at minimums, extra-light.
It took a lot of time and frustration to set all of these, but we are very satisfied now, it runs blazing fast, it’s light, easy to manage, didn’t need that bloatware of Phoenix. I know, this is not a solution for everybody, has limitations, it just fits our purpose.
If one need an out-of-the-box, full framework, he should probably use Phoenix. Nevermind the learning curve… ![]()
Cheers,
Q.
Also Liked
lpil
Hello!
If you’re happy to go for something a bit more modular and convention based there are lots of options.
- GitHub - elixir-plug/plug: Compose web applications with functions · GitHub : The underlying abstraction the Phoenix uses can be used directly.
- GitHub - CrowdHailer/raxx: Interface for HTTP webservers, frameworks and clients · GitHub : An alternative framework based around modularity and pure request/response functions
- GitHub - elli-lib/elli: Simple, robust and performant Erlang web server · GitHub : A simple Erlang web server with a pure request/response interface.
- GitHub - ninenines/cowboy: Small, fast, modern HTTP server for Erlang/OTP. · GitHub : The big popular Erlang web server that is commonly used directly in other BEAM languages.
- GitHub - novaframework/nova: Web framework for the BEAM — Erlang, Elixir, and LFE · GitHub : A newer convention based web framework in Erlang.
One these might fit your preferences. Personally I quite like Elli
jack
Since cowboy and plug_cowboy was suggested (and used as solution), I would like to suggest Bandit and Thousand Island.
The naming might be bad haha but I’m very interested in those two projects, the ideas behind them are great and there is also a great presentation I saw some time ago. I see a lot of potential on it.
Thousand Island is an alternative to Ranch, and Bandit is an alternative to Cowboy.
https://github.com/mtrudel/thousand_island
You can check the project here: https://www.youtube.com/watch?v=ZLjWyanLHuk
trarbr
Just to list some more alternatives:
- Aino: An Elixir HTTP framework built on top of elli
- MochiWeb: An Erlang library for building lightweight HTTP servers.
- Webmachine: A “REST toolkit” - it is an application layer that adds HTTP semantic awareness on top of MochiWeb, see the Webmachine Overview for more
I have not used any of them, but I do know that Webmachine is quite different from MVC.
There is also another one in Elixir, but I can’t think of it right now. It’s very DSL-driven, meant to remove a lot of boilerplate, and supports both REST and GraphQL APIs… I can’t remember the name right now though








