This repository contains the ordered list of Laravel topics to learn, step-by-step, with related links.
If you want to add a topic, link, or any other suggestion, please open Issues or Pull Requests.
Notice 1 : The same table below is also available as a database, so you would be able to transform it to any other format you want - PDF, chart, etc. See file roadmap.sql
Notice 2 : This content was filled into an adminpanel generated with our QuickAdminPanel - here's a video demo of that process on Youtube . By purchasing QuickAdminPanel, you support my free initiatives, like this Roadmap.
Create your very first simple Laravel project
Link icons: ๐ Official Docs ๐ฌ Video ๐ Article ๐ Course
Beginner Demo-Project: Personal Blog
To achieve this Beginner level, you would need to practice by creating something like this personal blog project .
Inside of the repository above, you will find all the details of the task, with a few example solutions.
The goal of this level is to find the first job or freelance gig
Link icons: ๐ Official Docs ๐ฌ Video ๐ Article ๐ Course
Topic
Learning Links
Routing Advanced
๐ฌ Laravel: 8 Tips for Advanced Routing ๐ฌ More videos
Route Model Binding
๐ Route Model Binding ๐ฌ Laravel Route Model Binding: All You Need To Know ๐ฌ More videos
Route Redirect
๐ Redirect Routes
Middleware
Create Custom Middleware Class
๐ Defining Middleware
Database Advanced
Database Seeders and Factories
๐ Database: Seeding ๐ Defining Model Factories ๐ฌ Laravel Factories: Generate and Re-use Fake Records ๐ฌ More videos
Eloquent Query Scopes
๐ Eloquent: Query Scopes ๐ฌ Same Eloquent Where Condition? Refactor into Local Scopes
Polymorphic relationships
๐ Polymorphic Relationships ๐ฌ Laravel.io Portal: Polymorphic Relations Example
Eloquent Accessors and Mutators
๐ Accessors & Mutators
Eloquent Collections
๐ Eloquent Collections ๐ General Laravel Collections
Soft Deletes
๐ Soft Deleting
Auth Advanced
Authorization: Roles/Permissions, Gates, Policies
๐ Authorization ๐ฌ Laravel Roles and Permissions: All CORE Things You Need To Know More videos
Authorization: Extra Packages - Spatie Permission, Bouncer, etc
๐ฌ Spatie Laravel Permission: Example Project Review ๐ Two Best Laravel Packages to Manage Roles/Permissions ๐ spatie/laravel-permission ๐ JosephSilber/bouncer
Authentication: Email Verification
๐ Email Verification ๐ฌ How to Translate/Customize Laravel Auth Default Emails
File Uploads Advanced
๐ File Uploads in Laravel
Drivers and Disks, Example of Amazon S3
๐ File Storage ๐ฌ Laravel: How to Upload Files to Amazon S3
Extra Packages: Spatie Medialibrary, Intervention Image, etc
๐ spatie/laravel-medialibrary ๐ intervention/image ๐ฌ Spatie Media Library Pro: Laravel File Uploads with Great UX [REVIEW] ๐ฌ More videos
API Basics
๐ How to Create Laravel API ๐ฌ Create Model with API Controller - in one Artisan Command Laravel API: Be Careful When Doing Changes
API Routes and Controllers
๐ API Resource Routes ๐ Default Route Files ๐ฌ Junior Code Review: Simple Laravel API - in 5 Different Ways
Working with API Clients: Postman or Alternatives
๐ Postman API Client
API Eloquent Resources
๐ Eloquent: API Resources ๐ฌ Laravel API Result: Add Fields with Map or Appends
API Auth with Sanctum
๐ Laravel Sanctum ๐ฌ Laravel API Auth with Sanctum and API Tokens ๐ฌ More videos
API Error Handling and Status Codes
๐ฌ Laravel API 404 Error: Customize Exception Message ๐ HTTP Status Codes
Debugging Errors
Log Files in Laravel
๐ Logging
Try-Catch and Laravel Exceptions
๐ Error Handling ๐ฌ Exceptions in Laravel: Why/How to Use and Create Your Own
Local Debugging Tools: Debugbar, Telescope, Ray
๐ barryvdh/laravel-debugbar ๐ Laravel Telescope ๐ Spatie Ray (Premium Tool) ๐ฌ Debug Eloquent Queries from API: Laravel Telescope ๐ฌ Spatie Ray: Laravel Debugging with Pleasure
Customizing Error Pages and Messages
๐ Custom HTTP Error Pages ๐ฌ Laravel Error Pages: Change Text or Customize Layouts ๐ฌ New in Laravel 8.26: Override 404 Page with Route Missing
(optional) Third Party Bug Trackers: Bugsnag, Flare, Sentry, Rollbar
๐ Bugsnag Laravel ๐ Flare Homepage ๐ Sentry Laravel ๐ Rollbar Laravel ๐ฌ Bug Tracking in Laravel: Bugsnag vs Flare [Demo/Review]
Sending Email
๐ฌ Laravel: 3 Ways to Send a Welcome Email (Controller vs Observer vs Events)
Mailables and Mail Facade
๐ Mail & Mailables
Configure Drivers/Services: Mailgun, Mailtrap, etc
๐ How to Send Email From Laravel, and Why We Need 3rd Party Providers For It ๐ Mail: Drivers Prerequisites
Notifications System: Email, SMS, Slack, etc.
๐ Notifications ๐ฌ Laravel Notifications: "Database" Driver - Demo Project
Automated Testing with PHPUnit
๐ฌ Why People (Don't) Write Automated Tests?
"Smoke" Tests to Check if Pages are Loading
๐ Testing: Getting Started ๐ Laravel: PHPUnit Testing for Beginners ๐ฌ PHPUnit in Laravel: Simple Example of Why/How to Test
Configure Testing Database and Test CRUD Operations
๐ Database Testing
Deployment and Version Control
Git Version Control
๐ Git ๐ฌ Git in Laravel. Part 1 - Branches: Main, Develop and Feature ๐ฌ [More videos](videos/git-version-control.md
Deployment on Live Servers
๐ Deployment ๐ How to Deploy Laravel Projects to Live Server: The Ultimate Guide ๐ What Server is Needed to Deploy Laravel Projects ๐ฌ How we Deploy Laravel: Branches, Staging Servers, Forge and Envoyer
Advanced Beginner Demo-Project: Simple CRM
To achieve this Advanced Beginner level, you would need to practice by creating something like this simple CRM project .
Inside of the repository above, you will find all the details of the task, with an example solution.
Master all Laravel features with 3-5 years of practical experience
Link icons: ๐ Official Docs ๐ฌ Video ๐ Article ๐ Course
Topic
Learning Links
Routing Extra Features
Route Caching
๐ Route Caching
Rate Limiting
๐ Rate Limiting ๐ฌ Laravel: Create Public API with Cache and Rate Limits
Invokable controllers
๐ Single Action Controllers
Database/Eloquent Extra Features
Model Observers
๐ Eloquent Observers ๐ฌ Laravel Model: Check if Any Field Was Changed ๐ฌ Eloquent Observers or Events Listeners? Which is Better?
Raw Database Queries
๐ Query Builder: Raw Expressions
All Eloquent Features
๐ All About Eloquent ๐ Eloquent: Expert Level ๐ 20 Laravel Eloquent Tips and Tricks ๐ฌ Laravel Collections: 5 Methods with Real Examples More videos
Various Extra Laravel Features
Custom Blade Directives
๐ Extending Blade
Events and Listeners
๐ Events and Listeners ๐ฌ Laravel: 3 Ways to Send a Welcome Email (Controller vs Observer vs Events) ๐ฌ Laravel: Why Observers and Event Listeners are "Risky"
Laravel HTTP Client and Guzzle
๐ HTTP Client ๐ฌ Laravel and External APIs: Get Data with HTTP Client
Login with X: Laravel Socialite
๐ Laravel Socialite
Creating Artisan Commands
๐ Writing Artisan Commands ๐ฌ How to Create Artisan Commands in Laravel
Task Scheduling
๐ Task Scheduling ๐ฌ Laravel Task Scheduling: Run Artisan Command Hourly
Caching
๐ Cache ๐ฌ Cache Eloquent Query Results to Load Pages Instantly
Real-time: Broadcasting, Echo and Pusher
๐ Broadcasting
Jobs and Queues
๐ Queues in Laravel
Queueable Classes and Jobs
๐ Creating Jobs ๐ Queueing Notifications ๐ Queued Event Listeners ๐ Queueing Mail ๐ฌ Laravel Queues 101: Example with Sending Emails
Job Dispatching, Batching and Chaining
๐ Dispatching Jobs
Processing Failed Jobs
๐ Dealing with Failed Jobs
Configuring Queues: Drivers, Redis, Supervisor
๐ Running the Queue Worker ๐ Configuring Supervisor
Laravel Horizon (optional, if you use Redis)
๐ Laravel Horizon
API Advanced
Upload Files via API
๐ Laravel API: How to Upload File from Vue.js
Generate API Documentation
๐ Laravel API Documentation with OpenAPI/Swagger ๐ฌ Scribe: New Package for Laravel API Documentation
API Versioning
๐ Versioning your REST API with Laravel ๐ฌ Versioning your API: from V1 to V2 and Beyond [video from my course]
API with OAuth and Laravel Passport
๐ Laravel Passport ๐ฌ Laravel API Auth Demo: Passport, oAuth and Sanctum
Only-API Projects with Front-end like Vue.js
๐ Vue.js + Laravel: CRUD with SPA
Only-API Projects with Mobile Apps
๐ Using Sanctum to authenticate a mobile app
(optional) Starter Kits: Laravel Jetstream and Fortify
Laravel Jetstream (requires Livewire/Inertia knowledge)
๐ Laravel Jetstream ๐ Laravel Jetstream+Livewire: Real Mini-Project ๐ฌ Laravel Jetstream: How it Works and Example How to Customize
Laravel Fortify
๐ Laravel Fortify ๐ฌ Laravel Fortify: Four Auth Things to Customize
Payments
Laravel Cashier with Stripe/Paddle
๐ Laravel Cashier (Stripe) ๐ Laravel Cashier (Paddle)
Custom Payment Providers: PayPal, Mollie, etc
๐ Subscription billing with Laravel Cashier for Mollie ๐ How To Integrate Paypal Payment Gateway In Laravel
Automated Testing Advanced
TDD: Test-Driven Development
๐ Build A Laravel App With TDD ๐ TDD With Laravel
Mocking
๐ Mocking
(optional) Laravel Dusk
๐ Laravel Dusk
Full-Text Search
Laravel Scout
๐ Laravel Scout
Drivers: ElasticSearch, Algolia or MeiliSearch
๐ ElasticSearch Driver for Laravel Scout ๐ Algolia: Scout Extended ๐ Full-Text Search with MeiliSearch and Laravel Scout
Laravel Packages
Contributing to Packages, making Pull Requests
๐ฌ How to Contribute to Laravel Docs (or any open-source repository)
Create Laravel Packages
๐ Package Development ๐ Laravel Package Development
Responsibility for architecture decisions on large projects
Link icons: ๐ Official Docs ๐ฌ Video ๐ Article ๐ Course