If you think about the functionality that a chat offers, it's basically just an activity stream of messages from users. So, we've actually built quite a bit of this functionality already. The one problem we've got is that this functionality has is geared towards "activities" and not chat and messages.
Fear not! We'll get the chat-specific functionality and UI set up quickly so that we can instead focus on more interesting things; namely ensuring only authenticated users can view and participate in the chat.
Let's start by building a real-time chat demo. We'll get the chat boilerplate functionality in place and then we can look at how we can add authentication to the app.