NEW Laravel 13 For Beginners: 30-Minute Crash Course

Laravel Daily| 00:30:41|Mar 20, 2026
Chapters7
Introduces the new short course style and the idea of teaching Laravel fundamentals through compact lessons and AI-assisted demos.

A fast, practical 30-minute Laravel 13 crash course showing three demo projects, AI-assisted code generation, and core concepts like routing, controllers, blades, and Eloquent.

Summary

Laravel Daily’s 30-minute crash course on Laravel 13 is designed for absolute beginners who are short on time. Creator explains a new, dense course style for 2026 that relies on AI-assisted code generation to illustrate fundamentals without bogging you down in lengthy hand-written examples. The video walks through three demos: a simple public landing page, a blog with categories and database-backed posts, and a starter-kit-based authenticated CRUD app. You’ll see how to spin up projects with Laravel Herd, choose starter kits, and configure Pest, Laravel Boost, and Cloud Code prompts. The tutorial emphasizes routing, controllers, Blade templates, and the MVC pattern, then dives into models, migrations, seeders, and Eloquent relationships. Throughout, Laravel Boost and AI prompts are used to scaffold code, while the presenter comments on concepts like route model binding and form requests. By the end, you’ll understand the project structure, essential commands (Artisan), and how to review generated code instead of writing everything by hand. The course also points to GitHub repositories with prompts for deeper learning and mentions further topics like APIs, other starter kits, Livewire, and testing.

Key Takeaways

  • Laravel 13 beginners can build three demo projects in 30 minutes using AI-assisted code generation via Cloud Code and Laravel Herd, focusing on fundamentals rather than hand-writing all code.
  • Routing, controllers, and Blade views form the core public-site workflow: routes/web.php maps URLs to controller methods which return Blade templates.
  • The second demo demonstrates a database-backed blog using MySQL, including migrations, models, and Eloquent relationships (hasMany, belongsTo) plus route model binding.
  • Starter kits enable quick authentication scaffolding; Livewire is highlighted as a JS-light option for rapid dynamic interfaces.
  • Laravel Boost and Pest are recommended defaults for AI workflows and testing, with dashboards that guide developer tasks and code quality.
  • Code scaffolding includes migrations, factories, seeders, form requests, and resource controllers, illustrating the full CRUD lifecycle.
  • Commands like php artisan migrate and php artisan db:seed demonstrate Laravel’s powerful CLI-centric workflow, essential for database setup and testing.

Who Is This For?

Essential viewing for absolute beginners who want a practical, project-first intro to Laravel 13 and for developers curious about AI-assisted coding workflows in 2026. It’s also helpful for folks evaluating Laravel Herd, Laravel Boost, and starter-kit patterns for quick prototyping.

Notable Quotes

"This is free on YouTube or you may want to watch it on Laravel daily by lesson."
Notes the course format and accessibility options.
"So, I will have three projects generated with prompts in Cloud Code, but then I will go and explain step-by-step the fundamental concept that people would need to know when learning Laravel."
Describes the three-project structure and learning approach.
"As developers, now we need to learn to read and review the code, not necessarily write the code."
Highlights the AI-assisted coding mindset for 2026.
"The main file listing the pages of the website is routes/web.php."
Gives a concrete, practical example of where routing lives in a Laravel app.
"This is exactly what I want to mimic in this course."
Emphasizes the course’s intent to reflect real-world, AI-generated scaffolding.

Questions This Video Answers

  • how does Laravel 13 handle routing and controllers in a beginner project
  • what is Laravel Herd and how do you use it to start a Laravel project
  • what is Cloud Code in Laravel Daily and how does it aid AI-generated code
  • how do I set up a Laravel 13 project with a MySQL database step by step
  • what are Laravel Starter Kits and when should I use Livewire vs. React/Vue for a new app
Laravel 13Laravel DailyLaravel HerdCloud CodeLaravel BoostPestTailwindBladeMVCRouting in Laravel 13 vs 12+
Full Transcript
Hello guys. What you will see in this video will be a course, a new course on Laravel daily, Laravel 13 for beginners. And this is a new kind of style of courses. I thought how to proceed with courses in 2026 because no one has time for that to watch 2-hour courses or longer. So, I shortened it massively. And I need your opinion if you watch that course. This is free on YouTube or you may want to watch it on Laravel daily by lesson. The idea is this. We work on specific demo projects and the goal is to show a realistic project, very simplified design-wise, but realistic project generated by AI. Because I think that many developers will not write the code by hand in 2026 and beyond, but we need to understand the fundamentals. So, I will have three projects generated with prompts in Cloud Code, but then I will go and explain step-by-step the fundamental concept that people would need to know when learning Laravel. So, they need to understand the fundamentals, the pieces, not necessarily the deeper syntax because you can prompt AI for that now. So, I think even with the age of AI, people will still need courses, but they should be much more dense, much more practical, and using AI pretty heavily like we all do in 2026. So, this is my attempt. Please watch and share your opinion. It matters a lot to me when thinking about how to proceed with other course updates for Laravel 13 on Laravel daily. Now, let's dive into the course itself. Hello guys, welcome to this course about Laravel 13 for beginners, for someone who haven't tried Laravel at all. In this crash course in 30 minutes, I will try to explain the fundamentals of how Laravel works and we will create three demo projects in those half an hour. I will show you the example of a simple landing page with just home, about, and contact us. So, we will learn about how routing works, controllers, and views. Then, the second project will be blog with posts and categories. And then, you will find out about how database works and how to get the data from the database. And then, the third project, we will use one of the Laravel starter kits and we will create resource crowds, resource controllers, and validations, and forms with authenticated users. I think this will cover the fundamentals of what you need to know about how Laravel works as an overview. And we will also heavily use AI. I will prompt Cloud Code to generate that code. This is what I fundamentally believe in in 2026. As developers, now we need to learn to read and review the code, not necessarily write the code. So, this is exactly what I want to mimic in this course. Quite a lot of you will not write the code. You will ask AI agents to generate the code, but then you still need to understand. At least on conceptual level. You may not know some of the syntax and you may prompt AI for that, but this is exactly what I think the job of a developer will be in 2026. So, this is the premise of this course for you to understand Laravel project, the structure, and the main types of projects you would create with Laravel. Let's dive in. Let's start by creating a new Laravel project and I will show you the installer, the wizard of Laravel new project, and what choices you may want to make. Before starting with Laravel, you need to have software on your machine for PHP. So, according to the official documentation, there are two ways. Either you have prepared commands for operating systems, or my personal favorite recommendation is to install Laravel Herd. So, that is a software that will install everything you need on your machine. You can download it at herd.laravel.com. And then, here I am in my Herd folder and I launch Laravel new project. And what are the choices? Laravel has starter kits, but they are optional. It depends on what kind of projects you want to create. And by starter kit, it means authentication mechanism. So, if you choose any of those, React, Svelte, Vue, or Livewire, you would get something like this, home page with login and register buttons. So, I will use Fake Filler Chrome extension. And this is what you would see inside with the starter kit, the dashboard, and then settings to change your security or appearance or profile. So, that's if you want to create a project with authentication. But if you want to create a simple public website like a blog or API project, then you don't need the starter kits and you may choose none. We'll get to starter kit project in the third example of this course. Which testing framework do you prefer? I recommend Pest, which is now the default in Laravel. Laravel Boost, this is pretty important in AI agent era. I recommend you stick with yes, and then Laravel Boost will prepare your project with guidelines and skills for AI agents. The next question of the wizard is to choose the database. This is your personal preference, what you use. By default, it's SQLite, which means you don't need to install anything specifically. SQLite is just a file in your folder of the project. The next question is compiling the front end. Do you want to compile right now, npm install and npm run build? Because the default framework home page comes with Tailwind already prepared. And I've chosen yes. And then, the final part is configuring Laravel Boost. So, what skills and guidelines for which AI agents do you want? For the first attempt, I will advise to stick with the default, so you may choose guideline skills and boost configuration. Do you want Herd MCP for starters? You probably don't. And then, choose which AI agents, which IDEs you use. For example, I can untick Cursor, Gemini, and Open Code. And then, it will install the skills and the guidelines only for Cloud Code and Code X, which means cloud.md file and agents.md file. And that's it. That's all the installation. And now, we can do project.test, which is powered by my Laravel Herd. And yeah, this is the Laravel 13 home page. And if we open that project in VS Code or other IDE, the main thing where to start is the list of routes, which in this case is just one route of welcome page. But instead of digging deeper into default home page, let's try to create a very simple public page for a fictional startup with AI. Because we are now entering the era of fewer developers would type the code manually and more developers would read the code generated by agent. So, that's why I will initialize the repository and commit installed Laravel. And now, I will launch Cloud Code. So, in the terminal, clear, CD to project, and then I launch Cloud Code with dangerously skip permissions. I have alias for that. And I will launch this prompt for project number one in this project, the first demo, landing page for a fictional startup with a few pages to demonstrate the routing and how the pages generally work in Laravel for public-facing website. As you can see, Cloud Code catches the skill of Tailwind CSS development. That's why Laravel Boost was important. Okay, we're done in 1 minute and 23 seconds. And let's click that. And we have the home page of fictional startup with very minimal design, but that's intentional. We're talking about Laravel here, not that much about Tailwind. So, let's see what's inside the code. So, the main file listing the pages of the website is routes/web.php. So, if you navigate here, about and contact us, then the URL changes and that is powered by this file. So, these are the URLs and these are the controller methods that power those pages. Controller is a class in Laravel that gets the data from the routes, from the URL, from the parameters, then transforms that data if needed, and then passes that data to so-called Blade file. This is the classical so-called MVC approach, model-view-controller. We'll talk about models and the data a bit later. But for now, you need to understand routing, then controllers. Each controller method is responsible for separate page, but it may be separate controllers as well. This is your personal preference. And then, each controller returns home, which corresponds to the file in resources/views folder. In this case, home.blade. Blade is Laravel templating language, so HTML with some constructions on top. So, for example, for each loop looks like this with Blade. So, Blade directives start with @, @if, @foreach, and others. Also, you see Tailwind classes here and some variables. So, this is how you define the variable in Blade, and that variable come from the controller. So, this array, those keys become the variable in Blade. Also, to have separate pages using the same layout, this is how it looks. There are two ways to do that in Laravel. I will show you one of them. So, extends layouts.app. This is the main HTML for the full page. And then, we have yield content, which becomes in home.blade section content. And then, if we open resources/views/about.blade, for example, extends layout, then another section, and then section content, which is different for every page. And that title about is another section here on top, yield title. So, this is how you do with templates and same layouts for different pages. A few more important things. If you want to have a link to some kind of URL, you may reference route home, route about, and route contact by their names in routes/web.php. Each route may have optional name, which is a good practice to have the name instead of URL because URLs may change. And another thing with the front end, I mentioned that Laravel comes with Tailwind for pre-configured by default with V server. So, this is the line that ensures that NPM install and NPM run build or NPM run dev compiles the assets accordingly. And in the package.json file, you may see Tailwind here already installed with V as well. So, that's basically all you need to know to create simple public websites with Laravel, routing, controller methods, and blade views. Now, I will show you the second project demo, and this will be the prompt again with AI for that blog with data from the database. And again, I start with Laravel new project and the same wizard with the same choices as the first project. Except for database, I will choose MySQL, and this is the point I will show you how to configure MySQL in Laravel. And then the question from the wizard, "Do you want to run default database migrations?" So, Laravel comes with a few database tables pre-configured in so-called migrations, and you may run them right away if you have your MySQL database ready. But even if you haven't, it will create it for you. So, it tries to find the same database as project name, and would you like to create it? Yes. I have MySQL local server with default credentials, which is root database user and no password. And this is exactly the defaults from Laravel. Again, NPM install and NPM run build and other defaults, then the installation is done, and we're opening the project in IDE, and we'll look at the file, very important file, .env in the main folder. So, this is where you configure a lot of main things about the project like app URL, for example, powered by Laravel heard automatically, and the database. These are again my default credentials for MySQL. It may be different on your machine, but this is exactly where you provide the credentials, database username, and password. Important part that .env should be very secure on your local machine, and do not push it to any repository. On the server, there should be another .env file with the credentials for server database and server parameters. But the security rule is that this file should be git ignored and never in a public repository because, well, it contains all the passwords. And now, if we open our database, we see already some tables, like, for example, users table. This is the structure and a few more tables, and this is powered by actually the same thing of database migrations that we saw earlier in the installation. So, create users table. This is how you define the database structure in Laravel, migration file with fields inside, strings, timestamps, and others. And then if you want to transform the structure to the actual database, you run artisan command PHP artisan migrate. Laravel is full of commands, PHP artisan something. So, for example, migrate will execute the migrations, but in this case, it's nothing to migrate because we already have those database tables. But if, for example, we delete all of them and rerun those migrations again, it will execute those migrations. And if we refresh, those tables are here again. So, this is how database structure works in Laravel. And now, we open again Cloud Code and prompt to create a simple blog which would take the data from the database, and this is exactly what I want to show in this lesson. As you can see, Cloud Code AI agent is running PHP artisan command, so there's make model, make controller. We'll talk about models in a minute. This is exactly [clears throat] what is powering specific database table. And let's actually watch it in action. So, it creates the migrations for categories and posts tables. Then it creates the model, so we can actually talk about it now. Model is a class that powers the work with specific database table. So, category is for plural form of categories database table. Then you define the fillable fields. What fields do you want to work with? And then you define relationships between the tables, between the models. So, category has many posts. This is one-to-many relationship on the database level. And then the other way around, we have second model post with set of fillable columns in the database. Then we have relationship to category, which is the other way around. There's has many, and there's belongs to table. And then also, there's cast to work with date time specifically for Laravel. I will not really stay on that too much. Factory is about fake data and about testing. This is also outside of scope of this course, but basically every model may have factory with some fake data just for testing. And then there's seeder, which may use those factories to create that fake data. So, this is the seeder for fake or semi-fake categories, and this is the seeder for post. So, we'll have 10 posts, each with random category. And then we have the main file called database seeder that basically seeds all database, so you call whatever seeders you want. And probably somewhere down below, the agent executed command, not only PHP artisan migrate for the database, but also artisan DB seed to actually seed that data. And as a result, we refresh the database, and we have categories with that data. And timestamps, by the way, are automatic in Laravel with created at and updated at if you use those eloquent models. And also, posts. Again, fake data with random category ID here and timestamps here. And if we take a look at controllers, so you saw the controller for public website with hardcoded data. In this case, we use eloquent model, which basically represents the database table, and then we query. So, this is how you query the database with Laravel, with eloquent models. It's a lot of syntax options, but basically what you need to know is post, where, and then paginate or get. Probably another query is more simple for category. So, category, this query is optional, then order by name and get. So, this is how you get all the categories from the database. Also, you may specify with count of posts. And then again, similar to previous lesson, we return blade view and pass the data array. Blade views, by the way, may be dot-separated or slash-separated, which means sub folders in resources/views. So, we have one controller method for post controller for index for the list of posts, and then show specific post. And then in the routes/web, again, we have two routes, home page and the post. And then the blade layout, you already saw that, app.blade with HTML. Then post index extending layout with the content, and then we have all the variables here with if, with blade, and with variables shown with another transformation if needed. Probably, it's better now to switch to VS Code and see the project. Or actually, let's click the project here. So, project2.test, that should be the URL here. And do we have a blog? Yes, this is our result. Again, very simplified in terms of design intentionally, but what I wanted to show you is list of blog articles coming from the database, then sidebar here with a category ID, which then filters the list of blog posts. And then if we go here, there's a slug of post, which shows the post details again with the same layout similar to previous project demo. And if we take a look at the code now in VS Code, I will just briefly repeat what we saw already. So, migrations for categories and for posts. Important part is this line, foreign ID. This is how you define the foreign key between database tables in Laravel. So, foreign ID, category ID with constraint to which table. By default, it's plural name of category without underscore ID. So, categories. So, this is how you define the foreign keys. Then you already saw factories and seeders. This is all in the database folder of Laravel project. And then in the routes/web, in addition to post controller index method, we have post controller show method with interesting concept called route model binding. So, this is how you define the parameter of the URL. If you have this, for example, here, the slug, then you may define the model name and the field to automatically filter by. And then in the method of show, you type hint the model, and then that object becomes the post with all the fields from the database. So, that's called route model binding, very important concept and oftenly used in Laravel. And then the other concepts you already saw, passing the data to blade. In the blade, we have if and sections [snorts] and others, some more syntax options like in every framework, but in this course, I don't want to stay too much on the details. I want to give you the overview of how the things work. So, the main things that you need to know for such project, public website with data from the database, you need to know the same routing, controllers, and blade views. And for the data, you need to be familiar with models, database migrations, and if you want some fake data, factories and seeders. And now, I will show you the third project with starter kit. How does it work if you want to have authenticated users? So, in case of Laravel new, we will choose one of them. And if you are not a JavaScript developer, so you don't want to learn or use React, Vue, or Svelte, Livewire is your best bet. Even if you don't know Livewire, this is kind of a Laravel way to have dynamic websites without JavaScript, but you may choose Livewire starter kit and then continue using Laravel controllers inside. This is exactly what I want to show you. So, kind of the quickest way to start with Laravel. So, we choose Livewire, we choose Laravel's built-in authentication. For single-file Livewire components, this is debatable for Livewire users, but I will choose no. I have separate courses on Livewire on Laravel Daily website, so you may go into those deeper. Again, we install Laravel Boost, and Laravel Boost with Livewire starter kit, it will also install Livewire skills and guidelines if you want to use Livewire deeper. And again, we choose to run npm install and npm run build. And for Laravel Boost, same thing, but with one new addition. So, if Boost detects that some third-party package has its own guidelines, you may want to tick that box or tick it off. So, Laravel Fortify is a first-party package, but still it's a separate package for authentication, and let's choose to install those guidelines as well. For everything else, it's the defaults, but as you can see here, there are skills and guidelines. For example, for Livewire, here we have Livewire development as a skill, and also Flex library as part of Livewire. So, this is the example how Laravel Boost guidelines and Cloud MD and Agents MD and skills depend on the packages of Laravel ecosystem that you choose during installation. But of course, you may add more in the future on top, but this is outside of this course. So, now we have the project, we may go to that in browser, we may register. In this case, we have SQLite database, we create an account, and we have empty dashboard. So, we have a new user registered, authenticated, and now we build the functionality. And again, I will prompt Cloud Code for this. I want to build two CRUDS for same or similar blog, so managing the categories and managing the posts. So, I want to show you the forms, the validation, the whole life cycle of so-called CRUD. So, let's prompt for that. This will be a bit longer prompt, it will work probably for 5 minutes or so. So, I will come back at the end and comment the code step by step. Or actually, I thought it would be beneficial to watch it in action and again comment what it does, like a developer would write that manually. So, first again, we have the database make model, make controllers, and make requests. So, this is a new thing for form requests, we will have the validation files, and I will comment on them in a minute. So, it generated the files with PHP Artisan make something commands. Again, as I said, there are a lot of PHP Artisan commands, and then it fills the files with exactly the fields in migrations, the model. Again, this is how you see the same things for the second time, it's kind of repeating. So, then the factory for title and factory for post data, then seeder for five categories, seeder for three posts for each category. You can kind of read it in almost English language without even knowing the exact syntax. Then, in the form request for storing the category, we will have validation rules, and authorized through means all authenticated users may access that action. Similar update category and store post request, more validation rules, and also you may specify different custom messages for validation errors. And then, the controller. For category controller, you will see in action so-called resource controllers. So, if you have the full CRUD, typically in Laravel, there are seven methods. For that, I will open the official documentation of Laravel. So, basically, these are the methods of controller. So, index to list the data, create for the form, store to submit the form, then show individual record, edit that record, the form, update action, and delete action destroy. So, this is exactly what AI Agent is generating now. For index, we have list of categories with the blade view, again, dot separated for the folder. So, there will be a folder of categories, and then separate blade files for each page, then store method, show, and others. So, this is for the categories, and then almost identical structurally for the post. So, this is the CRUD, how it works with Laravel, and after some action. Okay, so the agent jumped to automated tests. The tests will not be covered by this course, I have separate courses on automated tests, but it's great that AI Agent runs the test and ensures that the functionality actually works, including Laravel Pint. There's Laravel Pint package for code styling, and we have the summary. Now, let's see how it works in action, and then we'll look at the code. So, if we refresh our dashboard now, we should see categories here, and I see the styling off, which means that the agent didn't run npm install and npm run build, and you can do that in Cloud Code, kind of a side tip, by doing exclamation mark, and then you can run bash commands like npm install and npm run build in my case. You can do npm run dev as well. And now, if we refresh the website, yep, we have some styling. So, this is the list of categories, no categories found. And now it's time to look at the code. So, these are the changes in Git, look at how many files. So, this was a bigger change, like 5 minutes for AI Agent. And if we take a look at category seeder, we do have category seeder and post seeder, but the main database seeder was not changed. So, this is how the main database seeder looks by default in Laravel, demo user with [email protected]. So, in this case, let's manually add this code, or actually, VS Code will auto-complete that. Or actually, we don't need the default seeder, so let's comment that out, and now we can open the terminal here in VS Code and run PHP Artisan DB seed. And now, if we refresh the page, yep, we do have demo categories. So, this is how our CRUD works. We can add a new category, we can edit any category, dot dot dot, and we can delete, probably with confirmation, indeed. So, that's how it works. For the post, there should be probably a drop-down for category. Yes, so the list of categories is passed to the create form of post, and let's see that in the code. So, in the routes web, we see a bit more code than in the projects before because it's starter kit, and we have so-called middlewares. So, middleware in Laravel is a way to protect the route or route group in this case with some kind of rules. And the most popular one is auth, and also verified means email verified, which may or may not be enabled in the user model. That's a separate topic. And the dashboard is powered by default starter kit, and these are our routes. It's not route get, this is what I meant by resource controller, it's route resource, and then automatically that route resource powers all those seven methods that I mentioned. So, index, create, store, edit, update, and destroy. Only show method is missing because it's not needed in the CRUD. With this, you basically saw it all in action. So, controllers and blade views are not new to you. What is new is store method. So, to create the data in the database, we use the same Eloquent model, category, create, and then we pass the array. The array may be just key and value, but also request validated means that the form was actually validated, and this is where we have those form requests separate classes that you saw already by AI Agent. So, these are validation rules, and only those fields are passed to the model to create the actual record in the database. And then, after you store, you return not the blade view, but you return redirect to wherever you want, to the route name, which is automatically, by the way, assigned. Again, in the resource controller, automatic route names are these. So, resource name and then dot index dot create and others. So, you redirect to that page with success message that is then shown in the blade. With edit category, you see the same route model binding we discussed earlier in the previous project. And by default, that route model binding, if you don't specify the slug, it's by ID field, by primary key. So, if we go to categories and click edit, the parameter is {slash} 1 {slash} edit, which is automatically parsed by Laravel controller with route model binding. And also, you see compact here, this is a PHP function to avoid key and value pairs if they are repeating. It's just kind of a shorter way to do the same array. And then, other Eloquent model operations is category update and category delete, which basically means exactly what the name says, update or delete the record in the database. So, that's basically all you need to know to create such CRUD-like projects with Laravel. So, choose the starter kit, Livewire is the quickest to start with if you don't want JavaScript, and then inside, you create routes, controllers, resource controllers in this case, the same blade views with Tailwind, the same Eloquent models for operations with the database, and form request for validations. And as you saw throughout all this course, you can ask AI agent to generate a lot of those things, at least the first version. So, for all of those three demo projects, I will not only put them on GitHub, but also in that repository, I will put the original prompts in markdown. So, you may understand the origins better, where do those things come from, and how they were prompted. So, yeah, this is where I want to end this course, because I think you have enough of the overview of the concept understanding about Laravel front-end mentals, and then you may want to dive deeper into separate topics of how Laravel works with APIs, for example, what are other starter kits, and how Laravel works with React, Vue, or Livewire, how automated testing works, and a lot of details. We have the courses about that on Laravel Daily website, so browse around and choose which projects you want to dive deeper into. But for now, that's it for this time, and see you guys in other videos.

Get daily recaps from
Laravel Daily

AI-powered summaries delivered to your inbox. Save hours every week while staying fully informed.