Probably not something I'd roll my own with, at least not with Rails. A lot of folks build stuff like this with Elixir as the BEAM is well-suited for chat applications. However, it sounds like you've got a big app already so you don't want to introduce a totally new platform to your stack. You might want to investigate something like MongooseIM with a JavaScript XMPP client. Authentication would be one of the trickier components, but I believe MongooseIM now supports JWT which is very common with React, or you could just render a token in your HTML and have a react component just for the chat pick it up. XMPP/MongooseIM itself supports all of these scenarios, you can even have the companies use full XMPP clients if you don't want to build out a whole backend just for them.