I thought I would share some thoughts regarding some user's reactions to Jetstream here on this board.
I've seen some criticism that Livewire / Inertia are "young" stacks that haven't been proven or are not used by enough people. Here is one flaw with that: the stack previously created by laravel/ui was used by even less people. It was not a properly configured Vue SPA. It was a weird mash-up of a single file Vue component with no Vue router and no reasonable way to even structure the application using Vue out of the box. It wasn't a good way to build an application. I never could have used it as configured to build a production ready application. It wasn't even setup to build an application at all without you manually reconfiguring everything to use Vue Router (or Inertia).
Regarding the "Livewire" stack in Jetstream. That is just Blade. You do not have to use Livewire at all. Livewire is not a sprawling UI framework that takes over your entire application. It is a tool for creating components that behave in a "Javascripty" way without using JavaScript. You can use it for a single portion of your site. It does not take over your application in the same way that something like Vue or React does. You can entirely ignore the "Livewire" part of that stack and just use Blade if you want to.
Inertia is just Vue without the complexity of Vue Router. I built Laravel Vapor as a Vue SPA and it's my personal opinion that working with Inertia is a \*much more\* productive way to pair the power of Vue with Laravel's backend routing system. Inertia is a small library that just gives you a way to render Vue components and hydrate their props from your Laravel backend. That's it. That's all it does.
Regarding Tailwind, it's just my opinion that it's a much better tool than Bootstrap. When I first started using it, I thought it was harder than Bootstrap. I was wrong. Bootstrap is harder than Tailwind. Bootstrap is less flexible and Bootstrap's approach to responsive feels like a pipe dream. Tailwind, in my opinion, is just a more robust and powerful way to build application UIs.
Regarding React / Bootstrap users being "screwed". You aren't. Anyone can build an open source package that is a scaffold for Laravel + React + Bootstrap applications and release it on GitHub. The previous laravel/ui package works fine with Laravel 8.x for applications that are upgrading. For those with namespace problems - just add the $namespace property back into your RouteServiceProvider.
Finally, thank you all for using Laravel. I really appreciate it and I have a blast developing it and trying to make it as good as I can for everyone. Jetstream is simply my vision for what a great, productive starting point for Laravel looks like in 2020. Different people may have a different vision. They are free to code theirs and release it.
Thank you for everything you do!
I’m just glad that Pest didn’t become the default testing framework.
Makes sense. Congrats on the release!
As someone who’s [most popular open source project](https://github.com/rappasoft/laravel-boilerplate) will probably be killed by Jetstream, i’m super excited for it.
It’s nice to see the young progressive frameworks getting a chance in a large ecosystem – and I hope I have the skills and willpower to upgrade mine to use the same technologies soon because I do believe Bootstrap is such a pain in the ass to work with.
Livewire is such an amazing package, i’m doing my best to learn it quick and make [useful packages](https://github.com/rappasoft/laravel-livewire-tables) for the community to benefit from.
Tailwind still scares me but i’m hoping to dive into it soon as well, but i’m open to change and judging by the community response it will probably be the right choice for me.
You are not required to use these things, be thankful people put this much time into something that they give away for free.
Laravel has provided me with a job for many years now, and i’m super grateful for as long as it’s around.
My biggest concern is that inertia feels like magic. How do I take advantage of the Laravel built ins when everything seems so abstracted away from me?
I was looking at it (Laravel 8) earlier and had no idea where to find the logic that is generated by jetstream and powers inertia/vue
Great work man!
I agree that the Vue setup with \`laravel/ui\` needed some attention.
I do wish Jetstream had a more “vanilla” Vue option, because while Inertia looks really awesome, it doesn’t let the SPA have its own strong opinions about state management, routing, etc.
Is Jetstream pluggable – e.g. Socialite Providers – or would any alternatives need to be a completely independent package?
No, THANK you for creating Laravel ❤️
I think the reaction to this and past opinionated decisions should highlight for you the wisdom of having a more open decision making process.
Man the two factor authentication out of the box is jaw dropping, like so good.
Frankly, at first I had been kinda ”meh“ about it.
The movement did however spark my interest and made me invest 5 minutes to read the docs.
Now I gotta say: Truly happy that this got added. Many others and I would have missed out on taking our webdev skills further (with all those JS frameworks coming and going, and having had the exact same issues with Vue-Router as you did). No more awkwardly squeezing various scripts into the body, which sometimes doesn’t work properly and nobody’s got the exact same setup as you do.
If the new additions work out of the box as advertised, it will be the first time since 2015 that I’ve used actual Laravel mechanisms for a full-stack application. (Previously it had been a Laravel API coupled with a SPA)
I am most impressed by the amount of projects you are creating within the ecosystem.
I just have one request: please do not overwork yourself.
Frontend has always been my weak point so Jetstream is a god send! Thank you.
I also love that it uses actions as oppose to fat controller’s. Maybe add an artisan make command for actions?
I do have a question though. I couldn’t find anywhere in the routes or controller’s files where the endpoints/routed are generated for all of the Inertia forms (add/edit team, etc..). How is this sorcery being done?
I feel like jetstream is weird simply because it’s such a disorganized mess of ideas. We we’re told it’s an inertia app, but what you get is half of the app being in alpine, blade with tailwind and the other half being in inertia with Vue, this will confuse the heck out of most people.
The fact that the auth logic is completely hidden and you can’t really see it up front doesn’t help either.
I really wonder why can’t it just be simple, open source already made it much more simple with various decent boilerplates, why can’t jetstream be more organized?
Edit:
I’d really like just 2 things:
The auth logic to be shown up front in various controllers so you can easily adjust it as you want.
To make the inertia part of the app truly be in Inertia Vue not a hybrid blade with alpine.
Thank you very much for these insights. It wasn’t clear to me, that, for example, Livewire does not have a *big* impact on the Jetstream templates. Just from trying it for the first time, there were so many unknown things and digging into the documentation let to even more “man, this is much new stuff to learn”. Will try out Jetstream again and take a closer look.
Excited to start playing with L8. My main side project will be getting an upgrade this evening!
It’s a good incentive to finally get properly familiar with LiveWire and Tailwind. I’ve played with LiveWire a little bit and it seems fairly easy to get going with. I’ve been putting off TailWind as it feels like a big jump, but I think it’s finally time to stop procrastinating.
Thanks Taylor!
Thank you Taylor we really appreciate the work of the Laravel core team, all this effort to add a productive scaffold and a great framework release, by this way we can keep productive and focus on create the app, thanks!
I can’t help but see this package as some kind of marketing by restricting devs to these tools.
Of course you can still build whatever you want, but imo scaffolding has always been a lacking feature in Laravel. Unless you are using the curated tools (eg vue and tailwind), you end up spending a lot of time setting up your js library and css framework of choice. And Jetstream does not even make an attempt to solve that.
I was hoping Jetstream would provide an SDK/API for devs to create boilerplates with ease, and then have a community listing of recipes you can pick from when scaffolding.
Thank you for sharing these thoughts. I recently started using TailwindCSS and can relate. I think it is much more powerful than Bootstrap. In Bootstrap I always ended up mixing pre-defined “components” with helper classes.
Laravel Jetstream is awesome in terms of it’s usefulness and how much it saves developer’s time to start an app but the thing I don’t like about it is that it is built with new frameworks that only a small portion of people are using it.
If this is a way to promote them to the wider audience, that’s great but remember that people do not have the luxury to experiment in their projects compared to the people who promote these tools.
It’s one thing to get stuck with a framework like Vue or React and find help faster but if you get stuck with Livewire or Inertia, you have to look for those 20 people who know these frameworks.
I’ve been stuck with CakePHP in the past on a client project where that framework literally has like 3000 people community and there are no advanced courses, books or articles except the autogenerated CRUD app that is useless, so the only way to learn the framework was to ask questions on their slack or their forum.
Taylor you are one of the most awesome people out there.
Thanks for the good work.
>Finally, thank you all for using Laravel. I really appreciate it and I have a blast developing it and trying to make it as good as I can for everyone. Jetstream is simply my vision for what a great, productive starting point for Laravel looks like in 2020. Different people may have a different vision. They are free to code theirs and release it.
Let me start off just saying *thank you* for all the work you’ve done over the years. I think a lot of people lose sight of that but genuinely, I know I would be coding either way but I’ve never found work to be as enjoyable as it is using Laravel. Being able to pick a part things like Spark 1.0 also helped me become a far better developer for it as well.
I can see why some are complaining about Jetstream but I ultimately think it’s a great move that will help a lot get started with their ideas and really accelerate these new technologies. I felt Laravel using Vue helped make that framework more visible and accessible to a lot of struggling backend developers, Jetstream will likely do the same.
My only real ‘negative’ thoughts on Jetstream might be that people are worried about building with inertia or livewire without knowing the potential drawbacks of either option. I know a little on inertia but I don’t know much about livewire under the hood. I think once more people have tried making basic apps with both they’ll be able to make it clear which to pick when starting a particular kind of project.
So many tools, so little time.
Taylor, thanks for your comment on this subject. I initially thought it’s tight coupling the user into a specific boilerplate. However the fact that it’s opinionated and easy for many people joining the laravel community, the benefits are excellent long term. Many people will be introduced to tailwind , Vue and the adapters like intertia while using Jetstream. Win win. Better penetration and advertisement for these amazing tools.
I totally agree with and understand the decision to move things along. Initially, upon seeing this change of direction, my personal concern was that I have several apps that currently are built with the laravel/ui package. …but I was able to upgrade them without a problem. …and, this forced me to really look at Tailwind, Inertia, and Livewire. All of which are better choices today than using laravel/ui. This decision will ultimately cause some discomfort but will also force a lot of people to focus their attention in the right direction.
For anyone complaining about laravel/ui going away. It still works just fine. Both for upgrades and new projects. You can just copy the $namespaces variable and ->namespace($this->namespaces) lines from Laravel 7’s RouteServiceProvider file, then use the route workaround ([https://github.com/laravel/ui/issues/138](https://github.com/laravel/ui/issues/138))… though I chose to also update my routes to the new preferred syntax.
I think it is arguable that providing a path to still utilize the formerly preferred front end laravel/ui package would be a good thing because on one hand you have the friction this causes people who have been using it and don’t have the time right now to learn new things… and on the other you have the want to steer devs in a more modern direction that is ultimately better for everyone.
Edit: It looks like a PR was accepted to the laravel/ui package a few hours ago that solves for this anyway. [https://github.com/laravel/ui/pull/143](https://github.com/laravel/ui/pull/143)
So, like… all good? =)
When will be the Laravel Spark release? I saw on Taylor Otwell’s twitter account a print-screen with a Tailwind css Spark version. I’m interested in buying the new Laravel Spark, so please tell me when it will be available.
I’m a huge fan of these new technologies, my team has been using Inertia in production on several recent projects and we find it’s a great alternative, especially for backend-focused development where the UX is largely a CRUD and we just want it to feel nice.
While I haven’t found a lot of use cases for Livewire yet, I’m sure that it will fill a similar niche for other people and I’m glad its a resource that’s gaining such traction.
Thanks for your hard work, Taylor!
My personal “concern” is that we’re now coupling JS requirements to bundle in.
Eg if you want to use React for your components with inertia, you’re getting Vue bundled in.
If you want the basic auth stuff, and you don’t want SPA inertia style, you will pick Livewire, Livewire then includes its own javascript package. So you get a whole library included even though you don’t want it. I’m likely wrong, but there might also be Alpine included?
So at the moment the 2 options are “limiting” in the sense, it’s either opt in or out, there’s no real “adapt it”.
Before we could use all the same backend logic and just change our html/css to brand the pages. Now we also need to change the JS associated which can be more complicated
I’m fine with Tailwind and Livewire/Inertia, but I think Liam nailed the most challenging thing for me with this thread: https://twitter.com/liamhammett/status/1303778418610393089?s=21
I’ll stick to Vue, Bootstrap and Laravel and I’ll create some kind of boilerplate. Yeah… I’m free to do it. Great stuff anyway and thanks for your work.
Ps: Seems that you guys are constantly promoting your friend’s tools and paying products not because they solve real problems but because they let them sell related videocourses and books. It was a great “vanilla” ecosystem. Now I find it is more like a supermarket.
u/TaylorCodes one small suggestion. In the deployment / install workflow for Jetstream could we include a small one-liner for each of the options. Something like:
A. Livewire – Blade templates with JavaScript (using Alpline JS) functionality inside Blade.
B. Intertia – Vue JS templates which use your normal Models and Controllers.
Struggled to find an explanation of this line in the inertia.php routes file:
`Route::group([‘middleware’ => config(‘jetstream.middleware’, [‘web’])], function () {});`
What middleware is being used? tried looking for a jetstream middleware but couldn’t find anything in the config or anything.
Any explanation would be highly appreciated.
I do not care about Tailwindcss, Inertia or Livewire; They seem like neat new projects but what happened to the days where you let the developer decide on what to include? I think the 5.x series of Laravel was way more devoted to the developer 🙁
>Different people may have a different vision. They are free to code theirs and release it.
This should be on every open source project. Open source creators and maintainers shouldn’t be pressured into anything. They should be conscientious but not obligated. Others who want a project to take a different direction or go at a faster or slower speed are free to fork the project and take it in their own direction.
I too was put off initially by Tailwind until I built a design in it, instantly I understood why it was leagues better.
Regarding people who felt “screwed”, I don’t understand why they would feel this way, I’m excited there’s constant change and new things, if they wanted something that didn’t get updated too much and stayed the same, there are other frameworks out there that do pretty much that.
Also the tech industry changes so much and so frequently, I don’t see how they can’t understand software (which is apart of tech still) is any different.
If people don’t like Livewire or Inertia, they simply don’t have to use them, they are optional. I however am excited for the possibilities JetStream, Inertia and Livewire bring and have a few projects in mind to build out (fairly rapidly) using them.
Is any documentation on Fortify available? It sounds like something I’d want to use, but can’t really find anything about it.
I’m very thankful that Laravel exists, since i moved into it my projects grown in quality. But we all know what happens with most of these “new” frontend frameworks. They may evolve into solid and popular tools or they may be forgotten. I plan to give my boss a system that can be up to 5 years in production and still be maintaneable. I know that bootstrap and vue will be there but im not sure about inertia, tailwind or livewire. The rudeness in the Laravel creator responses just made me feel bad about it. So thanks for Laravel, its awesome but thats it.
The way I use laravel/ui:
Use it to quickly start a new project with auth and register views and functionality.
Then just point to an auth protected route with a blade file that just contains a
which loads my Vuejs SPA with Vue Router, Vuex etc. This way, I don’t have to set up tokens or Vuejs auth views and just rely on sessions since my apps won’t need a mobile api.
This is/was extremly fast and easy to setup and I’m kind of missing that in the new Jetstream package. I want to use Laravel and Vuejs and not have to deal with Inertiajs and Livewire as an extra stack/framework.
I hope someone creates a nice mix with Fortify and Blade view with Tailwindcss (perhaps I’ll try it as my first FOSS package), but I’d love to have it as a 1st party option.
Bootstrap sucks! thanks for focus on Tailwind.
It looks beautiful and it’s amazing how many features you get out of the box without any effort but I really don’t get the popularity of tailwind.
It’s not that long ago that everything was about semantics and plastering a literal fuckton of non-semantic classes all over your code would have gotten you shunned by the community. Now it’s somehow all the hype and and I can’t see the forest for all the trees in the templates.
Hi, Great Work! Thanks for Laravel Framework. Just want ot share my point of view about jet. I like the 2FA and the teams, but will never use jet nor with intertia nor with lifewire, why ? Because lifewire is something to me from 10 years ago when some parts of the site was updated via ajax. Why i will not use it with intertia ? Because if i want SPA i will just use Vue cli or React. At this stage i just want scaffold that give me freedom to use blade and if i want to use vue in some parts of my site. This is the cool thing about vue , you can use it where you want. Thanks again. I hope L8 will not be windows 8.
Anyway: for those who don’t want to learn jetstream today, you can still include laravel/ui and build your bootstrap scaffolding then like always