I'm currently working on a really Chat heavy application (with some other elements). Our stack is basically:
Backend: Phoenix (For sockets/channels and ultimate scalability) Postgres (For user/profile based stuff) Redis (In-memory datastore for queueing messages when recipients are offline)
Front End: React / React Native, Redux