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/5. Beginner Level
Goal: to create your very first simple Laravel project.
Completed? | Topic | Learning Links |
---|---|---|
|
Routing and Controllers: Basics | |
|
Callback Functions and Route::view() |
Docs
Basic Routing
Docs
View Routes
|
|
Routing to a Single Controller Method | |
|
Route Parameters |
Docs
Route Parameters
|
|
Route Naming |
Docs
Named Routes
|
|
Route Groups |
Docs
Route Groups
|
|
Blade Basics | |
|
Displaying Variables in Blade | |
|
Blade If-Else and Loop Structures |
Docs
Blade: If-Statements
Docs
Blade Loops
|
|
Layout: @include, @extends, @section, @yield | |
|
Blade Components |
Docs
Blade Components
|
|
Auth Basics | |
|
Starter Kits: Breeze (Tailwind) or Laravel UI (Bootstrap) |
Video
More videos
|
|
Default Auth Model and Access its Fields from Anywhere | |
|
Check Auth in Controller / Blade | |
|
Auth Middleware |
Docs
Protecting Routes
|
|
Database Basics | |
|
Database Migrations |
Docs
Database Migrations
Video
More videos
|
|
Basic Eloquent Model and MVC: Controller -> Model -> View | |
|
Eloquent Relationships: belongsTo / hasMany / belongsToMany | |
|
Eager Loading and N+1 Query Problem | |
|
Full Simple CRUD | |
|
Route Resource and Resourceful Controllers | |
|
Forms, Validation and Form Requests |
Docs
Laravel Validation
Video
More videos
|
|
File Uploads and Storage Folder Basics | |
|
Table Pagination |
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/5. Advanced Beginner Level
Goal: to be able to find the first job or freelance gig.
Completed? | Topic | Learning Links |
---|---|---|
|
Routing Advanced | |
|
Route Model Binding |
Docs
Route Model Binding
|
|
Route Redirect |
Docs
Redirect Routes
|
|
Middleware | |
|
Create Custom Middleware Class |
Docs
Defining Middleware
|
|
Database Advanced | |
|
Database Seeders and Factories |
Docs
Database: Seeding
Video
More videos
|
|
Eloquent Query Scopes | |
|
Polymorphic relationships | |
|
Eloquent Accessors and Mutators |
Docs
Accessors & Mutators
|
|
Eloquent Collections |
Docs
Eloquent Collections
|
|
Soft Deletes |
Docs
Soft Deleting
|
|
Auth Advanced | |
|
Authorization: Roles/Permissions, Gates, Policies |
Docs
Authorization
Video
More videos
|
|
Authorization: Extra Packages - Spatie Permission, Bouncer, etc | |
|
Authentication: Email Verification |
Docs
Email Verification
|
|
File Uploads Advanced |
Course
File Uploads in Laravel
|
|
Drivers and Disks, Example of Amazon S3 |
Docs
File Storage
|
|
Extra Packages: Spatie Medialibrary, Intervention Image, etc |
Docs
intervention/image
|
|
API Basics | |
|
API Routes and Controllers |
Docs
API Resource Routes
Docs
Default Route Files
|
|
Working with API Clients: Postman or Alternatives |
Docs
Postman API Client
|
|
API Eloquent Resources | |
|
API Auth with Sanctum |
Docs
Laravel Sanctum
|
|
API Error Handling and Status Codes |
Article
HTTP Status Codes
|
|
Debugging Errors | |
|
Log Files in Laravel |
Docs
Logging
|
|
Try-Catch and Laravel Exceptions |
Docs
Error Handling
|
|
Local Debugging Tools: Debugbar, Telescope, Ray |
Docs
Laravel Telescope
|
|
Customizing Error Pages and Messages | |
|
(optional) Third Party Bug Trackers: Bugsnag, Flare, Sentry, Rollbar |
Docs
Bugsnag Laravel
Docs
Flare Homepage
Docs
Sentry Laravel
Docs
Rollbar Laravel
|
|
Sending Email | |
|
Mailables and Mail Facade |
Docs
Mail & Mailables
|
|
Configure Drivers/Services: Mailgun, Mailtrap, etc | |
|
Notifications System: Email, SMS, Slack, etc. |
Docs
Notifications
|
|
Automated Testing with PHPUnit / PEST | |
|
"Smoke" Tests to Check if Pages are Loading | |
|
Configure Testing Database and Test CRUD Operations |
Docs
Database Testing
|
|
Localization / Translations / Multi-Language |
Docs
Localization
Course
Multi-language Laravel
|
|
Translating Static Texts |
Article
Laravel Localization Made Easy
|
|
Translating Models in Database | |
|
Deployment and Version Control | |
|
Git Version Control |
Docs
Git
|
|
Deployment on Live Servers |
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/5. Laravel Mid Level
Goal: to master all Laravel features with 3-5 years of practical experience.
Completed? | Topic | Learning Links |
---|---|---|
|
Routing Extra Features | |
|
Route Caching |
Docs
Route Caching
|
|
Rate Limiting |
Docs
Rate Limiting
|
|
Invokable controllers | |
|
Database/Eloquent Extra Features | |
|
Model Observers |
Docs
Eloquent Observers
|
|
Raw Database Queries | |
|
All Eloquent Features |
Docs
All About Eloquent
Course
Eloquent: Expert Level
|
|
Various Extra Laravel Features | |
|
Custom Blade Directives |
Docs
Extending Blade
|
|
Events and Listeners |
Docs
Events and Listeners
|
|
Laravel HTTP Client and Guzzle |
Docs
HTTP Client
|
|
Login with X: Laravel Socialite |
Docs
Laravel Socialite
|
|
Creating Artisan Commands | |
|
Task Scheduling |
Docs
Task Scheduling
|
|
Caching |
Docs
Cache
|
|
Real-time: Broadcasting, Echo and Reverb |
Docs
Broadcasting
Docs
Laravel Reverb
|
|
Jobs and Queues |
Course
Queues in Laravel
|
|
Queueable Classes and Jobs |
Docs
Creating Jobs
Docs
Queueing Mail
|
|
Job Dispatching, Batching and Chaining |
Docs
Dispatching Jobs
|
|
Processing Failed Jobs | |
|
Configuring Queues: Drivers, Redis, Supervisor | |
|
Laravel Horizon (optional, if you use Redis) |
Docs
Laravel Horizon
|
|
API Advanced | |
|
Upload Files via API | |
|
Generate API Documentation | |
|
API Versioning | |
|
API with OAuth and Laravel Passport |
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) |
Docs
Laravel Jetstream
|
|
Laravel Fortify |
Docs
Laravel Fortify
|
|
Payments | |
|
Laravel Cashier with Stripe/Paddle | |
|
Custom Payment Providers: PayPal, Mollie, etc | |
|
Automated Testing Advanced |
Course
Advanced Laravel Testing
|
|
TDD: Test-Driven Development |
Course
Build A Laravel App With TDD
Course
TDD With Laravel
|
|
Mocking |
Docs
Mocking
|
|
(optional) Laravel Dusk |
Docs
Laravel Dusk
|
|
Full-Text Search | |
|
Laravel Scout |
Docs
Laravel Scout
|
|
Drivers: ElasticSearch, Algolia or MeiliSearch | |
|
Laravel Packages | |
|
Contributing to Packages, making Pull Requests | |
|
Create Laravel Packages |
Docs
Package Development
Course
Laravel Package Development
|
Level 4/5. Full-Stack Mid Level
Ability to create web-projects using front-end as well as Laravel back-end.
Completed? | Topic | Learning Links |
---|---|---|
|
Tailwind CSS | |
|
Choosing TALL or VILT Stack | |
|
VILT Stack: Vue, Inertia, Laravel, Tailwind | |
|
Vue.js Fundamentals with Laravel API |
Docs
Official Vue Docs
|
|
Vue.js with Inertia in Laravel | |
|
Alternative: RILT Stack - React.js with Inertia in Laravel | |
|
TALL Stack: Tailwind, Alpine, Laravel, Livewire | |
|
Laravel Livewire | |
|
Alpine.js |
Docs
Official Alpine Docs
|
|
Filament for Admin Panels |
Level 5/5. Senior Level
Goal: to be trusted with 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
Article
Does Laravel Scale?
|
|
Maintainable Code | |
|
Best Practices and Standards |
Course
PHP: The Right Way
|
|
Large Datasets | |
|
Large Database Structures | |
|
NoSQL Solutions | |
|
Eloquent/SQL Query Optimization |
Course
Better Eloquent Performance
|
|
Scaling to Multiple Databases | |
|
Working with High-Traffic Projects | |
|
Stability and Zero-Downtime Deployments |
Docs
Laravel Deployer
|
|
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:
- 64 courses (1141 lessons, 42 h 01 min total)
- Premium tutorials
- Access to repositories
- Get to ask questions