quda

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! :roll_eyes:

Marked As Solved

quda

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… :hocho:

Cheers,
Q.

Also Liked

lpil

lpil

Creator of Gleam

Hello!

If you’re happy to go for something a bit more modular and convention based there are lots of options.

One these might fit your preferences. Personally I quite like Elli

jack

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

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

Last Post!

lpil

lpil

Creator of Gleam

Very cool. Keen to hear the comparison between Chatterbox and Thousand Island

Where Next?

Popular in Questions Top

electic
Hi, I am new to Elixir. I am trying to use the DateTime component to insert a date into MySQL however the there seems to be no way to fo...
New
joaquinalcerro
Hi there, I am working with Ecto-Postgresql and I need to call all of the records from a specific table but the table has 40,000 records...
New
Emily
I have VueJS GUIs with the project generated using Webpack. I have Elixir modules that will need to be used by the VueJS GUIs. I forese...
New
Lily
In templates/appointment/index.html.eex: <%= for appointment <- @appointments do %> <tr> <td><%= appoi...
New
nsuchy
Hi. I’ve noticed that Windows Powershell has it’s own IEX command and you cannot access Elixir’s IEX due to the conflict. This isn’t a cr...
New
Darmani72
If I have a post route which an argument: post /my_post_route/:my_param1, MyController.my_post_handler How would get the post params ...
New
gshaw
What is the idiomatic way of matching for not nil in Elixir? E.g., First way: defp halt_if_not_signed_in(conn, signed_in_account) when...
New

Other popular topics Top

minhajuddin
I have seen a lot of code which picks the first element from a list using Enum.at(0) instead of List.first. Is there a reason why people ...
New
New
jononomo
For some reason my phoenix channels are working for me in my local dev environment, but as soon as I deploy via Docker, I get a 403 error...
New
SoCreat
i’m a new one to elixir which editor can i use vs code? or atom? Thanks! :smiley:
New
Harrisonl
We have an ECS cluster with 4 services, where each task joins a single cluster, via discovery ECS discovery service. Currently when I de...
New
senggen
Erlang/OTP 25 [erts-13.2.2] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] 15:22:35.803 [error] gen_event {lager_file_backend...
New

We're in Beta

About us Mission Statement