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

Where Next?

Popular in Questions Top

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
New
Tee
can someone please explain to me how Enum.reduce works with maps
New
jononomo
I am trying to figure out how Mix knows whether the environment is test, dev, or prod – where is this set? Thanks.
New
LegitStack
I’m trying to make a websocket server in Phoenix or raw Elixir. I heard about gun, I think I could use cowboy, but since I’m not that sma...
New
beno
I will often find my self writing things similar to: case some_value do nil -> something() "" -> something() _ -> somethi...
New
vrod
I am using the Starship cross-shell prompt – it seems pretty nice, but I get some errors: [WARN] - (starship::utils): Executing command ...
New
freewebwithme
Using vs code and installed ElixirLS: support and debugger. And I got an error popped up on start up says Failed to run ‘elixir’ comma...
New
script
If I have a string “1000 cfu/ml” . I want to remove the characters and / and space . So the string is like this "1000" What is the ...
New
dotdotdotPaul
Okay, I’m having a heck of a time trying to figure out how to best handle the validation of belongs_to associations in Ecto. I’m sure I’...
New

Other popular topics Top

sen
Hi All, I set a environment variables in dev.exs , like below code. when i start server, how can i set the ${enable} value? thanks. d...
New
vertexbuffer
Hello, can anybody help here..? I have a list of players and I what to delete an element, but every for loop the list is reverting to ori...
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
TunkShif
This post is an instruction guide to help you setup your Neovim for Elixir development from scratch. It includes general information on h...
274 41539 114
New
greenz1
I have a phoenix application from which a user can download multiple(5-6) files of size 1MB. I couldn’t find anything related to sending ...
New
fayddelight
I tried installing elixir 1.11.2 erlang 23.3.4 via asdf in my zsh shell. Enabled the versions locally and globally. When I list them ...
New
nobody
Hi! In PHP: $_SERVER[‘SERVER_ADDR’] - in Elixir? Searched the docs for ip address and the web, no good results. Thanks!
New
dblack
I’ve got an issue with an app and I’ve no idea of how to troubleshoot it. I’m hoping someone here might have seen something similar. I p...
New
shijith.k
I am trying to start a new phoenix project with elixir 1.9, but mix phx.new does not work. It says that ** (Mix) The task "phx.new" could...
New
svb
Hi! Currently I want to submit a form by pressing the Enter key. However, since my input field is of type “textarea” this is just adds a...
New

We're in Beta

About us Mission Statement