Laravel with Vue.js Workshop is a full-stack course in building web apps with Laravel 13 and Vue 3, from Eloquent, user accounts, REST and GraphQL APIs to single page apps with Vue Router, Pinia and Inertia. It suits PHP developers moving to a framework and anyone who looks after both front end and back end, and you leave with a shopping cart and a blog ready to deploy.
Laravel is a PHP framework that suits everything from small projects to large systems, whether you work alone or in a team, and it was designed from the start to work with Vue.js, either as a single page application calling an API or through Inertia using Laravel's own routing and controllers. Developers who already know some PHP can therefore grow into full-stack developers who handle both the front end and the back end with one toolset.
This course builds web applications with Laravel 13 and Vue 3. Learners install the tools, use routes, controllers, Blade and Vite, design databases with migrations and Eloquent, and build CRUD features with validation, login and user permissions. They create REST and GraphQL APIs, send email through queues and build a real-time dashboard, then write Vue 3, build a single page application with Vue Router and Pinia, and get to know Inertia. The course closes with shopping cart and blog workshops, testing and deployment to production. (5 days, 6 hours per day, 30 hours in total, Intermediate level.)
What you’ll gain
Install and structure a Laravel 13 project following the MVC approach
Design databases with migrations and use Eloquent with related data
Build CRUD features with validation, login and user permissions
Create a REST API with Sanctum and a GraphQL API with Lighthouse
Use email, queues and real-time broadcasting together with external services
Build a single page application with Vue 3, Vue Router and Pinia connected to Laravel
Choose between an API-driven SPA and Inertia to suit the job
Write tests and deploy a Laravel project to hosting or a server
Who this course is for
Anyone who wants to build web applications covering both the front end and the back end
PHP developers who have not used a framework yet, or who use another framework and want to move to Laravel
Developers who want to add Vue.js to the Laravel systems they maintain
IT managers who set the web technology direction for their team
General learners with some background in PHP and databases
Prerequisites
Confident use of a computer and the internet
Basic PHP, and some experience with MySQL or another database
Basic knowledge of HTML, CSS and JavaScript
A laptop that can run PHP, Composer, Node.js and VS Code, with permission to install software
Curriculum
Course Details
This course is the 2026 edition of the Laravel with Vue.js Workshop. It runs for 5 days, 6 hours per day (30 hours in total, 09:00-16:00), as lectures with labs and workshops. Intermediate level. This edition moves from Laravel 9 to Laravel 13, uses Vue 3.5 with script setup, Vue Router 5 and Pinia, uses Sanctum for APIs and adds Inertia with the Vue starter kit. The real-time topic moves from Firebase
to Laravel's own Reverb, GraphQL is condensed into one section and testing with Pest is added. The shopping cart and blog workshops and the deployment to production remain. The course overlaps in part with Basic Laravel for Beginners and Basic Vue.js 3 but focuses on connecting the two sides. Sending real email and deployment use the learner's own accounts and server. Learners take home a lab guide, source code for every lab and the workshop projects.
Day 1Laravel 13 Basics
Section 1: Lab: Setting Up Tools and Installing Laravel 13
Getting to know Laravel, the MVC approach and reference documentation
Install PHP, Composer and Node.js with Laravel Herd on Windows and macOS
Create a project with the Laravel installer and choose a starter kit
Project structure, the .env file and commonly used Artisan commands
Lab: a starter project under Git used throughout the course
Section 2: Routes and Controllers
Create routes with parameters, groups and names
Create controllers and pass data to views
Resource controllers and route model binding
Read request data and return different kinds of response
Lab: product list and product detail pages
Section 3: Blade, Components and Vite
Blade layouts reused across the whole site
Blade components, slots and commonly used Blade directives
Show images and other assets through Vite
Style pages with the Tailwind CSS that ships with Laravel
Lab: a shop page template
Section 4: Lab: Databases with Migrations and the Query Builder
Configure a MySQL or SQLite connection
Create, change and roll back tables with migrations
Create test data with seeders and factories
Insert, read, update, delete and search with the query builder and raw SQL
Lab: a product and category database with sample data
Day 2Eloquent, CRUD and User Accounts
Section 5: Eloquent ORM
Read, search, create, update and delete data with Eloquent
Soft deletes, restoring and permanent deletion
Casts, and accessors and mutators with the Attribute class
Query scopes for reusable conditions
Lab: manage product data with Eloquent
Section 6: Lab: Eloquent Relationships
One to one, one to many and many to many
Has many through and pivot tables
Polymorphic relationships, both single and many to many
Eager loading to fix the N+1 query problem
Lab: CRUD on data with several kinds of relationship
Section 7: Lab: Forms, Validation and File Uploads
Create and edit forms with a CSRF token
Validate data with form requests and show error messages
Sessions and flash messages after saving
Upload images with Storage and display them
Lab: a complete product CRUD with images
Section 8: Authentication, Middleware and User Permissions
Registration, login and email verification from a starter kit
Read the logged-in user's data
Create middleware and register it in bootstrap/app.php
Define roles and permissions with gates and policies
Lab: an admin area only administrators can open
Day 3APIs, GraphQL and Real Time
Section 9: Lab: REST APIs with Laravel
Prepare an API with php artisan install:api and API routes
Shape responses with API resources and pagination
Error handling, findOrFail and the Accept header
Token authentication with Sanctum
Lab: a product API tested with Postman or Bruno
Section 10: GraphQL with Lighthouse
How GraphQL differs from REST and when it fits
The schema definition language, types, inputs and enums
Queries and mutations with Lighthouse directives
Protect data with @guard and test with GraphiQL
Lab: a GraphQL blog API
Section 11: Email, Queues and External Services
Send email with mailables and test with Mailpit
Configure a real email provider and your own domain
Move slow work into queues
Call external APIs with Laravel's HTTP client
Lab: an order confirmation email sent through a queue
Section 12: Lab: A Real-time Dashboard with Reverb
Broadcasting and WebSocket concepts
Install Reverb with php artisan install:broadcasting
Create events and public and private channels
Receive data in Vue with Laravel Echo
Lab: a sales dashboard that updates as soon as a new order arrives
Day 4Vue 3 with Laravel
Section 13: Lab: Getting Started with Vue 3 in Laravel
Install Vue 3 with Laravel through Vite
Single file components and script setup
ref, reactive and computed
v-if, v-for, v-bind, v-on and v-model
Lab: a component that lists products from the API
Section 14: Components and SPAs with Vue Router
Props, emits and one-way data flow
Install Vue Router and use history mode
Set up a fallback route in Laravel to support the SPA
RouterLink, named routes and navigation guards
Lab: a multi-page SPA running on Laravel
Section 15: Lab: Pinia, Composables and Sanctum SPA Authentication
Manage state with Pinia
Move reusable logic into composables
Call the API with Axios and handle loading and errors
SPA login with Sanctum, session cookies and CSRF
Lab: member pages that require a login
Section 16: Inertia and the Vue Starter Kit
How Inertia works and how it differs from an API-driven SPA
The structure of the Vue starter kit with TypeScript, Tailwind and shadcn-vue
Pass data from controllers to Vue pages and submit forms back
Criteria for choosing between Blade, Inertia and a separate SPA
Lab: a category management page with Inertia
Day 5Workshops, Testing and Deployment
Section 17: Workshop: A Shopping Cart with Vue and Laravel
Design the database and API for products, carts and orders
A shop and shopping cart SPA with Vue and Pinia
Checkout with validation in both Vue and Laravel
Notify the real-time dashboard of new orders
Present the work and review code together
Section 18: Workshop: A Blog with Laravel
Posts, categories and slugs for readable URLs
Manage images and media in articles
Comments and user profile pictures
Pagination, search and author permissions
Tidy article URLs and metadata so posts are easy to find
Section 19: Lab: Testing, Git and Code Quality
Write feature and unit tests with Pest
Test the API and user permissions
Git branches, pull requests and teamwork on GitHub
Use an AI assistant to write and review code, and verify the result with tests
Lab: a core test suite for the shopping cart
Section 20: Lab: Deploying to Production
Prepare shared hosting or a server and connect with SSH from Windows and macOS
composer install, npm run build and a production .env file
storage:link, config and route caching and folder permissions
Run the queue worker and Reverb on the server
Lab: put the blog live and check images and login
Schedule & training options
For individuals — public rounds
No public rounds are open right now. Join the waiting list and we will contact you first when the next round opens, or ask us on LINE. Or call 02-570-8449 or 088-807-9770
There are two ways. The first is to choose the Vue starter kit when you create the project, which sets up Vue 3, Inertia, TypeScript and Tailwind for you. The second is to install vue and @vitejs/plugin-vue with npm, add the Vue plugin to vite.config.js alongside laravel-vite-plugin, create the app with createApp in resources/js and mount it in a Blade layout that loads the script with @vite. For a single page app, use Vue Router with createWebHistory and add a fallback route in Laravel so every URL returns the same page.
How does GraphQL differ from a REST API?
REST splits endpoints by resource and the server decides the shape of each response, so clients may get too much data or need several calls. GraphQL has a single endpoint where the client's query states exactly which fields it wants, fetching related data in one request. Mutations handle creates, updates and deletes, and a schema written in SDL defines the types clearly. In Laravel, the Lighthouse package is a common choice for GraphQL, while REST APIs use API resources together with Sanctum.
What is Pinia, and how is it used to manage state in Vue?
Pinia is the state management library recommended for Vue. It holds data that many components share, such as shopping cart items or the logged-in user. You create a store with defineStore, either with state, getters and actions or as a setup store using ref and computed, and use it in any component. When a value changes, every view using that store updates immediately, without passing props down through many layers.
Who is the Laravel with Vue.js Workshop course for, and what should I know beforehand?
It suits anyone who wants to build web applications covering both the front end and the back end, PHP developers who have not used a framework or want to move to Laravel, and developers who want to add Vue.js to existing systems. You should be able to write basic PHP, have some experience with MySQL or another database and know basic HTML, CSS and JavaScript. Please bring a laptop that can run PHP, Composer and Node.js.
What will I be able to do after the Laravel with Vue.js Workshop course?
You will be able to build web applications with Laravel 13 using routes, controllers, Blade and Eloquent, add user accounts and permissions, create REST and GraphQL APIs, send email through queues, build a real-time dashboard, create SPAs with Vue 3, Vue Router and Pinia, use Inertia, write tests and deploy to production, with shopping cart and blog projects to build on. Participants who complete the training receive a Certificate of Completion with its own number, which can be verified online.
Can the Laravel with Vue.js Workshop course be run in-house for our team?
Yes. It can be run in-house for your team, with the workshops adapted to your work, such as an admin system or membership system your organisation is developing. You can request a quotation from this page, or contact us on LINE @itgenius or by phone on 02-570-8449.
Once you can build websites with Laravel, real projects soon need more than CRUD pages: more complex data relationships, reports, search, email, background work that runs through a queue, scheduled tasks, and tests that let you change code with confidence.…
Once you can build a website with Laravel, the next challenge is making it cope with larger, real workloads. Long-running tasks have to move into the background with queues, controllers that keep growing must be split into testable pieces, and the team needs…
Web applications keep getting more complex. Writing everything in plain PHP often leads to duplicated code, no structure the whole team understands, and rebuilding the basics such as login, form validation and security for every project. Laravel is a widely…