[0:00] Hello guys, today I'm starting a new [0:01] series of videos on this channel. [0:03] Building a typical Laravel SAS. And [0:06] first the reminder, today is the last [0:08] day for Black Friday deal for Laravel [0:10] Daily to get 40% of yearly or lifetime [0:13] membership. And this video may convince [0:15] you to do that if you haven't taken the [0:17] membership yet. So I'm starting a new [0:20] course on Laravel Daily, Typical Laravel [0:22] SAS. And here on the YouTube channel, I [0:24] will publish first five videos today and [0:27] then the rest of the week. And the topic [0:29] of this first video will be choice of [0:31] starter kit. So for now, I have three [0:34] videos published as a course. You can [0:36] watch them right now on Laravel Daily. [0:38] And my plan is to shoot one video per [0:40] day or roughly like that and publish [0:43] more lessons, which probably will be the [0:46] longest course on Laravel Daily ever [0:48] because I want to get deeper. I recently [0:50] talked oneonone to a lot of Laravel [0:52] Daily members and I realized a lot of [0:54] them want to create SAS whether for [0:56] themselves as a product or for clients. [0:59] So I tweeted a few ideas and then after [1:01] some feedback and request from the [1:03] community I landed on this plan of a [1:06] typical Laravel SAS. So the idea is that [1:08] if you master those topics like use a [1:11] rose multi-tenency subscription and then [1:13] a few more extra functions you will be [1:16] ready to deliver kind of like 70% of [1:18] typical projects with Laravel. Of course [1:21] that 70% is number out of thin air but [1:24] you get the idea. Many Laravel project [1:26] can be boiled down to pretty typical SAS [1:29] and for this case for each topic I want [1:31] to get deeper explaining why behind the [1:33] decisions for example to choose the [1:35] starter kit to choose the model of [1:37] multi-tenency to choose various [1:40] subscription and billing options that's [1:42] why the videos will be longer. So for [1:44] example, the first video that you will [1:46] watch right now in a minute after I stop [1:48] talking with the intro will be about [1:50] starter kit choice. An 8-minute video [1:52] explaining why I chose certain specific [1:55] starter kit for Laravel 12 with all the [1:58] variety of starter kits now available. I [2:00] will pick the one that requires the [2:02] least prerequisites and upfront [2:05] knowledge while using the most modern [2:08] versions of the full stack ecosystem [2:10] around Laravel. Maybe you can guess [2:13] that. So, if you are intrigued which [2:14] starter kit I chose for this video, you [2:16] should watch until the end. So, yeah, [2:18] enough intro. Let's dive into choosing [2:20] the starter kit for a typical SAS. And [2:22] again, today is the last day, so-called [2:25] Cyber Monday, for 40% off yearly or [2:28] lifetime membership. In this video, I [2:30] want to start creating my SAS project. [2:32] And first, I run Laravel new and then I [2:35] immediately have the question, which [2:37] starter kit? Over the years in Laravel, [2:40] there were a lot of starter kits. and [2:42] what is the actual current way to choose [2:45] and in this video I want to not just [2:47] choose but explain you why and what are [2:50] the options and what may be better [2:51] option for your case for a different [2:54] project. So currently if you Google [2:56] Laravel starter kits of course you land [2:58] on the official page of starter kits [3:00] which show three official Laravel 12 [3:03] starter kits react view and livewire. If [3:06] you choose one of them, basically the [3:08] prerequisite is that you work with one [3:10] of those full stack technologies, which [3:13] may be a problem if you're just a [3:15] back-end developer wanting to create [3:17] your SAS without learning React viewer [3:19] LiveWire. The problem is that there's no [3:22] plain blade starter kit, which makes me [3:24] turn to older generation of starter [3:27] kits. So if we take a look at the [3:28] documentation of Laravel 11 starter [3:30] kits, we have Breeze and Jetstream which [3:33] were both released during Laravel 8 [3:35] release and they are still supported in [3:37] Laravel 12 and they promise to be [3:40] supported in the future versions. So you [3:42] could choose Laravel Breeze for example [3:44] if you just want breeze and blade and I [3:47] have a separate tutorial on Laravel [3:49] daily how to use breeze in Laravel 12. [3:51] So you choose non-starter kit and then [3:52] install breeze separately and you get [3:55] something like this play and blade with [3:57] tailwind and then you create things on [3:59] top and to be honest I thought for this [4:02] SAS project to choose Laravel breeze to [4:05] avoid prerequisites of react view or [4:07] live wire but the problem with breeze [4:10] and jetream is that it's based on [4:12] tailwind 3. So even the structure of how [4:15] Tailwind is used in Laravel project for [4:17] Breeze, it's a bit different with files [4:19] like Tailwind config.js and other a [4:22] little outdated structure. So it does [4:25] still work and you can use breeze if you [4:28] don't care about Tailwind version. And [4:30] yes, you can upgrade Tailwind 3 to [4:32] Tailwind 4 in Breeze and I have a [4:33] separate tutorial for that. But people [4:35] in the comments are reporting that this [4:37] automatic tailwind upgrade works well [4:41] for simple projects but not necessarily [4:43] for bigger projects with more [4:45] dependencies. Then you have quite a lot [4:47] of manual work to upgrade various [4:49] components which kind of beats the [4:51] purpose of starter kit. Starter kit by [4:54] definition should be easy to install and [4:56] then you can easily move on to create [4:57] your custom code. Right? And if you want [4:59] to choose laravel gestream it has two [5:02] problems. First problem the same thing [5:04] it's tailwind threebased and also here [5:07] you still have prerequisites of either [5:09] available stocks here you see available [5:12] stocks livewire blade or inertia view so [5:14] it's not plain blade and this was [5:16] actually the reason why Laravel breeze [5:18] was created in the first place so back [5:21] in Laravel 8 days first Taylor released [5:23] jetstream and then the community asked [5:25] so what about plain blade and Laravel [5:28] breeze was the answer for that so what [5:30] we covered so far option one official [5:32] starter kit not ideal because they have [5:33] prerequisites. Option two, breeze and [5:36] jesterream also not ideal because [5:38] tailwind 3 and other prerequisites. So [5:40] then you may turn to community starter [5:43] kits unofficial not firstparty starter [5:45] kits and for that I found a website [5:47] called Lara kits which lists a lot of [5:49] starter kits so we can browse them for [5:51] example order by downloads and of course [5:54] the official starter kits have the most [5:57] amount of downloads but also on top of [5:59] that there are things like Genesis [6:01] filament starter kits our own Laravel [6:04] daily starter kit which is plain blade [6:07] and others but I've browsed around those [6:09] starter kits And the problem with all of [6:11] those, well actually two problems. First [6:14] problem, if the starter kit was created [6:16] at some time, you don't have any [6:18] guarantees it would be updated because [6:21] quite often starter kits are created for [6:23] their own usage for that company or that [6:26] developer. And I see quite often they're [6:29] not updated to latest version. So it's [6:31] starter kit for the time being. And also [6:34] then for each starter kit, you would [6:35] still need to learn their code, learn [6:38] the documentation, which is not ideal [6:40] either. So as much as I like our own [6:42] Laravel daily starter kit, it was [6:44] created for our own needs, but I would [6:47] really recommend firstparty starter kits [6:50] in most cases. Finally, before I reveal [6:53] which starter kit I will choose for this [6:54] SAS, I need to mention paid starter [6:57] kits, premium starter kits. I'm not [6:59] affiliated with any of them but two of [7:01] them are really popular on the market [7:03] which is Sassy Kit and Lara Fast. So [7:06] they would give you full SAS [7:08] capabilities of Laravel and also [7:10] Filament on top. So if you want to just [7:13] pay money and have a lot of features [7:14] inside you can pay roughly $200. The [7:17] price is similar for both. So Larfast at [7:20] the moment is $1.99 size kit the [7:22] cheapest version is $239. And then you [7:25] have the list of features something like [7:27] this. So it's not starter kit, it's more [7:29] like SAS full kit. But then this is of [7:32] course another dependency. So you need [7:33] to learn how that starter kit works. You [7:36] may not like some of their technical [7:37] decisions or structure or choice of tech [7:40] stack. But if you care about launching [7:42] your SAS quickly, this may be the [7:44] quickest way. Just pay money and have [7:47] full package. And now let's get back to [7:49] our terminal and I will choose one of [7:51] the starter kits and I will explain why. [7:53] So, Laravel new gives us the choice of [7:55] these starter kits. And I will choose [7:57] Livewire because LiveWire is the closest [8:00] option to plain Laravel and Blade. And [8:03] you can actually even skip using Live [8:05] Wire for custom features on top of the [8:07] starter kit. Let me show you that in [8:09] action. So, let's choose LiveWire and [8:11] let's follow the default installation. [8:14] So, built-in authentication. No, I don't [8:16] want to use Laravel Vault. I'm good with [8:19] best Laravel boost for now. Let's skip [8:21] that one. And yeah, the installation [8:23] goes on. It will finally ask us to run [8:26] npm install and npm run build. And yeah, [8:28] it's [clears throat] good. And now in [8:29] the browser, if we launch SAS.est [8:32] powered by my local Laravel herd, we [8:34] have the homepage. And if we try to [8:36] register, this is the form powered by [8:38] LiveWire. But the thing is for now, we [8:41] don't need to change anything in the [8:42] code. So we don't really need to use [8:44] LiveWire actively or know about it. It [8:47] just works. We create account and we're [8:49] inside the dashboard. And if we take a [8:51] look at the code now, here I am in the [8:53] routes web. And as you can see, it's [8:56] pretty similar to default Laravel. So [8:58] route view, route get. And for some [9:02] settings, it uses livewire components, [9:05] which act kind of like Laravel [9:07] controllers in this case. But then [9:09] basically on top of that, we can create [9:11] controllers blade views, which would be [9:13] just reusing the main layout. But the [9:16] main point is that we can do it without [9:18] using LiveWire. So let's do exactly [9:21] that. Make view pages about which [9:23] creates empty blade and then in the [9:25] route for example let's add here about [9:29] and about page and of course the page is [9:31] pages about. Okay. Now let's go to the [9:34] dashboard blade page which is X layouts [9:38] app. Copy from there pages about. Paste [9:41] here. And then let's change the [9:43] dashboard to about powered by cursor [9:45] tab. And in here, I'm not sure which [9:47] part is responsible for the main thing, [9:50] but let's just type about page and leave [9:52] it as is. And finally, we go to sidebar [9:56] blade, which is powering the menu of [9:58] LiveWire. And here we have Flux [10:01] components, but we don't need to care [10:03] much about them. It's using Flux library [10:06] free version. And we can just copy paste [10:09] without really even digging deeper how [10:11] it works. And if we hit tab, cursor [10:14] would auto suggest route about. Now if [10:16] we refresh our page refresh, we have [10:19] about here with the design and with the [10:21] page text here inside. And as you can [10:24] see, I haven't written any code of [10:27] LiveWire, which means that LiveWire [10:29] starter kit provides the O functionality [10:31] with LiveWire and is closest as you can [10:34] be to plain Laravel Blade and good old [10:37] Laravel controllers with routing, but [10:40] also you have the most modern version of [10:43] Tailwind and also in the settings [10:45] including pretty recently added two [10:47] factor authentication. So yeah, this is [10:50] the logic behind the choice of starter [10:52] kit for SAS application and in the [10:55] future videos we will build features on [10:56] top of this starter kit.