Hello, thanks for the welcome and replies @BartOtten @thomas.fortes !
Totally sorry, I should have mentioned that by migrating to Phoenix I meant to use Phoenix as a “MVC” and use views, not an API server.
The reasons of why I wanted to migrate the existing app from NextJS/Django REST to Phoenix are:
-
LiveView on other parts on the app.
The app has a dashboard with all the product sales for a user and product pages that would hugely benefit from real-time updates with LiveView. -
Learning
I’m attracted to the actor model concurrency, supervision trees, capability to open tons of processes, and while the app might not need such advanced capabilities, by entering Elixir/Phoenix and learning now I hope I can familiarize myself and eventually use those capabilities when I need. I enjoy FP-styled coding at Java & TS so why not give Elixir a shot, since Phoenix is well-known and widely used already. -
Simplifying
The current NextJS “client” and Django REST “server” setup is good (I can get SSR benefits from Next) but its more cumbersome to maintain and operate with for a one-team dev like me. By keeping things server-sided (“MVC” approach instead of “API server & JS-based client app”) I can maintain only one thing (dev and deployment). Other benefit is to reduce duplication in payload typing on client/server and eliminate additional code for the client-server model (fetching/submitting data, state management, auth, etc). It’s much easier to do authentication too. -
Template
Because templating is fast (precompiled) on Phoenix, I don’t have to worry about it and can move from NextJS which I initially used because of the pre-rendered pages (and the client-heavy feature that makes me resort to React on the main post)
I know for reason no. 3 I can go with any server-side/“MVC” frameworks (aka Django since I’m already using it) but for the other reasons and because templating is fast (precompiled) on Phoenix, I dont have to worry about it.
Hope that helps to clear out some backstory for my question!
@thomas.fortes
Your usecase seems pretty similar to mine, processing images on the client, and that same reason is exactly why I did it with React (because of client-heavy functionality and my familiarity with React).
I will look into translating the React components for the image processing parts to plain JS (+LiveView perhaps), or to visit some of the “React component embedding” libraries I listed on the main post. Might want to explore the React component embedding libraries first since it would take less time and perhaps easier, but please give me some suggestions if someone has a similar case before! ![]()


















