Should I just use Phoenix for my use-case?

I want to build a system for a cruise selling agency in order to make proposals and invoices in a centralized manner. I will need to have 3 roles basically, client, seller, admin. I want to centralize the generation of such proposals, and also allow the notification to the client via various channels (mail initially)

I also want to feed product info into proposals, and will need to add on that later

It depends…

Your choice is not really to chose phoenix, because phoenix is not your application, but to chose if it would be easier for You to write your business logic with Elixir/Functional Programming, or any other language (Ruby for example)/OOP style.

I think it is a perfect scenario for DDD/FP way.

If You go the phoenix way, You will find it much more reliable, scalable, etc. Performance qualities are well known for Elixir/Erlang, but… accessibility is hum… not the main feature :slight_smile:

If You go the ruby/rails way, it might also fit your needs, and You may find it easier if You have already OOP knowledge, but it will not scale well, then again, it depends on the size of your agency.

All You have described can be done in many ways, so You need to find the best tool for your requirements.