Laravel 13 Waitlist App Tutorial: Build with AI
Chapters8
Registering a user, logging into the dashboard, and overview of the main dashboard widgets.
A practical Laravel 13 waitlist app built with Livewire, showing signups, approvals, referrals, and embedding the widget into another project.
Summary
Tony Xhepa demonstrates a Laravel 13 waitlist project built with Livewire. He starts by registering a test user, then creates a waitlist called 'Access Program' with a four-spot limit and an active status. The dashboard shows key metrics like total waiting entries, today's signups, and approval rate, plus quick actions to create or view waitlists. He walks through public signup URLs, entry creation, and status transitions (waiting to approved/rejected), including referrals that boost a user’s position on the list. The video also covers administrative actions such as moving entries up or down, resending emails, and editing or pausing a waitlist. A notable feature is the ability to export CSV data and view referral analytics for the last 30 or 7 days. Tony even demonstrates embedding the waitlist into another project, updating the composer dependencies with rundev, and verifying the integration in real time. He concludes by inviting viewers to suggest project ideas and to subscribe for more tutorials.
Key Takeaways
- The app includes a public signup URL and a four-spot limit for each waitlist, with statuses like active, waiting, approved, and rejected.
- Approving a waiting entry moves it to the approved count and updates the total entries accordingly.
- Users can boost their position via referrals; the top referrer is highlighted in the analytics and the ranking dynamically updates.
- CSV export is available for referrals and waitlist analytics, allowing offline analysis of the last 30 days or 7 days.
- Embedding the waitlist into another project is supported; Tony demonstrates updating the dashboard and syncing with a separate project.
- Developer workflow includes running composer rundev to ensure dependencies stay current after changes.
- The UI provides quick actions, search by name, and filters by status to manage large numbers of waitlist entries efficiently.
Who Is This For?
Essential viewing for Laravel developers building onboarding or waitlist features with Livewire, who want practical UX patterns, admin controls, and cross-project embedding guidance.
Notable Quotes
"Hello friends, Tony here."
—Opening line establishing a personal, friendly tutorial tone.
"Now I'm going to just demo to you."
—Shifts from setup to live demonstration of the app.
"This is a public signup URL."
—Shows the publicly accessible entry point for signups.
"You are number two on the wait list."
—Demonstrates dynamic waitlist positioning as new entries come in.
"All the best and see you in the next one."
—Classic closing line encouraging viewers to subscribe and return.
Questions This Video Answers
- how do I set up a public signup URL for a Laravel waitlist app
- how can I implement a referral system to boost waitlist positions in Laravel Livewire
- how to export waitlist data to CSV in Laravel 13
- how to embed a Livewire component from one Laravel project into another
- what steps are needed to run composer rundev after code changes
Laravel 13Laravel LivewireWaitlist appPublic signup URLReferral systemCSV exportComposer rundevDashboard analyticsEmbedding widgets
Full Transcript
Hello friends, Tony here. Welcome. In today's video, I'm going to demo another project created with Laravel and Livewire. The idea for this project was to create together that project. I prepared a file with some prompts and I wanted to copy and paste the prompt on the cloud code. But I wanted to use the cloud code with the LM studio. So with local mod the quen 3 code next coder but that was too slow. Then I tried with cloud code I make a I record my screen but only for four prompts. I think the time was 30 minutes or 35 minutes screen recording only with four prompts.
Then uh I create the project behind the scenes. And now I'm going to just demo to you. Here's the project. Let's go and register. I'm going to register with uh Tony and let's use Tony example.com. I'm going to add a password here and again a password. So when we register we navigate the dashboard and the dashboard we have here some cards. So total weight list entries the today's signups approval rate also here no activity yet so recent activity and we have quick actions to create a weight list or view all weight list if I click here we have a we navigate list and we have here the input the search by name also we can filter by all status active post and closed we have a table to display all the weight list and we have a button to create a weight list.
So let's go and create a weight list and I'm going to create for example yeah let's say access program just a be join us for example let's say max capacity I'm going to leave it only for four status is going to be active we have p and closed and yeah we have also if we want we can email me on new signups but I'm going uh uncheck this and also this one and I will create the weight list. Okay. And now we have we are on the access program with list which is active. Join us is the description.
We have the created ad and also the four spot limit. We have only the four. We have a public signup URL. So this is a public signup URL. We can navigate this URL and we can share this with our friends. Total entries waiting approved reject all by zero because we just created that entries we don't have any entry we can create other entry right now so for example here and let's say test at uh test and I'm going to say just test access for example priority I'm going to leave it like this and I add the entry Okay, here is the entry as you can see.
Maybe let's zoom in one more and is waiting the status. We can approve here. We can reject, move up, move down, set the priority and also resend the email or remove. But I'm going to approve and immediately we have total entries here one and also approved one. Okay, I'm going to copy this. And if I open this in a new in a new browser, we navigate this one. So, and we can access. So, only three spots remaining. Let's go and add a name. I'm going to say Joan. And the email, let's say Joan.com. I'm going to join the weight list.
And you are in. You're the number two on the weight list. And you can refer friends with your unique link to move up to the list. So if I copy this one now and let me just open this one with the Chrome browser. And if I paste this one okay and I'm going to join here also. Okay. So you are in you are number three on the list. Okay. Now let's go on the Vivaldi and access we are on the access program. If I refresh we go down we have three. Okay. So four spot limit total entries three waiting two one approved referral stat.
So total referrals with one and John is one referral. Okay. So we referral to this John. We can approve this also approve this. And now three approved zero waiting total entries is three. Top referral is John. Okay. Because John has referred to this one. Okay. And yeah, we can move for example John up here. Okay. We can visit the analytics here. for last 30 days, 7 days and so on. And with CSV and event CSV, we can go back. We can see the referrals. Okay, only the John Do is one. We can edit, we can pause and we can close.
What is good also with this one is we can add this on the another project. So if I open or let me just open here because I have more easy the project was the cinematic the project we worked on the previous video and here I'm going to add a referral link to this uh to this project how we can do that let me I have opened this with anti-gravity and on the dashboard I added this section with some style and with a default data weight list embed and here we need to add let me just come here the slack which in this case is access okay so let's add the access program here and also access program here and the script we need here we need to add our URL which in this case is this one I'm with a copy and replace this with this one.
I think I have Yeah. Okay, I'm going to save. And now let's go and see if I refresh al here we are. And also let me just open the terminal to this one and run the composer rundev just to be sure everything is updated. Okay, let's use a fake filler and we can join the weight list. And now you are number four on the weight list. So if I come here and refresh, we have total entries four spot limit and one only one is waiting. We can reject if I want. Okay, we have the approve also here because if I say cancel nothing but if I reject and say okay now this is one is rejected and we can see it's rejected.
Okay, let's go again and I'm going to refresh and let's add one more join the weight list. You are number five on the weight list. Now if I come here and refresh we have wait we can approve this and we have four approved. So total entries five four approved one is rejected. What if I want to come here and refresh and try again join the weight list. This weight list is not accepting new entries. Okay. This was the project I created with Laravel and Livewire and I wanted to show you. Now, as I told you, I wanted to create that with you.
I prepared the pro the prompt file but was taking too long for that. I just wanted to demo you. Now, if you like such a videos, don't forget to subscribe to my channel, like the video, share with your friends because it's going to rank me on YouTube and it's going to help me to motivate to create more content like this. All the best and see you in the next one. If you have some project ideas, just drop a comment on this uh YouTube channel and I'm going to create that project for you. All the best and see you in the next one.
More from Tony Xhepa
Get daily recaps from
Tony Xhepa
AI-powered summaries delivered to your inbox. Save hours every week while staying fully informed.






