Well, here I didn't exactly mean tools. I meant technology stacks. Can you give me a suggestion on that basis?
You can go with an atomic design (bradfrost.com/blog/post/atomic-web...) approach at the frontend with React, having small components that interacts with you nodejs endpoints. If you are going to use sockets with Node you can try socket.io (socket.io/) with express endpoints (expressjs.com/). For caching messages, chat room data and such, redis (redis.io/) may be pretty convenient. If you are going to handle file upload, you may want async behavior, a good open source solution that wirth to look at is the message broker RabbitMQ (rabbitmq.com/).
Of course, you can replace all these backend open source stuff by AWS managed services: Redis -> Elasticache, RabbitMQ -> SQS + SNS.
I suggest you also to take a look at stackshare.io/stacks where you will find the stack of the trending tech companies.
Thanks a lot, I will take all these stuff into consideration while building my project.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.