Library

Course
Livewire
Build an Appointment Booking System With Livewire

Building an availability calendar and booking system is a notoriously difficult problem to solve. That’s exactly what we’re going to cover in this course. Step by step, we’ll build an appointment slot generator that calculates availability based on employee schedules, employee’s booked time off, the length of service chosen, existing appointments, and cancelled appointments. For maximum flexibility, we’ll also allow multi-employee availability checks, so we’ll be able to see every employee who can perform a service (and their available slots). To finish up, we’ll create an entire booking flow with Livewire, including a beautiful booking calendar that shows detailed availability across multiple dates, the ability to choose a time slot — and finally the ability to book an appointment. Phew. We’ve got a lot to learn — let’s build a booking system with Livewire!

6 episodes
26 mins
Course
Laravel
Liking Things in Laravel with Redis

Let’s skip the database and build the ability to like any model in Laravel, using Redis. Traditionally you’d reach for the database for this kind of thing, but as you load more models and start performing checks within relationships — things begin to slow down. With a key-value store like Redis, tracking users who have liked comments (or anything) keeps everything ridiculously fast.

6 episodes
21 mins
Snippet
Laravel
Getting the Table Name From a Model in Laravel

Sometimes we need to reference table names throughout our codebase, like when we're using the DB facade. Although table names don't change often, I still get an uneasy feeling hardcoding them. It's so much better to reference the model directly so we have one source of truth for the table name. So, let's learn how to do that! We'll also create a trait that allows static access to any of our model table names to keep our code a little tidier.

1 episode
3 mins
Course
Livewire
Drag and Drop Sorting With Livewire

Easily add drag and drop sorting functionality to your Livewire components with an Alpine directive, powered by Sortable.js. We’ll start with a list of ordered items, activate drag and drop sorting, and then feed the new order back to Livewire to instantly update the database. Once you’re done, you’ll be able to reuse this functionality in any of your Livewire components.

6 episodes
22 mins
Course
Inertia
Build an Appointment Booking System With Inertia

Building an availability calendar and booking system is a notoriously difficult problem to solve. That’s exactly what we’re going to cover in this course. Step by step, we’ll build an appointment slot generator that calculates availability based on employee schedules, employee’s booked time off, the length of service chosen, existing appointments, and cancelled appointments. For maximum flexibility, we’ll also allow multi-employee availability checks, so we’ll be able to see every employee who can perform a service (and their available slots). To finish up, we’ll create an entire booking flow with Inertia (using Vue), including a beautiful booking calendar that shows detailed availability across multiple dates, the ability to choose a time slot — and finally the ability to book an appointment. Phew. We’ve got a lot to learn — let’s build a booking system with Inertia!

39 episodes
5 hrs 0 mins
Snippet
Laravel
Trending Things Over Time With Laravel

Building a trending list of content with Laravel is actually pretty easy. In this snippet, we’ll take a look at how to create a list of trending articles over time, gradually decaying less viewed articles and pushing popular articles to the top. You’ll also be able to adjust the decay levels, and update the frequency of decay to tweak how sensitive your trending content is and how ‘realtime’ it appears.

1 episode
7 mins
Course
Laravel
Logging Unique Views in Laravel with Redis

If you need to log unique views in Laravel, you might reach for a database table to track IP addresses or another unique piece of data. Let's take a look at speeding things up both in performance and complexity by using Redis and the HyperLogLog probabilistic data structure. Once we're done, we'll set up a period command to sync views back to the database for easy ordering, and then create a trait to share functionality between other models.

4 episodes
22 mins
Course
Livewire
Crop and Upload Profile Photos with Livewire

Using Livewire, Alpine and Cropper.js (or any cropping library), we’ll create an embeddable form field for users (or any other model) to upload profile photos. The form element will launch a modal, where users can crop and adjust their profile photo, before being able to preview and save the cropped image — or clear everything out and start again. You’ll learn: - How to launch modals in Livewire - How to use Cropper.js with Alpine - How to resize images on the backend with the spatie/image package - How to pass data between Livewire components

10 episodes
43 mins
Course
Laravel
Build an Appointment Booking System With Laravel

Building an availability calendar and booking system is a notoriously difficult problem to solve. That’s exactly what we’re going to cover in this course. Step by step, we’ll build an appointment slot generator that calculates availability based on employee schedules, employee’s booked time off, the length of service chosen, existing appointments, and cancelled appointments. For maximum flexibility, we’ll also allow multi-employee availability checks, so we’ll be able to see every employee who can perform a service (and their available slots). To finish up, we’ll build a simple UI with Alpine.js, with a beautiful booking calendar that shows detailed availability across multiple dates, the ability to choose a time slot — and finally the ability to book an appointment. Phew. We’ve got a lot to learn — let’s build a booking system with Laravel!

37 episodes
4 hrs 49 mins
Course
Laravel
reCAPTCHA with Laravel

Adding Google reCAPTCHA to a Laravel form isn’t too much trouble, but what happens when we want to re-use it for other forms? This course focuses on setting up reCAPTCHA using Alpine.js to fetch the token, and then middleware to verify the token based on a threshold in our config. We’ll add a Blade directive too, so we’re able to easily use reCAPTCHA for any forms in our Laravel apps — just by adding a couple of lines of code.

8 episodes
49 mins
Course
Laravel
Build a Referral System with Laravel

Let's build a feature complete Laravel referral system, completely from scratch. We’ll cover generating referral codes, setting a cookie to track the referral process, hooking up referrals to subscriptions and displaying detailed referral stats in a dashboard, so your users can see how they're doing. On the admin side, we'll set up a job to automatically generate a CSV with all the amounts you need to pay out each month, automatically mark referrals as paid, and display historical referral payments for users.

24 episodes
2 hrs 39 mins
Course
Laravel
Social Authentication with Laravel

Need to add social authentication to your Laravel apps? It’s almost zero effort using Laravel Socialite. We start with the basics, add authentication with one provider, then use a design pattern to make adding additional services a breeze.

12 episodes
1 hr 4 mins
Course
Inertia
Multiple Drag And Drop File Uploading and Processing with Inertia

Build a multiple file chunked uploader in Inertia with the ability to pause, resume and cancel uploads. We’ll also be able to edit metadata (like the title and description) for each upload — even while they’re uploading and processing. In the second half of the course, we’ll learn how to queue and process uploaded files on the backend (like encoding videos), and in realtime, report back to the client with progress updates using WebSockets. It’s everything you need to know to upload and process large files in Inertia.

17 episodes
1 hr 56 mins
Course
Laravel
Dropdown Autocomplete Search Anything in Laravel

Using the power of Laravel Scout and Meilisearch, let’s build an instant dropdown search in your Laravel apps. We’ll start with the basics of indexing data, then use the JavaScript autocomplete library to instantly show results as the user types — even multiple sources at the same time!

12 episodes
1 hr 3 mins
Course
Livewire
Livewire Multi Step Forms

Everything you need to build multi step forms in Livewire. We'll cover the basics of creating a multi step form, adding steps, navigating steps and accessing state using the laravel-livewire-wizard package. Finally, we'll build a fully working practical example with more advanced step navigation, file uploads, and custom state.

15 episodes
1 hr 38 mins
Course
Livewire
Chunking Large Uploads in Livewire

Effortlessly handle large file uploads in your Livewire apps with chunked, resumable uploading. We’ll cover the entire upload process, display a progress bar, then add the ability to pause, resume and cancel uploads. From there, you’ll be able to handle huge file uploads anywhere in your applications.

13 episodes
53 mins