Which framework for a new project

I’ve been using Elixir and Phoenix for two projects, yet. I like Phoenix, but having in mind that server-side templates is nowadays less sexy (I am in love with Vue.js), what would be a great match for a new project which have the following requirements:

  • Must use Websockets for communication between front-end and back-end, regardless of the realtime features. No REST API. HTTP(S) is used only to serve static content and for authentication.
  • Backend must handle PubSub (like Channels in Phoenix).
  • Data model with Ecto/PGSQL

I think Phoenix still a great match, but isn’t an overkill?

Thanks,

JP

The nice thing about Phoenix is that that it doesn’t have much overhead :slight_smile: So my two cents - definitely Phoenix, it’s WS support is really awesome.

5 Likes

Nope, not overkill :slight_smile:

Since you need distributed PubSub you’ll find it a fantastic fit. Also since you want Ecto, you’ll find integration of protocols thru the phoenix_ecto project that makes your life easier.

Lastly, the inclusion of server-side templates does not make it overkill, after all Phoenix.Template amounts to only 400 LOC:
https://github.com/phoenixframework/phoenix/blob/master/lib/phoenix/template.ex and the majority of folks need to render an index page at any rate :slight_smile:

10 Likes

I was basically coming here to say what @yurko said. People tend to assume that Phoenix is heavy, but it’s really just a thin layer around Plug. You’re not looking at a difference of raw ruby vs rails or something along those lines.

It’s one of the things that makes it such an easy go-to for…everything.

5 Likes