The Laravel Workshop
Buckle up, this is the workshop you've been waiting for! In fact, this course is such a massive undertaking to the point that it required three Laracasts instructors. Join Jeffrey Way, Simon Vrachliotis, and Jeremy McPeak as we build a fictional X-like platform, called Pixl, entirely from scratch!
Each instructor is responsible for one piece of the puzzle. Simon will tackle the static HTML and CSS build. Then Jeremy will convert it into a traditional and dynamic Laravel application. Finally, Jeffrey will demonstrate how to transform a server-side app into a full SPA. Let's go!
Series episodes
HTML and CSS (16)
Figma Design Overview
4m 45sExplore the Figma design to learn spacing, layout and key UI elements—align visual goals before rebuilding your app's interface.
Vite Dev Server
3m 31sStart a Vite dev server, scaffold a Tailwind-ready project, and set up a local playground to speed frontend development and gain confidence.
Tailwind Theme Customization
8m 29sCustomize Tailwind config to match your design system, tweak colors, spacing, fonts, and shadows to turn Figma into production-ready code.
Login Screen: Overall Layout
14m 28sBuild a responsive two-column login screen layout using Tailwind flex utilities to match the original UI's proportions and structure.
Login Screen: Action Buttons
17m 56sImplement primary and secondary login buttons with hover and disabled states, consistent spacing, and accessible interactive styling.
Login Screen: Word Stack
14m 24sRecreate the login screen's vertical word stack using a flex-column trick, custom tracking, and sizing. Follow a clear, hands-on walkthrough.
Login Screen: Responsive Pass & Final Touches
22m 55sMake your login screen fully responsive across breakpoints with stacking behavior, refined spacing, and final cleanup for a clean, consistent UI.
App Screen: 3-Column Layout
12m 4sLearn to build a responsive 3-column app layout with CSS Grid—scaffold sidebar, feed, and profile panels fast with clear, practical steps.
App Screen: Sidebar
20m 45sBuild a polished left sidebar with navigation links and refined styling, creating a balanced, connected UI for your app screen.
App Screen: Navigation
9m 13sBuild a top app navigation bar: position it, manage z-index stacking, and ensure a consistent, responsive UI across pages.
Feed: New Post Prompt
18m 49sBuild an inviting new-post prompt with placeholder text, avatar placement, and refined spacing and borders—practical UI/CSS tips for your feed.
Feed: Post UI
21m 13sCreate a polished post UI with avatar, author info, timestamp, and responsive spacing—step-by-step CSS/HTML guidance to match your design.
Feed: Post with Replies
24m 6sExtend your post UI with nested replies—learn indentation, visual separation, and scalable thread structure for clean, maintainable discussions.
Feed: Reply Form
7m 35sAdd a responsive reply form beneath posts - ensure smooth layout flow, clear visual hierarchy, and practical CSS/UX tips.
App Screen: Responsive Pass & Final Touches
17m 36sPolish your app layout for all screens—tighten spacing, refine mobile styles, and apply final responsive tweaks so the UI snaps into place.
Profile: Header Section
26m 26sDesign a distinctive profile header with avatar, user info, and subtle background treatments—polished UI tips to give profiles unique identity.
Laravel and Blade (30)
Installing Laravel
8m 17sInstall Laravel into an existing repo - set up the app, configure the dev server, and serve feed and profile views step-by-step.
Extracting the Navigation, Aside, and Layout
7m 41sExtract navigation and aside into reusable partials and layouts, learn how to componentize your app markup for cleaner, maintainable views.
Creating the Artists to Follow Component
5m 34sBuild an 'Artists to Follow' reusable Blade component to display curated artist suggestions, simplify sidebar UI, and boost engagement.
Extracting the Post Form
7m 21sRefactor duplicate post/reply markup into a reusable Blade partial to simplify views, cut duplication, and speed up Laravel maintenance.
Creating the Feed Item Partial View
11m 14sExtract and build a reusable feed-item Blade partial to display PIXL feed items, supply mock data, and prepare your app for real content.
Generating Feed Replies
9m 4sExtract reply markup and update your data structure to generate feed replies, treating them like posts to streamline your Laravel feed.
Creating the Profile Model
9m 39sBuild a Profile model in Laravel: split User/Profile, add one-to-one relation, migration, factory, fillable fields, and Faker avatars for tests.
Building the Post Model
9m 37sBuild a Post model that handles posts and replies using nullable parent_id, add Eloquent relations, migration indexes, and a reply-ready factory.
Preparing Likes and Follows
8m 18sCreate Like and Follow models with migrations, constrained FKs, unique indexes and Eloquent relations to prevent duplicates and power social features.
Modeling Reposts
5m 5sModel reposts as posts in Laravel: add repost_of_id, nullable content, self-relationship, tweak factories and tests to support quote/plain reposts.
Publishing Posts
10m 6sLearn to publish posts in Laravel: add a Post::publish method, scaffold Pest tests, run migrations, fix factories, and pass them.
Replying To Posts
5m 14sImplement a reply method so profiles can reply to posts, link replies to originals, and verify single/multiple replies with tests.
Basic Reposts
7m 48sLearn how to implement reposts in Laravel: create a repost factory/method, handle plain and quote reposts, wire relationships, and pass tests.
Preventing Duplicate Reposts
7m 28sPrevent duplicate reposts in Laravel by adding a DB unique constraint (profile_id+repost_of_id), using firstOrCreate, adding removeRepost and tests.
Liking Posts
10m 45sImplement likes in Laravel: add Like::create/remove, enforce DB uniqueness, and test counts to prevent duplicate likes.
Following Profiles
11m 33sAdd profile following in Laravel: enforce unique follows, prevent self-follow, implement createFollow/removeFollow with tests for toggle behavior.
Seeding The Database
7m 43sSeed the database with about 20 profiles, posts, likes, follows, reposts and replies for realistic test data, then run php artisan db:seed.
Displaying Top Level Posts
20m 3sBuild a ProfileController and profiles.show route, eager-load counts and top-level posts, add cover image support and view partials.
Implementing The Replies Page
15m 40sBuild a 'Replies' profile page: fetch posts with a user's replies, eager-load profiles/counts, add route/view, and convert to Post/Reply components.
Creating The Header Component
10m 13sExtract a Profile Header component, gate engagement buttons with a showEngagement prop, and prevent replies appearing on posts pages.
Displaying A Thread
11m 46sShow threaded posts in Laravel: add PostController/posts.show with route model scopes, eager-load relations and counts, and support nested replies.
Finalizing the Artists to Follow Component
8mFinalize the Artists-to-Follow component: implement real profile suggestions for both signed-in and anonymous users to boost engagement.
Displaying the Timeline
18m 46sLearn to build a timeline query that aggregates posts from followed profiles—reposts, replies, and likes—so signed-in users see relevant activity.
Creating Posts
6m 34sLearn to build Laravel Request objects, controller methods, and Blade components to create posts—practical, step-by-step guidance for developers.
Replying to Posts
12m 40sAdd reply functionality to posts in Laravel: build components, routes, and handlers so profiles can reply - hands-on, step-by-step guidance.
Reposting, Liking, and Following
7m 7sImplement repost, like, and follow UI in PIXL—learn practical, step-by-step wiring to activate social interactions quickly and confidently.
Deleting Posts, Unliking, and Unfollowing
10m 38sDelete posts, unlike content, and unfollow users in PIXL—follow a friendly, step-by-step guide to wire UI and backend actions fast.
Creating Social Button Components
7m 54sBuild reusable Blade social buttons for like, repost, and follow—learn component structure, props, and markup for clean, maintainable UI.
Cleaning Up
4m 47sRefactor partial views into Blade components—clean up your Laravel project for clearer, reusable UI and easier maintenance, step by step.
Refactoring Queries
14m 15sRefactor controller queries into query classes to simplify logic, improve testability, and keep your Laravel code clean and maintainable.
From Blade to SPA (18)
Welcome To Section 3
16m 16sJoin Jeffrey Way in Section 3: clone Simon and Jeremy's work, install dependencies, and add a composer format task to run Pint and Rector.
The VILT Stack
19m 44sBuild the VILT stack—Vue, Inertia, Laravel, and Tailwind CSS. Follow step-by-step setup and configuration to get a modern full-stack app running.
The Feed Page
23m 21sMigrate Blade feed views into Vue single-file components with a friendly, step-by-step workflow for converting each file.
Named Routes And Ziggy
5m 9sUse Laravel's route() for hrefs and learn Ziggy to access named routes in JavaScript—keep URLs consistent and maintainable across your app.
SVGs Can Be Vue Components
5m 22sTurn SVGs into Vue components to hide markup, enable reusability, accept props, and simplify your UI with clean icon components.
API Resource Classes
10m 54sLearn how to use Laravel API Resource classes to shape and secure data for SPAs—send only what clients need with clear, testable responses.
The Create Post Form
7m 56sBuild a dynamic 'create post' form with Inertia 2's Form component—streamline validation, state, and submissions for faster development.
The Post Item Component
17m 53sCreate a reliable Post item component: render likes, reposts, and replies with accurate counts, clear labels, and responsive UI patterns.
Post Commenting
10m 35sBuild post replies and interactive reply forms: toggle reply UI on button click, add threaded commenting with a hands-on demo.
Show A Single Post
14m 12sCreate a single-post page that shows a post and its replies — hands-on guide to routing, views, and loading them.
Dropdown Menus And Headless UI
16m 53sAdd accessible dropdown menus for post actions using Headless UI — implement view, delete, and other links quickly with minimal code.
The Profile Page
14m 15sBuild user profile pages: clicking avatars navigates to a profile showing bio, replies, and activity - a hands-on guide to routing and views.
Follow Functionality
9m 32sWire up the follow/unfollow form to the backend—learn to submit requests, update the UI, and enable profile follows instantly.
Flash Messaging
7m 46sShow instant user feedback with FlashMessages—display temporary alerts after actions like posting, following, or updating a profile.
The Marketing Page
7m 23sAdd a polished splash marketing page by cloning Simon's repo—create a welcoming, conversion-focused landing page for guest users.
Browser Testing Workshop
25m 31sJump-start your browser testing: follow hands-on examples and ready-made test files to structure a scalable test suite and speed up real-world QA.
Deploy Pixl Using Laravel Forge
7m 14sDeploy Pixl to production with Laravel Forge - step-by-step, easy setup so you can push your app live confidently and quickly.
Section 4: You
1m 53sYou've finished the series — now take control: get recommended feature projects and practical guidance to build, learn, and ship.




