Progressive web apps - (Elm or any Javascript frameworks) with Elixir/Phoenix in Backend

We are a startup based in India. Now in our company, we have been migrating from PHP/NodeJS to Elixir/Phoenix.

For small projects, we are using PHP. For Big Projects, we are migrating to Elixir/Phoenix.

Regarding Progressive Web APP which will be Robust and Stable way when considering Long term Elm or some javascript frameworks for the front end. We are using Elixir/Phoenix for the backend.

We will be getting project requirements for PWA in all kinds of the platform(Ecommerce/RideSharing/Booking/food delivery )

Which will be good for Front End. Elm or any javascript related(reason/vue/angular/react/purescipt).

Anything apart from this also. Please mention it.

We don’t want our team to study different front end languages for different projects.

Please share your experience and suggestion. Your feedback will be a great help to us. Thanks:-)

NOTE: we have just started learning Phoenix Live View

I would go for Elm. The “no runtime errors” promise is really great.
I don’t know if it’s really the case in practice. But I’ve seen a lot of talks about it, and they confirm this.

The only thing is the interoperability with JS libraries. If you really heavily on it. Maybe Elm will not fit your needs.

1 Like

I have played with a lot of front end technologies, but I have not put a lot of them into production so my opinions come from a hobbiest’s perspective.

The most interesting thing I’ve found when using Phoenix with lots of other front end technologies like React, Elm, ReasonML (which was also React I guess), or even native Web Components is that they don’t really have a lot to do with Phoenix.

Where Phoenix does come to play is in your page loading strategy (are you a single page app, or a multi-page app). If you want to create a multi-page app, and optimize the JavaScript loaded on each page, then you spend a lot of time messing with your JavaScript bundler (e.g. Webpack) and you can use the view templates and View modules to help ensure the right JavaScript bundle is loaded at the right time, but you don’t use a huge amount of erb templates and and view modules for the most part.

Another challenging part of using these kinds of frameworks is trying to figure out how to get “Elixir data” fed into the views. When you are using erb templates, injecting some Elixir data into a page is as simple as using a <%= %> template tag. When you are using Elm, React, and other kinds of client-centered front end frameworks you have to

1 Like