This is a Laravel learning path I've compiled from my years of experience, to provide step-by-step experience and clear picture of progress.
If you have any ideas what to change in this roadmap, email me povilas@laraveldaily.com
If you have any ideas what to change in this roadmap, email me povilas@laraveldaily.com
Level 1/4. Beginner Level
Create your very first simple Laravel project
Completed? | Topic | Learning Links |
---|---|---|
|
Routing and Controllers: Basics | |
|
Callback Functions and Route::view() |
Official Docs
Basic Routing
Official Docs
View Routes
|
|
Routing to a Single Controller Method |
Official Docs
Basic Controllers with Routes
|
|
Route Parameters |
Official Docs
Route Parameters
|
|
Route Naming |
Official Docs
Names Routes
|
|
Route Groups |
Official Docs
Route Groups
Video
More videos
|
|
Blade Basics | |
|
Displaying Variables in Blade |
Official Docs
Blade: Displaying Data
|
|
Blade If-Else and Loop Structures |
Official Docs
Blade: If-Statements
Official Docs
Blade Loops
|
|
Layout: @include, @extends, @section, @yield |
Official Docs
Blade: Layout Using Template Inheritance
|
|
Blade Components |
Official Docs
Blade Components
|
|
Auth Basics | |
|
Starter Kits: Breeze (Tailwind) or Laravel UI (Bootstrap) |
Official Docs
Laravel Breeze Official Documentation
Official Docs
Laravel UI: Official Github Page
Video
More videos
|
|
Default Auth Model and Access its Fields from Anywhere |
Official Docs
Retrieving the Authenticated User
|
|
Check Auth in Controller / Blade |
Official Docs
Determining If The Current User Is Authenticated
Official Docs
Blade: Authentication Directives
|
|
Auth Middleware |
Official Docs
Protecting Routes
|
|
Database Basics | |
|
Database Migrations |
Official Docs
Database Migrations
Video
More videos
|
|
Basic Eloquent Model and MVC: Controller -> Model -> View |
Official Docs
Eloquent: Getting Started
|
|
Eloquent Relationships: belongsTo / hasMany / belongsToMany |
Official Docs
Eloquent Relationships: One-to-One
Official Docs
Eloquent Relationships: One-to-Many
Official Docs
Eloquent Relationships: BelongsTo
Official Docs
Eloquent Relationships: Many-to-Many
|
|
Eager Loading and N+1 Query Problem |
Official Docs
Relationships: Eager Loading
|
|
Full Simple CRUD | |
|
Route Resource and Resourceful Controllers |
Official Docs
Laravel Resource Controllers
Video
More videos
|
|
Forms, Validation and Form Requests |
Official Docs
Laravel Validation
Video
More videos
|
|
File Uploads and Storage Folder Basics |
Official Docs
Filesystem: File Uploads
Video
More videos
|
|
Table Pagination |
Official Docs
Database Pagination
|
Level Completing 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.
Level 2/4. Advanced Beginner Level
The goal of this level is to find the first job or freelance gig
Completed? | Topic | Learning Links |
---|---|---|
|
Routing Advanced |
Video
More videos
|
|
Route Model Binding |
Official Docs
Route Model Binding
Video
More videos
|
|
Route Redirect |
Official Docs
Redirect Routes
|
|
Middleware | |
|
Create Custom Middleware Class |
Official Docs
Defining Middleware
|
|
Database Advanced | |
|
Database Seeders and Factories |
Official Docs
Database: Seeding
Official Docs
Defining Model Factories
Video
More videos
|
|
Eloquent Query Scopes |
Official Docs
Eloquent: Query Scopes
|
|
Polymorphic relationships |
Official Docs
Polymorphic Relationships
|
|
Eloquent Accessors and Mutators |
Official Docs
Accessors & Mutators
|
|
Eloquent Collections |
Official Docs
Eloquent Collections
Official Docs
General Laravel Collections
|
|
Soft Deletes |
Official Docs
Soft Deleting
|
|
Auth Advanced | |
|
Authorization: Roles/Permissions, Gates, Policies |
Official Docs
Authorization
Video
More videos
|
|
Authorization: Extra Packages - Spatie Permission, Bouncer, etc |
Official Docs
spatie/laravel-permission
Official Docs
JosephSilber/bouncer
|
|
Authentication: Email Verification |
Official Docs
Email Verification
|
|
File Uploads Advanced |
Course
File Uploads in Laravel
|
|
Drivers and Disks, Example of Amazon S3 |
Official Docs
File Storage
|
|
Extra Packages: Spatie Medialibrary, Intervention Image, etc |
Official Docs
spatie/laravel-medialibrary
Official Docs
intervention/image
Video
More videos
|
|
API Basics |
Course
How to Create Laravel API
|
|
API Routes and Controllers |
Official Docs
API Resource Routes
Official Docs
Default Route Files
|
|
Working with API Clients: Postman or Alternatives |
Official Docs
Postman API Client
|
|
API Eloquent Resources |
Official Docs
Eloquent: API Resources
|
|
API Auth with Sanctum |
Official Docs
Laravel Sanctum
Video
More videos
|
|
API Error Handling and Status Codes |
Article
HTTP Status Codes
|
|
Debugging Errors | |
|
Log Files in Laravel |
Official Docs
Logging
|
|
Try-Catch and Laravel Exceptions |
Official Docs
Error Handling
|
|
Local Debugging Tools: Debugbar, Telescope, Ray |
Official Docs
barryvdh/laravel-debugbar
Official Docs
Laravel Telescope
Official Docs
Spatie Ray (Premium Tool)
|
|
Customizing Error Pages and Messages |
Official Docs
Custom HTTP Error Pages
|
|
(optional) Third Party Bug Trackers: Bugsnag, Flare, Sentry, Rollbar |
Official Docs
Bugsnag Laravel
Official Docs
Flare Homepage
Official Docs
Sentry Laravel
Official Docs
Rollbar Laravel
|
|
Sending Email | |
|
Mailables and Mail Facade |
Official Docs
Mail & Mailables
|
|
Configure Drivers/Services: Mailgun, Mailtrap, etc |
Official Docs
Mail: Drivers Prerequisites
|
|
Notifications System: Email, SMS, Slack, etc. |
Official Docs
Notifications
|
|
Automated Testing with PHPUnit | |
|
"Smoke" Tests to Check if Pages are Loading |
Official Docs
Testing: Getting Started
|
|
Configure Testing Database and Test CRUD Operations |
Official Docs
Database Testing
|
|
Deployment and Version Control | |
|
Git Version Control |
Official Docs
Git
Video
More videos
|
|
Deployment on Live Servers |
Official Docs
Deployment
|
Level Completing 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.
Level 3/4. Mid Level
Master all Laravel features with 3-5 years of practical experience
Completed? | Topic | Learning Links |
---|---|---|
|
Routing Extra Features | |
|
Route Caching |
Official Docs
Route Caching
|
|
Rate Limiting |
Official Docs
Rate Limiting
|
|
Invokable controllers |
Official Docs
Single Action Controllers
|
|
Database/Eloquent Extra Features | |
|
Model Observers |
Official Docs
Eloquent Observers
|
|
Raw Database Queries |
Official Docs
Query Builder: Raw Expressions
|
|
All Eloquent Features |
Official Docs
All About Eloquent
Course
Eloquent: Expert Level
Video
More videos
|
|
Various Extra Laravel Features | |
|
Custom Blade Directives |
Official Docs
Extending Blade
|
|
Events and Listeners |
Official Docs
Events and Listeners
|
|
Laravel HTTP Client and Guzzle |
Official Docs
HTTP Client
|
|
Login with X: Laravel Socialite |
Official Docs
Laravel Socialite
|
|
Creating Artisan Commands |
Official Docs
Writing Artisan Commands
|
|
Task Scheduling |
Official Docs
Task Scheduling
|
|
Caching |
Official Docs
Cache
|
|
Real-time: Broadcasting, Echo and Pusher |
Official Docs
Broadcasting
|
|
Jobs and Queues |
Course
Queues in Laravel
|
|
Queueable Classes and Jobs |
Official Docs
Creating Jobs
Official Docs
Queueing Notifications
Official Docs
Queued Event Listeners
Official Docs
Queueing Mail
|
|
Job Dispatching, Batching and Chaining |
Official Docs
Dispatching Jobs
|
|
Processing Failed Jobs |
Official Docs
Dealing with Failed Jobs
|
|
Configuring Queues: Drivers, Redis, Supervisor |
Official Docs
Running the Queue Worker
Official Docs
Configuring Supervisor
|
|
Laravel Horizon (optional, if you use Redis) |
Official Docs
Laravel Horizon
|
|
API Advanced | |
|
Upload Files via API | |
|
Generate API Documentation | |
|
API Versioning | |
|
API with OAuth and Laravel Passport |
Official Docs
Laravel Passport
|
|
Only-API Projects with Front-end like Vue.js / React.js | |
|
Only-API Projects with Mobile Apps | |
|
(optional) Starter Kits: Laravel Jetstream and Fortify | |
|
Laravel Jetstream (requires Livewire/Inertia knowledge) |
Official Docs
Laravel Jetstream
|
|
Laravel Fortify |
Official Docs
Laravel Fortify
|
|
Payments | |
|
Laravel Cashier with Stripe/Paddle |
Official Docs
Laravel Cashier (Stripe)
Official Docs
Laravel Cashier (Paddle)
|
|
Custom Payment Providers: PayPal, Mollie, etc | |
|
Automated Testing Advanced | |
|
TDD: Test-Driven Development |
Course
Build A Laravel App With TDD
Course
TDD With Laravel
|
|
Mocking |
Official Docs
Mocking
|
|
(optional) Laravel Dusk |
Official Docs
Laravel Dusk
|
|
Full-Text Search | |
|
Laravel Scout |
Official Docs
Laravel Scout
|
|
Drivers: ElasticSearch, Algolia or MeiliSearch |
Official Docs
Algolia: Scout Extended
|
|
Laravel Packages | |
|
Contributing to Packages, making Pull Requests | |
|
Create Laravel Packages |
Official Docs
Package Development
Course
Laravel Package Development
|
Level 4/4. Senior Level
Responsibility for architecture decisions on large projects
Completed? | Topic | Learning Links |
---|---|---|
|
PHP/Laravel Design Patterns |
Course
Design Patterns in PHP
Article
Design Patterns for Humans
|
|
Creational Design Patterns |
Article
Design Patterns PHP: Creational
|
|
Structural Design Patterns |
Article
Design Patterns PHP: Structural
|
|
Behavioral Design Patterns |
Article
Design Patterns PHP: Behavioral
|
|
Well-written Code | |
|
SOLID Code |
Course
SOLID Code in Laravel
|
|
Scalable Code |
Course
Scaling Laravel
|
|
Maintainable Code | |
|
Best Practices and Standards |
Course
PHP: The Right Way
|
|
Large Datasets | |
|
Large Database Structures | |
|
NoSQL Solutions |
Official Docs
MongoDB and Laravel Integration
|
|
Eloquent/SQL Query Optimization |
Course
Better Eloquent Performance
|
|
Scaling to Multiple Databases | |
|
Working with High-Traffic Projects | |
|
Stability and Zero-Downtime Deployments |
Official Docs
Laravel Deployer
Official Docs
Envoyer - Zero Downtime PHP Deployment
|
|
Performance Optimization and Caching |
Course
Performant Laravel
|
|
Ensuring Code Quality | |
|
Writing Testable Code |
Article
How to write testable code
Article
Refactoring towards testability
|
|
Continuous Integration and Continuous Delivery (CI/CD) |
Individual Roadmap function
is only for Premium Members
is only for Premium Members
Premium members also get:
- 22 courses (477 lessons, 38 h 20 min total)
- Premium tutorials
- Access to repositories
- Get to ask questions