Build a Livewire App With Me!
Join me as we build an application from an idea to a functional prototype. We will use Livewire Volt, Reverb, and learn some fun AlpineJS tricks along the way. What does it look like to think through building an application, making it work, and then making it beautiful?
Progress
Series Info
- Episodes
- 21
- Run Time
- 3h 26m
- Difficulty
- Intermediate
- Last Updated
- Sep 16, 2024
- Version
- Latest
Series Episodes
- Episodes (21)
What We'll Build
How do we take an idea and turn it into a functional prototype? What are the tools we'll use? How will we make it beautiful?Prepping Our Workspace
It's always best to just jump right in and start building. Let's get the tools we need all set up and ready to go and then take some time thinking through how we'll structure our application's data models.Models and Migrations
Now that we have our data models in place, let's put those plans into action and create our database so that way we can start building our application.Adding a Component Library
Using additional packages or libraries can help us build our application faster, especially when it comes to styles. Let's add a component library (WireUI) to our application and choose some styles to use.Refactoring Migrations and Methods
When you're building an application, your data models change over time. Let's refactor our migrations and methods to make it easier to add new Listening Parties to our application.Livewire Volt Full Page Components
When we use Livewire Volt, we have the option of using full page components. What are the things we need to think through using this approach?Prepping the Podcast Job
Let's find the best way to get the application working instead of trying to solve for all options at once.Process the RSS Feed
What information can we get from a podcast RSS feed? Let's see what we need in our application and then use a background job to grab the information we need and calculate the rest of the data.Styling the Landing Page (Part 1)
Once we have the data we need, how do we start to show that data in a way that fits for our application and in a way that looks good? Let's start with the first page of our application.Styling the Landing Page (Part 2)
Let's improve the barebones look of our application and use TailwindCSS and WireUI to make it look nicer.Adding Alpine.js to the Landing Page
As we finish improving the look and feel of our application's landing page, let's use AlpineJS to add some dynamic elements.Using Custom Fonts
An application wouldn't be complete without a logo. Let's add a custom font and pretend it's a logo so that we can prettify our application with minimal effort.Setting Podcast State with Alpine.js
As we start building the real-time listening experience for our application, how can we use AlpineJS to keep users in sync, even if that's just on the client?Adding a Scheduler to the Application
What's the easiest way to make sure our application data stays up to date on the server? Let's use a scheduler to update listening party state and then use that data to update our application's views.Building a Waiting Room
How can we use AlpineJS to keep all of our users seeing the same data on without using websockets (yet)? Let's build a waiting room for our application until the podcast listening party starts.Give Consent to Play Audio
The browser policies for playing audio are geared towards the user's privacy. Let's give the user the ability to consent to playing audio and then use that consent to determine if and when we should play the podcast.Syncing Alpine.js and Livewire
One of the benefits of using Livewire is it's so closely tied to AlpineJS. How can we use server-side state to keep our AlpineJS client code displaying the same data?Creating a Podcast Player
Before we reach for other options or libraries, what can we do with basic CSS and a little bit of AlpineJS? Quite a lot.Real-time Chat with Laravel Reverb
Once you have the structure set up for a chat application in Laravel Livewire, adding real-time functionality is incredibly simple. Let's take a look.Real-time Emoji Reactions
Event broadcasting is incredibly flexible. How can we take client-side emoji reactions and broadcast them to people who are in the listening party?What's Next?
Usually when you build an application, it's never quite "done". I'll give you a few ideas for what you can do next to make your application even better.