I was the front-end engineer at http://jianliao.com which is like Slack flavored by Teambition. So I may talk about the React part here and hope it helps. Jianliao was built with Node.js and React. We used Node.js to deliver messages(HTTP for sending and WebSockets for pushing) and grab resources from the Web and React for the UI part.
In a Chat app, there are lots of UI components on messages, users, and topics, which mostly same models but several different views. React fit into this pattern very well thanks to its templating language nature. Also there were many reasons to compose components, so heavy UI framework like React(also Angular, Vue, Ember...) is required. And hot module replacement is very necessary for webapps at this scale, you may find that in Webpack, Browserify, JSPM, etc. Since React not at making forms I would not say it's a perfect choice to use it due to the heavy use of forms in configurations of integrations.
Also the data layer had something important. It includes lots of boring code to sync data from server and to send data to the server. It's just you have two copies of data to update, one on the server, one in the JavaScript runtime. I fought against that problem for long but I don't have a good solution for it.