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 β Test
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
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