In this episode, we're kicking things off by introducing what we'll be building throughout the course: a real-time, multi-room chat application using Laravel Reverb and Livewire.
We start by checking out the main features of the finished chat app. You’ll see how easy it is to create different chat rooms, and users can move between them freely. The users list updates live as people join or leave a room, so everyone always knows who's hanging out. We also look at the cool typing indicator that pops up when someone is typing, and you'll learn how customizable it is.
Messages show up instantly across all connected users in a room, so everyone stays in sync. While it looks pretty straightforward, there are important details—like properly handling the chat input so hitting Enter sends a message (and not just a new line), or how to support multi-line messages with Shift+Enter. We'll use AlpineJS for those little touches that make typing feel great.
Under the hood, you'll find out how we can efficiently update the chat without overloading Livewire or making too many database queries. Plus, we cover "whispering"—direct client-to-client messages for features like showing when someone is typing, without constantly pinging the backend.
So if you’re curious how all this fits together, stick around! In the next episode, we’ll jump right into setting up Laravel Reverb and start building.