This full-stack application lets you create listening parties—spaces where users can enjoy a podcast together, share emoji reactions, and chat in real-time.
The feature-rich homepage shows ongoing parties with their status and start times, and allows easy party creation. When setting up a party, you can pick the date and time using a simple WireUI date picker. After creating the party, you’ll enter a waiting room with a countdown to the start time.
The real-time chat with emoji reactions is the highlight, letting you comment and express yourself while listening. You need to be logged in to comment, but guests can react with emojis freely.
Once the podcast ends, a card will notify you of the session's conclusion.
Built on the TALL stack (Tailwind, AlpineJS, Laravel, Livewire) and WireUI components.
PROJECT_ROOT
├── app
│ ├── Events # Real-time events for reactions and messages
│ ├── Http
│ │ └── Middleware # Custom middleware
│ ├── Jobs # Background job processing
│ └── Models # Eloquent database models
├── config
│ └── wireui.php # WireUI-specific configurations
├── database
│ └── migrations # Project-specific database migrations
├── resources
│ ├── css # Custom styles
│ ├── js
│ │ └── alpine # Custom AlpineJS scripts for listening parties
│ └── views
│ ├── components # Reusable Blade components
│ ├── livewire # Livewire components for pages
│ └── home.blade.php # Homepage template
├── routes
│ ├── channels.php # Broadcast channel authentication logic
│ ├── console.php # Schedule definitions for tasks
│ └── web.php # Web routes for application
└── tailwind.config.js # Tailwind CSS configuration