An Elixir Phoenix-based backend for the chat app that uses REST-like endpoints as well as sockets to provide functionality for chat rooms. It uses a custom authentication system using short-lived auth tokens and long-lived, revocable refresh tokens. It includes e2e authentication for private and group conversations.