The Future of the Laravel Frontend w/ Taylor Otwell

00:07.55
Chris Morrell
All right? Welcome back to overengineered the podcast where we ask the question. What's the absolute best way to do things we already have a perfectly acceptable solution for um I am excited I'm here today with Taylor Atwell and ah Taylor I kind of I feel like I have running bit on the show. Ah, where I I have to say I can't imagine that anyone who's listening doesn't know who you are but why don't you do an intro nonetheless you want to you want to go for it.

00:33.67
Taylor Otwell
Yeah, sure, thanks for having me hey everybody I'm Taylor Otwell the creator of laraval a full stack ph p framework for building modern web applications which is a going on I guess about 13 years strong now launched it back in 2011

00:49.51
Chris Morrell
Um, that's wild 13 years it's a long time I think yes yes yeah you picked the ah the right language to do a long running ah thing in.

00:52.20
Taylor Otwell
Yeah, yeah, it is a very long time and and web development scale for sure.

01:02.73
Taylor Otwell
Yeah, that's true for sure.

01:08.30
Chris Morrell
I ah um I want to say that it's been almost almost ten years that's that seems long given the fact that Lairville's only thirteen years because I didn't I didn't start using larall until the 5 dot period five dot 6 or something like that.

01:24.26
Taylor Otwell
E.

01:26.36
Chris Morrell
Um, but could it be that it's that long ago I'm not sure.

01:30.79
Taylor Otwell
Yeah, you know I mean it's crazy running like an open source project this long um because you see you meet so many people and then at the same time like it's super exciting to see new people come into the ecosystem. You also see people leave the ecosystem to move on. Either they change jobs and their their new job uses a different stack. Let's say maybe they're on Python or go or something and then they sort of like you know out of the ecosystem and it's sort of it's sort of like bittersweet you know to see people come and go. But I mean I think overall it's super Exciting. You know for me that laravele. All these years later still seems to have sort of these fresh faces coming in ah to the community and contributing and being excited about it. So I think that's really cool and and a little bit Unique. You know for a project this this old.

02:18.47
Chris Morrell
Yeah, for sure. Yeah, it's it's interesting. You know I I've been um that my the the product that I work on ah has been We've been going twenty plus 2025 almost years um and so I have a taste for like. Long term maintenance of things but it's basically just been me the whole time. Um, which ah has its downsides right? You don't get that like fresh influx of like ideas or opinions or perspectives. Um, you know. Which yeah, it also has its ups right? like I can just kind of have my opinion always be the the right opinion. Um, yes for sure for sure. Yeah, and I mean it's it's been great in a lot of ways. But I do envy that like you know, just getting to.

02:57.54
Taylor Otwell
Yeah, right? Yeah, that's that's definitely a very like nimble way to work.

03:11.74
Chris Morrell
To be exposed to so many different ways of approaching things all right? Well um I I was saying before before we started recording like I think some of the premise of the show doesn't necessarily apply to you because in a lot of ways. Ah.

03:14.57
Taylor Otwell
Yeah, for sure.

03:30.60
Chris Morrell
Building larevell is going out and finding all the things that could be just a little bit better and making them a little bit better so you don't have that like backlog of things that you always wish you could um that you always wish you could take on so ah I kind of picked a couple little topics that we might. Touch on and ah the first one I thought might be interesting is just talking about building you eyes um on the web specifically with Lare Val um you know I think that you've been focused a lot on this lately It seems like from the outside. Um.

03:58.78
Taylor Otwell
You.

04:08.47
Chris Morrell
With the ah you know the release of volult and sort of ah more recently you you did send out a tweet about just like this is ah this this combo Volt and Folio is is a really nice way to work. Um, and I think from my perspective you know.

04:19.90
Taylor Otwell
Who.

04:27.61
Chris Morrell
We we kind of bet on react when we needed to introduce a lot of um, client side interaction. Um, and I think for us that maybe was still the right decision. Um, there's just the the react ecosystem is so big that it's let us sort of lean on. A lot of existing solutions rather than having to build our own things. Um, but since that decision the the sort of ecosystems outside of there that for building these times types of Uis have really expanded um livewire obviously is doing incredible.

05:03.10
Taylor Otwell
Who's.

05:05.45
Chris Morrell
And volt is kind of ah, a nice nimble ah way to do livewire um alpine I think is is highly underappreciated as as just like a way to do clientside ui um, and so yeah I just wanted to kind of like talk about. Ah. Both practically what the future of building you guys in in Laraville looks like and maybe imagine like what what could it look like if we kind of tried to pick the best of everything and set aside all the history. So I don't know if there's anything in there that that sort of sparks your interest to start with.

05:39.16
Taylor Otwell
Um, yeah I mean overall I would say like chasing the most productive way to build applications in general has always been sort of like the passion of larava and for me personally as well right? Like What's the most productive way we can build applications as a whole and you know in the early days of laravel. Um, the ui wasn't as much a part of that question because I think people were mainly just building like blade rendered you know which is basically. If. Anyone's not familiar with la il basically like server rendered rendered html templates using like php tags to essentially output data and do loops and and all that kind of stuff so sort of like the equivalent of like yeah er b templates and ruby or something um and it just like I don't feel like it really became a. Thing to even consider different ways of doing uis and laraville until maybe like 2015 ish twenty fourteen ish when um, angular at the time was actually pretty popular and Vue was really new and react was I don't want to say it was new but it was like. Complicated I guess to use with Laravell. There wasn't like tools like inertia and things like that. Um, so over the years you know, kind of how I've seen this um is a lot of these kind of let's say quote full stack javascript frameworks that I've um.

06:47.48
Chris Morrell
Yeah.

07:05.30
Taylor Otwell
Popped up like Nextjs remix Nuxed things like that I feel like they actually have a really great paradigm for building Uis that feels really productive and fast I don't feel like they have like the full story on the backend as far as like building robust large maintainable.

07:20.69
Chris Morrell
We don't have anything else.

07:24.66
Taylor Otwell
Applications and then conversely you know so they're like sort of they're on their journey to figure out what the backend looks like for them right now I think I think that's kind of like kind of in progress at the moment and I think conversely for us. We're on a journey to figure out what the frontend looks like for us. So we're sort of but both working you know from opposite directions to figure out the problems place that the other is sort of missing um and I think that next Js you know, let's use them as an example. The whole server actions concept of building Uis and sort of having the server actions and the template in the same file and stuff I actually think that is a cool idea and it's a very productive way to build you eyes and so when we built folio and vault folio being sort of our page-based routing system.

08:01.55
Chris Morrell
For sure.

08:13.27
Taylor Otwell
Um, where you can just like drop a template in your templates directory and then just immediately hit it in your browser using like you know folder path url conventions and stuff and then Volt which basically brings that single file um stock component style development to Livewire. Um. Was basically inspired by that you know directly that workflow and I think it really brings some like really nice ways of working. Um some of the stuff that I don't think people talk about enough with livewires like the way it lets you punt on some decisions that don't matter like just defining routes in General. Um.

08:35.10
Chris Morrell
Yeah.

08:51.22
Taylor Otwell
You know for backend actions say you have like a save action on a to- do list and the normal way of building an app using something like Lara Vla rails you sort of have to build a route build a controller all those other stuff whereas when you're using vault you just like you never have to touch the routes file just put a function at the top of. The ah, the component and keep building and it sort of keeps this very fast development feedback cycle I think where you're not having to lack context switch a lot which I find really productive I'm not sure like how that actually scales until let's say like a forge size app or a vapor you know.

09:15.40
Chris Morrell
Yeah, yeah.

09:29.58
Taylor Otwell
For Apps I'm familiar with like the size of those apps and kind of how complicated they can get I don't know how that's going to scale. You know? Um, so like when we've tried to build a little bit more complicated things using that Stack. We've leaned heavily on like sort of this actions pattern on the backend of Like. We have We have this livewire action in the top of the component. Let's say but it does like very minimal work. It might just like invoke this other like invocable action class that does the work and maybe we reuse that same action if we have like an external api or something So um, but yeah.

10:02.15
Chris Morrell
I.

10:07.31
Taylor Otwell
I really like that way of working but at the same time sorry I'm getting kind of longwinded before I kind of give you a chance to follow up here. But so that's one side of the ui story with Lara felt I think is livewire as a whole let's say and maybe people choose to put vault on it or not I think what that side of the story is missing. Um.

10:11.91
Chris Morrell
No go ahead.

10:26.63
Taylor Otwell
But I think there's in progress stuff being done on this is sort of like the Ui component library aspect of something like react where you know you have all these rich things like shad Cn or like tailwin's new catalyst.

10:32.28
Chris Morrell
First.

10:39.99
Taylor Otwell
Ui Library or Radix Primitives. You know stuff like that where you can like really lean on all of this work that the ecosystem has done which I think keeps react popular in the sort of self-fulfilling Prophecy kind of way of like there's so much libraries out there. So Everyone kind of builds on a react which makes even more libraries on react and it's sort of like the snowball effect. Where it just it's hard to imagine react being sort of like dethroned as the King of kind of Javascript Ui templating because the ecosystem is just so big at this point. Um, but I think you know that's one point where we're playing catch up a little bit on the lifewire side and like I said. I Know for sure, there's things in progress on this you know I don't think I can divulge too much because it's not my project. But um, I'm hopefully we will get to that same sort of like rich component ecosystem. Um I don't think it will be as big as reacts obviously but it will be a compelling option I think.

11:17.92
Chris Morrell
So sure.

11:33.19
Taylor Otwell
At the same time with laravell you know I love livewire I think it's super productive. Super fun way to build stuff with Lara well that's light years ahead of like what we had um, you know back 2016 2015 those days when I was like first really kind of getting fored out the door I've never wanted to be um. In contrast to someone. Let's say like dhh in the rails ecosystem I've never wanted to be like ah all against Javascript. You know, like so tools like inertia which let you pair like a react frontend or a vue frontend or even a svelte frontend.

12:03.10
Chris Morrell
Um.

12:10.73
Taylor Otwell
With your laravel backend in this way that you know avoids the need for like client-side routing it kind of solves the data hydration story of getting data into the react pages and stuff and just really simplifies I think the whole workflow working with react in vue you know while I love liver I've always wanted to like really boost that as well because. I want people to have options with laravell you know and I think it's kind of silly to like bury your head in the sand a little bit and be like oh you know you can't there's no productive way to use react with Laravele. You know you should go all in on you know ph p for your templlining language I just don't think that's realistic. You know and I think it would be bad for the ecosystem. So.

12:39.90
Chris Morrell
This chart.

12:49.30
Taylor Otwell
And the same time I Very much enjoy working with you know, inertia and like we use inertia to power. Um forge so we use V on the front end you know lave controllers on the back end Inertia kind of ties it together. Um, and I think that's a really productive way to work So I'll kind of stop there but that's kind of how I see.

12:58.92
Chris Morrell
Um.

13:08.77
Taylor Otwell
Front end you know in laravell right now I'm pretty bullish on the whole Folio vault idea especially if we can add on a pretty sick component library on top of livewire.

13:22.18
Chris Morrell
Yeah, yeah, I mean Okay, so that there that a bunch came up for me, but there are 2 things that I I think really struck me one is I think I See. This is a theme that keeps on coming up on the show and I think it's just a theme that keeps on coming up in general is um I feel like there is a sort of renewal and interest in like how do we rethink code colocation. Right? Like this idea of um, keeping things that belong together together right? and that was a big that was a big part of ah the conversation. Um that I had about modularization that was a big part of ah the thinking behind Verbs. Um.

14:01.75
Taylor Otwell
Me.

14:15.90
Chris Morrell
I Think that that's just like that's in that's in the ah the atmosphere right now of just like we I think we pushed really hard ah as a language um and sort of things like ah the Psr standards and Composers Auto loading.

14:20.74
Taylor Otwell
Earth.

14:35.62
Chris Morrell
Ah, really pushed for lots of things separated into many files. Um, and and I think that that served us really well. But that ah people are now starting to feel the pain of like.

14:39.35
Taylor Otwell
Is.

14:50.23
Chris Morrell
Ah I have to create 6 different files for each little thing that I want to do and livewire to a degree ah has the same issue. It's like you. You know you want to create your component then you need to create create your view and potentially need to wire that up somehow and so I can totally appreciate the want to just say no.

14:54.10
Taylor Otwell
E.

15:09.99
Chris Morrell
All those goes in 1 place. Keep it simple and I really like that I like I like the the move in that direction in general um where it makes sense.

15:18.97
Taylor Otwell
yeah yeah I think like I think you're right? and um, it almost feels like that old mentality of all these separate files sort of was not even unique I don't think to php but it really permeated web development as a whole. I would say and almost like I feel like ph p and that whole ecosystem almost went went through this very like uncle Bob esque era of like tons of files single responsibility principle taken to like the absolute extreme. You know.

15:45.50
Chris Morrell
Yeah, yeah.

15:54.69
Taylor Otwell
Um, where you have command buses and command handlers and all of these hundreds of files that each collectively have you know they each maybe have like 15 lines a piece of code and the the system feels very fragmented. Um, which may honestly be great for some applications I'm not really sure. But.

16:03.44
Chris Morrell
Right? right.

16:12.90
Taylor Otwell
I do think that people one just started to feel the pain of that and were like this feels I'm just constantly switching files constantly and there's thousands and thousands of files in my project and then also I think there's just a move in the wider web development ecosystem that sort of got us out of that era. Um, where like code that changes together should live together and I think it's driven by a few things like some of the work in the javascript ecosystem I think brought in a fresh generation of developers that were their minds were not tainted by like Srp thinking you know what I mean like that like ours were for such an extent and like they never even heard of it. You know what? I mean it's almost like.

16:44.63
Chris Morrell
Yeah, yeah, yeah for sure.

16:52.44
Taylor Otwell
Have no idea what that means and it's just like they're looking at the whole problem with fresh eyes in a very pragmatic way and like what's the best way to work which I think is really good and then not even in javascript I mean even in Css with like the rise of tailwind is sort of like code that changes together should live together taken to the extreme with css.

17:05.57
Chris Morrell
Um, absolutely.

17:10.78
Taylor Otwell
And I think it was just like a huge boost to the productivity of so many front-end people like it. It literally like enabled me to even be able to build front-ends I think and you know at first it's kind of weird because at first like tail ones looked complicated to me and then it's like oh no, the alternative is actually the complicated thing. Tail one is like the very easy productive thing to use like bootstrap is actually too complicated for me to custom to customize. Um, so yeah, and then I think you know I feel like we're also getting there in ph p that there has been sort of like either.

17:31.66
Chris Morrell
Um, yeah, yeah.

17:43.46
Taylor Otwell
You know the newer people coming into the ecosystem. Don't have the same baggage and maybe biases of like how things should be built and they're more willing to sort of experiment with things like folio and fault which I think would be seen as very radical. You know like eight or nine years ago and there would instantly be sort of like this. No srp srp this this is um, you know we need to separate all of these concerns. But I feel like people are kind of more willing to be flexible on that these days which is good I think.

18:13.30
Chris Morrell
yeah yeah I mean I I think ah certainly for me I think that you know I had that I would say not a typical journey with tailwind of you know, the first time I saw it I was just like oh my god what is this mess you know, um, but.

18:26.15
Taylor Otwell
Is.

18:30.53
Chris Morrell
Coming to just appreciate just how much better it is to build ah to build anything with it made me you know, did open up my eyes to to this idea that Oh um, you know maybe is it possible that we're thinking about. Things ah in other places wrong in the same ways you know I Definitely think that that was a big eye opener for me. Um the other. The other thing that you said earlier that um, I've been thinking about a lot I.

18:55.85
Taylor Otwell
Um, yes.

19:06.99
Chris Morrell
You know I think when node first came out. Um I I was very excited because the premise of being able to write in one language across the entire stack is just really, really interesting. You know because for better or for worse. Browsers run Javascript right? Browsers don't run php no matter how much we love writing php. Um you know browsers define what client side code is going to look like and you know maybe webassembly changes that a tiny bit but not that much. Um, and so. You're kind of like forced to work backwards from well I'm always going to have to write some amount of javascript code probably um so wouldn't it be better to just write all javascript code and I think. You know, maybe there's a world where that becomes a reality I think that um for me remix is a really really interesting approach because it feels like it's really embracing. Um, it's embracing the language and is embracing sort of native web features and. Making but but really doing it in a way that feels productive but you know I think all of these frameworks trying to stay away from having opinions about things like ah you know how do you talk to your database. What? what are you going to do when you need to send an email you know, um.

20:36.35
Taylor Otwell
Who.

20:39.13
Chris Morrell
It's just nonsense it. It hurts so much because then everyone has to make those decisions over and over and over again and constantly feel the fomo of like oh well I picked X but now I see someone else is using Y and should we have picked y like. Ah, it just seems like such a nightmare and.

20:57.80
Taylor Otwell
Yeah, it is odd you know and I don't know why the ecosystem is that way because I actually agree. Yes, it would be better if we could just use one language you know all the way through the whole stack. Um, whether whether that's.

21:08.94
Chris Morrell
Right.

21:13.54
Taylor Otwell
Javascript or something like a vault and livewire and stuff which kind of tries to achieve the same effect of like hopefully you can mainly write ph p the whole way through you know I don't know like why I don't know why that doesn't exist you know for like next or remix I got full.

21:22.00
Chris Morrell
Yeah.

21:31.71
Taylor Otwell
Honest to goodness like backend full stack story and it was confusing for me for the longest time because like when remix came out and they say oh it's like full stack I'm thinking. Okay, great like I'll go out and look at the docs but I think just what they define is full stack and you know I'm not trying to like. Negative about the ecosystem but it's just a lot lighter and more minimal than what we typically would think of is like full stack. So like for example, just like the ability to interact with cookies and headers. You know boom label full stack. You know, but it's it's very minimal you know Almostt like a slim ph p or syex ph p kind of way. Um.

21:54.41
Chris Morrell
Um, yeah, yeah.

22:06.42
Chris Morrell
Right? Yeah, it's there there I think that in the Javascript world a lot of in a lot of ways full stack just means it can run on the backend right? It's not necessarily that it actually does.

22:09.28
Taylor Otwell
We would think it more of like a micro framework.

22:18.36
Taylor Otwell
Yes, yeah.

22:23.91
Chris Morrell
Does the things that you need to do on the backend talk to cache talk to database send you know, send email operate a queue all of that stuff. Um, but it you know, right? now it feels like in the Javascript world full stack means.

22:33.63
Taylor Otwell
These.

22:41.69
Chris Morrell
We can execute code on the backend you know and it probably is just going to take time and I know you know I know that um whenever this conversation comes up like adonis is brought up you know which is kind of a remarkable. Ah.

22:43.12
Taylor Otwell
Yeah.

22:54.70
Taylor Otwell
Is this.

22:58.75
Chris Morrell
Clone of Laravell for Javascript. But I think and ah I I may get ah some pushback on this but like you know I think that the problem with ah an approach like adonis is it's trying to port a fundamentally different like.

22:59.40
Taylor Otwell
Right.

23:18.15
Chris Morrell
Way of approaching things to Javascript right? Javascript needs to operate differently because it's a totally different language. It has different paradigms. Um and I think ideally an approach like like remit remix.

23:21.34
Taylor Otwell
M.

23:37.13
Chris Morrell
That's really embracing. What's great about Javascript feels like the long-term winner but it's just like they need to solve so many more problems before it's viable for most people.

23:47.77
Taylor Otwell
Yeah I think that's true and like you know I'm not going to lie I'm and tempted to jump in there and try to solve those kind of problems in that space or like assign someone on our team to like this area 51 style project where we try to you know, basically port.

24:00.49
Chris Morrell
Yeah, yeah.

24:04.92
Taylor Otwell
Um, a lot of our server libraries. So I think you're right that it wouldn't look like adonis but like could we build like a server kit for something like remix or next you know where you can use a lot of the laravelle style stuff but sort of maintained their fundamental ways of working with. You know were there request response cycle and remix or next so I mean I've definitely been tempted to do it. You know I mean I saw someone tweet a couple months ago like a screenshot of nova and this was a javascript ecosystem person and they were like you know we're so far away from this in Javascript. We we don't even understand like how far away from being able to have something like this that we are um.

24:23.75
Chris Morrell
Yeah, yeah.

24:41.26
Taylor Otwell
And I mean I think it's True. It is a daunting task. You know there's a lot to build to really flesh out that whole story. Both just all of the stuff that's kind of generally in the Lara about Core Framework. But then also all the packages you know like even stuff like Horizon and Telescope and Nova and cashier and it just it just gets like. Really overwhelming really quickly. The amount of stuff that really would need to be ported.

25:01.29
Chris Morrell
yeah yeah yeah I mean you've got 13 years of stuff that you you know and obviously a lot of that time is spent learning lessons that that you know you don't have to learn again. But.

25:06.94
Taylor Otwell
Yeah, yeah.

25:16.19
Taylor Otwell
H.

25:18.76
Chris Morrell
There's also just a lot of code that got written over those 13 years that you'd have to figure out how to re reimagine.

25:26.89
Taylor Otwell
I do think that one thing that has changed you know I'm curious. You're you're thinking on that when I first started writing php um, php was a very natural entry point language for people into web programming. There were still a lot of people first coming into web development.

25:37.90
Chris Morrell
Yeah, yeah.

25:42.98
Taylor Otwell
Were coming in through php um more often than not. It seemed like whereas I don't think that's the case now you know most people coming into web development whether it's through like some sort of boot camp or whatever they're being introduced to these types of Javascript tools and. Their idea of the backend is like oh that's just something I make an api call to like someone else some other nerd. You know like writes that backend and I just like call this the endpoint they tell me to call and this is the data I expect to get back. So I feel like you have a ah whole fresh generation of programmers coming into.

26:07.13
Chris Morrell
So.

26:20.44
Taylor Otwell
The ecosystem and I think Adam Wavin from taylorwin tweeted about this 1 word like it feels like a lot of them actually don't know what a sql query is or like even like really how databases work and is that a problem or not you know I don't know like I think ah maybe the vercell Ceo responded like you know why should they. No like what? Ah how an sql query works like that's good. It's good like we should abstract all of that away. Actually so I don't know what the right answer is but I I do know that web development has changed in terms of how people come into the top of the funnel of web development and sort of what they know at the outset whereas you know. Fourteen fifteen years ago when they were coming in through either ph p or ruby on rails. Everyone knew what a database query was they probably knew like how to set up a table you know and how to query it and stuff like that and now that feels like not the case and that's a pretty big shift. Um. It's a big shit for us at Laravell that I think about a lot in terms of like um, we're fighting a different battle in terms of getting new people into the ecosystem and I think you know trying to build things like folio and vault and different ways of building uis is sort of like us trying to build bridges that are familiar to people. That are in other ecosystems where it's like okay if I see ah ah a volt component. It looks pretty different actually than react. But there's some similarities you know that I can kind of like map concepts to um, you know whether I can attach this function to a button click and.

27:42.82
Chris Morrell
Yeah.

27:48.65
Taylor Otwell
Runs on the server you know so it it is somewhat familiar so we are trying to build bridges there. You know as the ecosystem changes as a whole.

27:54.85
Chris Morrell
Um, yeah I think that that is really interesting I hadn't I hadn't necessarily thought about it in that framing before because you're absolutely right I mean when I got into web development. You know it. It basically was php you know Php and Mysql. Um. Were your options as sort of like an indie in l like if you um, you know there there were other um there are other ways to build for the web but you know it was just kind of like overwhelmingly obvious that if you. Were a small company and you wanted to build ah that was the sack right? like that that was your option. Um, and you're absolutely right? that most people getting into the industry now are not having that experience.

28:34.30
Taylor Otwell
Nice.

28:47.80
Chris Morrell
Um, and trying to figure out a way to to meet them differently ah makes a lot of sense and I think I don't know that okay that that kind of brings me to um, this thought that I've been having a lot now I want to preface this with I.

28:47.85
Taylor Otwell
Nothings.

29:07.30
Chris Morrell
I'm I don't use livewire I haven't used volt um, you know I've I've played with both of them. Ah, but I I don't have a lot of like personal experience. So it's more coming from the hypothetical perspective. Um, we still. Almost exclusively do blade and alpine. You know, almost everything that we need a straight server rendered page with a little bit of client site interaction is is plenty good and ah you know if we need to um, if we need something really sophisticated then we will just ah, build a react. Ah, app for that piece. Um, so yeah, this is kind of like theory crafting more than anything else. But when I saw when I saw the first announcement of volt um, my initial reaction was like. This feels really good and I feel like it could go even further right? that like I kind of wish that there was a world where you don't even need to drop like ph p tags at the top of the page. Um, and so this is this is great.

30:04.68
Taylor Otwell
This.

30:16.63
Taylor Otwell
Earth.

30:20.91
Chris Morrell
Podcast content I'm going to talk about a screenshot that I I sent you that ah the listener can't see but I I sent you a little snippet and I'll just describe it briefly and I'm I'm curious what your thought ah thought is your reaction. Um, you know I I.

30:35.75
Taylor Otwell
Who's.

30:38.84
Chris Morrell
Can't say enough about using alpine on the client side and I just love the fact that I can encapsulate a nice chunk of interaction into just like a single you know set of Html Tags you know I just drop like x data. On a Div and all of a sudden like that Div is got the like alpine superpowers and you know we're already parsing the ah you know preprocessing the the html in blade templates. Why couldn't we go a step further. And you know bring a lot of that livewire stuff into so that it felt like it was part of the dom from like the the ah authoring perspective and in the end like it would do the same exact thing as volt it would it would get extracted into a component. All those ah all those like directives that are sort of so you know server only would just get stripped from the output. Um but does something like that appeal to you at all like trying to um, you know, almost get to a point where blade. Feels a lot like jsx except that instead of like javascript expressions inside of attributes you write php expressions.

32:02.77
Taylor Otwell
Yeah I mean I think it does appeal to me like I'm interested in all these sort of experimental ways of building front-ends um in Ph P and it doesn't only appeal to me like these sorts of preprocessed really experimental. Approaches. It doesn't only appeal to me in the livewire since like I've also thought about it for like inertia where I want to be able to put the server side of inertia stuff in Myertia components too like in the react with the react templates and you know strip out all the server stuff compile the the frontend templates you know the normal way and all of that. Um.

32:29.69
Chris Morrell
Um.

32:36.64
Taylor Otwell
So yeah I think there are definitely ways to take it even further on both sides of the coin. You know that I think we'll continue to explore you know as as we have time and resources. But I because I don't I think you're right I don't think the story is like finished I think there's further to go you know. And it's crazy how fast things change you know, like at the same time like react and these sorts of remix and next style frameworks seem like oh well this is like the the final boss of like how Uis are built in Javascript. And and it's kind of crazy to think now like the the ways people built spa is just if you just a few years ago almost feel like dead like a thing of the past you know, yeah and and I feel like I spent so much time at Laravellle thinking like okay how do we play? Nice with ssps and now spas are totally freaking dead and.

33:14.97
Chris Morrell
Um, yeah, archaic. Yeah.

33:27.30
Chris Morrell
Um, right? yeah.

33:27.90
Taylor Otwell
It's just Crazy. It's just Crazy. So I As much as I think like I know what the thing. The current thing is going to be like I just seem to it just changes in ways I don't expect. But um, you know I think you see that even a little bit already with even things like the current. You know, popular Javascript Frameworks where you start to see sort of like hype building around things like htmx for example of like maybe maybe people are kind of getting sick of the churn of the javascript ecosystem and the new hot thing changing so frequently you know and.

33:48.61
Chris Morrell
Yeah, yeah.

34:01.26
Taylor Otwell
You know I know when I've talked to um people that are in Silicon Valley and they're they're really interested in laraval or they find it compelling I've actually asked them directly. No aren't you like concerned that it's php like doesn't that bother you and they're like actually no like we. Crave like the stability of this ecosystem in a way you don't understand you know because we're tired of everything changing every 5 minutes

34:21.65
Chris Morrell
Yeah, yeah.

34:30.47
Chris Morrell
Yeah I mean there's definitely a lot of of burnout. Um, and ah you know I I think there's something exciting about you know the sort of.

34:43.96
Chris Morrell
Interesting fast-paced experimentation of new approaches. But I think that that um, you know and it it has a place but it it definitely for companies that especially want to like deliver a real product and like.

34:46.00
Taylor Otwell
E.

35:02.58
Chris Morrell
Ah, continue to deliver that product and like improve the product not constantly. Yeah, improve their like build process. Um, you know it It only goes to far and.

35:10.47
Taylor Otwell
Yeah, yeah, we've tried to maintain a balance of that because I think you're right like if you don't have that sort of experimental vibe in your ecosystem. It starts to feel stale right? I mean it starts people start to be like is this thing maintained is this dead Blah bla Blah It just doesn't feel interesting or exciting anymore.

35:21.14
Chris Morrell
Yes.

35:30.90
Taylor Otwell
And um, you know that's part of why we built things like folio and vault and ah even laravel 11 as a whole you know as sort of part of this experiment to build bridges with other. Ecosystems let's strip away a lot of their craft. Let's look at the framework with fresh eyes. Do. We really need all of these kernel files in the framework. Do. We really need all of these middleware files in the framework. So how can we make it feel more approachable less overwhelming a little bit more fresh. You know for the next generation of developers. You know so. Something we we still think about a lot and I think we try to strike that balance of having fun experimental things and trying new things while also kind of maintaining this core of stability where the overall foundational concepts of how we build apps is not changing every. Every couple weeks you know.

36:23.14
Chris Morrell
Right? Yeah, it's it's nice I mean I definitely I don't envy ah having to figure that out because it is a really hard line to draw you know because you're you are really um. Sort of playing to two very very different needs at the same time right? like the stability and the ease of upgrade and just like you know Larall 11 even's amazing from my perspective. You know our our app is is very large and um, upgrading Lairrevell has never been.

36:58.89
Taylor Otwell
This is.

36:59.28
Chris Morrell
Pain point you know, maybe there are a couple of packages that are a bit of a pain to upgrade from time to time or there are other places where we have to like do some work but usually the lairvell upgrade you know since and I think I got lucky in that. Ah. You know I know that the transition from like the early versions up through lair L Five was was a little bit more um of ah ah a big shift because like you were still kind of finding the finding the what felt right? Um, but yeah, like that is incredible.

37:32.59
Taylor Otwell
Yes.

37:38.11
Chris Morrell
Um, and and at the same time. It's like yeah, it's fun to have new shiny things you know like I don't think there's anything wrong with with that either of just like um you know a lot of people a lot of people get into programming because it's a job but a lot of people get into programming because they love to do it and ah.

37:41.91
Taylor Otwell
These.

37:58.20
Chris Morrell
There's something about just like having fun with it and trying new things and experimentation that really makes that appeal. You know.

38:06.37
Taylor Otwell
Yeah I think so too.

38:11.76
Chris Morrell
Is there anything so like are there any ideas that you have for sort of taking that that like taking the next step with with Blade or with Folio. Um. Like experiments that you want to to play around with or syntax that you want to try out or is it kind of like you just want to feel what this current moment feels like and take it from there. So.

38:41.20
Taylor Otwell
I Would like to um so I have some ideas of things I want to build just to try out that architecture as a whole in a more real-world way. Um because you know to be transparent like forge is not built with Volt and folio you know, um I would like to actually build a real app.

38:53.51
Chris Morrell
Right? right.

38:58.53
Taylor Otwell
Using this approach to really help me suss out like what is good and bad about it so that I have real-w world you know data on it. Um I think I would be hesitant to push too far in like an experimental direction right now without doing that because I would really be kind of building in the dark and. I Personally like everything I build to be sort of born out of like a real problem I've actually surfaced in reality and not sort of like guessing at the problem. Um, so I think I'll probably do that you know and I have kind of.

39:22.96
Chris Morrell
Um.

39:29.10
Taylor Otwell
Some fun projects in mine I like to build that are not too big where it's like it's going to be a huge waste of time but they're not totally trivial also that I think will help you know, kind of kind of feel out what the the weak spots are um as far as like core syntax and parsing stuff goes. You know I mean we've been working on some kind of basic stuff like just trying to improve the performance of the whole that whole stack. You know I tweeted out last week that you know 1 thing that's always bothered me about like the vol folio volt story is all of these components have to be rendered on the server versus sort of shoving off you know. Every little button component that needs to be rendered your php servers parsing that we have to new up like this component instance. All the html has to get rendered versus shoving that off on the client so we actually did make like a 20% and performance improvement. Chris Pitman or Christopher Pitt who's been around the lareva ecosystem a while and another contributor named Lonnie lot came up with a few ways to squeeze out like a 20% performance improvement. There's probably more we can do there. Um, you know I've been focusing on the speed of that stack a little bit but. Again I think I'll try to build some real world things before I like get really experimental with it.

40:43.24
Chris Morrell
I Saw that tweet that's I mean that's incredible I didn't get a chance to look at it is that is that an improvement on the compilation side or on the rendering side. So.

40:55.29
Taylor Otwell
It's more like at the runtime rendering side. So like just being able to kind of memoizing some stuff that we were invoking a lot. You know, cashing off some stuff that we were um, invoking a lot not dispatching. Um, the view composer and view creator events If There's no composers listening for those components you know because that that took up quite a bit of time actually um so just just kind of some basic like caching Memoization stuff. Um, you know like.

41:16.56
Chris Morrell
Um.

41:27.15
Taylor Otwell
A lot of people want to jump right to the kind of the file I O side on the performance stuff but opcache in Ph P sort of Negates a lot of those those penalties so you don't really have to worry about that that much. So I think I feel like we've kind of squeezed all the juice out of that We can probably most of the remaining improvements are actually. Very you know like micro optimizations as far as the kind of stuff we've been doing so far.

41:50.66
Chris Morrell
Yeah I mean I think I ask that just because it feels to me like um, you know I would rather see Blade get more powerful and slower to compile you know because that. You know you you compile a blade template to Phb once and then you're fine So I can see a world where the Blade compilation step becomes much more sophisticated. Um, you know I know there's there's kind of an incredible I don't know if you've seen it and I'm blanking out on his name right now. But there's an incredible.

42:10.30
Taylor Otwell
Yeah.

42:28.37
Chris Morrell
Um, you know Blade implementation that's like a full like tokenizer um like parser. Um that someone built and you know I can see potentially exploring that sort of ah that side of things.

42:35.12
Taylor Otwell
Is.

42:46.44
Taylor Otwell
Whose.

42:48.90
Chris Morrell
You know, bringing making the compilation process like more extensive to extensible at like a really like um um, granular level you know because right now it's either. You're like.

42:59.60
Taylor Otwell
And.

43:05.12
Chris Morrell
Okay, I'm running my own regular expressions before Blade gets to it or ah, you know I'm kind of like pumping out Ph P Syntax you know when Blade lets me, Um, and for the most part that's fine.

43:08.30
Taylor Otwell
Yeah.

43:18.71
Taylor Otwell
Yeah, almost like make almost want to make Blade a real language sounds like it's kind of what you're which is not. You're right now you know it's kind of more of just like a you know a regular expression based templating replacement system or something.

43:24.82
Chris Morrell
Right? right.

43:32.48
Chris Morrell
Right? Yeah, but I mean I think I think I can't even I can't believe we didn't talk about it yet like when blade components. Ah you know came came first party I mean I think that was one of the.

43:45.61
Taylor Otwell
Yes.

43:49.11
Chris Morrell
Biggest improvements to like the lairvell Ui development experience that we've had ah that eyes saw you know just that that Blade component syntax is just so much nicer to work with um in so many different scenarios and like.

43:56.45
Taylor Otwell
Yeah.

44:03.30
Taylor Otwell
Totally yeah I am surprised we didn't mention that first. But yeah, like that obviously was like kind of the first huge leap forward for for blade developing you eyes and blade you know that was originally developed by spotsy.

44:08.84
Chris Morrell
Yeah, so.

44:21.73
Taylor Otwell
Ah, the agency and then of course you know, ported it into larave don't I don't know how long it's been now I kind of take it for granted which why it didn't even come to mind is like this stepping stone. But yeah that that was a huge leap forward that enabled so many you know so many better use cases for building.

44:27.53
Chris Morrell
Right? right.

44:40.33
Taylor Otwell
Applications with blade.

44:41.81
Chris Morrell
Yeah, yeah, and I think I think that that's like that that I I keep on trying to talk about this with people and I I I haven't found a way to articulate sort of like the itch that I'm trying to Scratch. Um. But it's somewhere in the realm of like feeling how good it is to work with Blade components and then on the flip side sort of feeling how good it It is to work with Alpine. You know, like excuse me these just like attributes that you drop on on your html tags and they just like do amazing things I mean. The the drag and drop stuff that Caleb just came out with is incredible like talk about taking something that is so hard to get right and abstracted away into just like oh you know X draggable or whatever you know, um and I.

45:31.68
Taylor Otwell
Is.

45:37.49
Chris Morrell
I Think just it feels to me like there's a there's a world where those 2 things come together in like a new way where um, you know, sort of the the line between what a blade component is and what a. Livewire component is and when an alpine component is gets even blurrier in the good in a good Way. Um, and I don't I Still don't know what it looks like but it's it's something that I just like ponder from time to time and.

46:01.60
Taylor Otwell
Yeah.

46:10.22
Taylor Otwell
Yeah I mean I agree and that's partially why like I sort of reached out to Caleb and said hey let's kind of make livewire you you keep maintaining it and running the show but let's make it feel like this first party part of the laraville ecosystem because I think. Um, it's going to continue to be such an integral part of how people could potentially build you eyes with laravell um, because yeah I think you're right I mean there's there's something pretty magical about the whole alpine blade and potentially livewire combination that I wanted to sort of like get ahead of it and be like hey let's kind of like. Bake this into the story a little bit and make this feel like this is what blade should have been from the beginning you know like this is how it should have felt is this really robust powerful way to build you eyes.

46:54.38
Chris Morrell
Yeah, yeah.

47:01.34
Chris Morrell
Yeah, yeah, it's I mean it's an exciting time I think in general like it's it's It's really interesting to see I mean I feel like I see um, talk you know talk about Fomo I Definitely feel like I see so many interesting things. In the like ah live wire and and lots of people posting about filament and like ah all these different approaches that are like ah I want to I want to have that too know.

47:33.00
Taylor Otwell
Yeah, yeah, and I haven't even tried filament yet. You know which I know a lot of people love um and I get asked my opinions on a lot but it's just like I always have to be like haven't tried I haven't had time to like even composer install it you know and give it a world. But um, you know.

47:45.42
Chris Morrell
So.

47:48.65
Taylor Otwell
Definitely seems to be ah, a pretty popular thing for even if we're an even higher level of abstraction. You know as far as like let me just drop a data table or drop whatever onto a chart onto my app.

47:52.51
Chris Morrell
Right? right.

48:01.65
Chris Morrell
Yeah, yeah I mean it feels like filament is a little bit um is a little bit like what you're you were talking about at the beginning of um, sort of offering that component library feel I do think that it it feels like.

48:18.87
Chris Morrell
Feels a little bit more all or nothing to me I know that's not entirely true, but it kind of feels like you have to buy into the filament way whereas I can see a world I mean one of the nice things about um, you know, component libraries in the Javascript world is just like yeah I can just grab.

48:25.45
Taylor Otwell
Is.

48:37.82
Chris Morrell
Headless ui or I can just grab like this. You know the react select component and just kind of like drop it into my app and it doesn't it doesn't really impact the rest of the way that I approach things and I I definitely think that there's a world and I you know I know that Caleb has talked publicly about ah.

48:48.88
Taylor Otwell
Is.

48:57.32
Chris Morrell
You know, working on something in that space. Um I think there is a world where ah, there's something in between right? That's like giving you those really rich interactions and a lot of the you know, figuring out a lot of the hard parts for you but doesn't doesn't necessarily take over.

48:58.27
Taylor Otwell
Mrs.

49:16.83
Chris Morrell
Um, the the way you build. It's just like this is a really great component to drop here. Yeah interesting I Um the ah this is something I can't remember.

49:21.86
Taylor Otwell
Right? Yeah, that makes sense.

49:32.74
Chris Morrell
I can't remember who I was talking about I think I talked about this on the podcast but I can't remember who when I when I first got into Larevelle um, like I said it was the I think it was five six and whatever it was I guess it was the first release that came out after the um. The html inform builder stuff was pulled out of the framework and I remember just um I remember just coming in and thinking like how is it possible that this framework has absolutely everything under the sun.

49:53.57
Taylor Otwell
Yeah.

50:10.34
Chris Morrell
But doesn't have a solution to building forms just because form building is like such a central part of like every web application you know, um, and ah that right? Um, and I I wonder.

50:18.56
Taylor Otwell
Yeah, ah it is true like every web Framework had something for that. You know.

50:29.94
Chris Morrell
I Don't really know I've never actually talked to anyone I don't know if you remember like what the what was the what was the backstory behind the decision to pull it out at that time. Do you know? do you remember.

50:39.51
Taylor Otwell
I Think it's like it was a hard thing to build in a way that pleased everyone because everyone had a lot of opinions on how a form builder should work and I still think there's like something to this I mean so much of what we do is building forms right? You know as Web developers.

50:55.16
Chris Morrell
Yeah.

50:59.42
Taylor Otwell
Um, these are still discussions I've had with people recently of like hey how do we make the form story better. This was in an in an inertia context but it just goes to show that like forms is still something something top of mind you know, like in the layer of a world but you know I think back to your question. It was just like It was such a hard thing to build and it was such like I kind of think of this as the framework can easily develop these pr black holes that seem to attract prs forever and I try to avoid them. Um. I'm trying to think of other examples of this but forms was definitely one of them. Oh and another weird version of this is the key generate command in artisan which seems to just attract Pr's and you would not expect it to but it it does to the point where I literally.

51:47.80
Chris Morrell
Interesting. But.

51:53.27
Taylor Otwell
I Feel bad doing this but I've literally had to be like I'm no longer accepting prs on this command you know like this is a finished command but anyway forms it just like another one of those things to like there is this constant prs of like I think it should work this way or that way Blah Bla blah and eventually got to the point of like hey like.

51:59.57
Chris Morrell
That is wild and.

52:11.64
Taylor Otwell
This is actually not a very complicated thing to build on your own like a simple form builder that just Outputs Html tags. Why don't we just sort of like divest ourselves of this responsibility and turn this over to the community to like we're turning it over to the free market. You know to build form.

52:16.73
Chris Morrell
No.

52:29.26
Taylor Otwell
Library component builders or whatever you know that being said, um I don't know like if there's a space space to revisit that now. Um, now that so much has changed as far as how people build front-ends.

52:41.91
Chris Morrell
Yeah.

52:45.70
Taylor Otwell
With Larava whether it be with livewire or inertia. Maybe there is room to come back and say like maybe there's an opinion opinionated way to build forms that feels really productive and good and and fresh. But yeah, that was my thinking at the time was it. It turned into one of those pr black holes that was just like. Kind of a maintenance burden and time sink that I didn't really want to think about anymore.

53:08.35
Chris Morrell
Yeah, yeah, no I I can appreciate that. Yeah I mean I I realized that maybe not the last episode but a couple episodes ago I had um I had Adam on to talk about catalyst um, and we talked a lot about form building because.

53:21.78
Taylor Otwell
Fast.

53:26.98
Chris Morrell
You know that was my first that was the first big package that I um that I released was like a a layer of el form builder because I I just was like we need this. We're going to use it everywhere might as well open source it? Um, and I I've you know it's been it's been ah it's been fairly well received but I was surprised um I was kind of surprised at how little interest there was in that space and I think that part of it. It feels like to me is that um.

53:57.25
Taylor Otwell
Is.

54:05.17
Chris Morrell
The frontend story is so sort of fragmented that that it's not. There's not like 1 right way you know like the form building needs if you're doing purely like server rendered html are just so fundamentally different than if you're doing you know Vue in inertia or react in inertia.

54:11.82
Taylor Otwell
This.

54:24.13
Chris Morrell
And that's going to be very different than if you're doing livewire and so it's like it kind of doesn't make sense I think I'm realizing that more and more just this like the The. The just Blade and alpine approach is just not the default for a lot of people. Um, and so solutions that really just target that are are getting more niche. You know it's not even though obviously lots and lots of really fantastic Lairville Apps are still just built mostly.

54:45.40
Taylor Otwell
Is.

54:51.74
Taylor Otwell
Is.

55:00.10
Chris Morrell
Ah, with blade um, you know there are just so many different ways to approach things that something like form building where the the types decisions and types of Apis that you're going to need are are just so different across this um systems.

55:14.50
Taylor Otwell
Yeah.

55:18.29
Chris Morrell
I Can just see it be hard to find a like universal approach to.

55:20.86
Taylor Otwell
Yeah I think you're right that probably the solution will have to be tailored to each ecosystem. You know I think it's interesting that even in sort of like the hot and trending ecosystems like remix which we brought up a few times forms is apparently still very top of mind to them as well. You know like. I think when remix came out, you know 1 of their big points of emphasis was like hey look we could sort of have this form component as like this first-class primitive and like all of these niceties around working with forms because this is so like fundamental to how web applications are built. You know, even. All the way here in 2024. We're still spending a lot of time building forms. So I definitely think there's a story there and yeah, probably the solution is going to have to be tailored um to each ecosystem. So I'll be curious to see you know what? the best way to do that in each ecosystem or each. Not ecosystem, but each sort of like paradigm of building web uis what that will look like.

56:16.78
Chris Morrell
Yeah, well and it it feels like things like ah precognition are kind of like that is a relatively universal solution to like 1 specific problem that forms have um.

56:22.77
Taylor Otwell
Owns.

56:31.92
Chris Morrell
And yeah, you need kind of like different drivers for Vue and react and and um, livewire but fundamentally um, it's like picking out that like 1 slice you know the the validation slice and I can imagine that maybe there are other solutions like that that.

56:33.82
Taylor Otwell
Things.

56:51.58
Chris Morrell
Just like um you know, pull out one one piece um and make that one piece a little bit easier although you know how many more slices are there validation and ah you know like sort of.

57:03.31
Taylor Otwell
Yeah, well I mean something came up something that came up recently with Adam and I were talking as we were playing fortnite. Actually we're talking about a you know, better ways to do optimistic Uis and inertia where.

57:17.83
Chris Morrell
So.

57:20.60
Taylor Otwell
You know if you're if you're building an inertia page and you have a form submission. It tries to behave sort of like a typical blade form submission where the form totally finishes you know submitting you get redirected back to the page. You show some success message which is great. You know that's like. Ah, really streamlined productive way to work. But if you wanted to do like an optimistic ui in inertia right now you're sort of forced to drop down to kind of the old school way of doing things where maybe you make some like fetch request to the backend you immediately. Update: let's say like the to-do list in your frontend to add the new to do item. And then um, you know if there's an error you show that later but you know being able to build almost like a remix style form component for inertia that lets you do traditional form submissions and redirects the the typical way you would do with either blade or inertia honestly, or lets you have kind of have these nice. Hooks into optimistic Uis I think would be an interesting thing that honestly we we may explore building something like that here at laravelle as we're working on some of these new products we're building this year and it'd be a good opportunity to sort of explore the form story because we're going to be building a lot of forms this year so you know we'll we'll have a lot of like dog fooding.

58:25.69
Chris Morrell
I.

58:35.93
Taylor Otwell
We can do to try to build nice experiences.

58:37.90
Chris Morrell
Yeah I mean it's It's such a funny sort of challenge. You know there's There's like the adage. It's all it's all tables and forms basically and it's like data tables and form components like have such a high.

58:47.34
Taylor Otwell
And.

58:56.84
Chris Morrell
Could have such a high impact but also yeah, like you said it's so opinionated. Um, and just just all the different decisions that go into you know how you want it to be rendered how you want the interactions to work like.

58:57.40
Taylor Otwell
Totally even.

59:12.90
Chris Morrell
I can see it being almost impossible to like land on one solution that you know meets enough needs to be satisfying.

59:18.91
Taylor Otwell
Yeah I think you're right though that like if you do land on a good solution. It's so high impact you know as far as and those are the things I love to work on the most you know is like almost every layer of L Developer is going to have their productivity improved by a solution in that space. Um, because everyone's writing forms and I would love to you know, get some hard data you you know you made a comment about there's still a lot of apps built just using Blade not using livewire not using Inertia just old-school way of building Apps and I would love to get some hard data of like.

59:54.82
Taylor Otwell
You know something we did recently for forge is like literally to send out a survey the good old-fashioned way about like what are you using forge for what kinds of applications. Are you building you know, like how important is it in your sort of hosting story. Ah, but the same for like sort of the on the open source side of like What are you know? What are you using to build the frontend on the frontend. What pain points are you are you having I would love to get more hard data there because it's very easy I think for a lot of us that are you know, like which goes for me um people that are online a lot are on Twitter a lot It's very easy to make assumptions about what people are doing and they're often very very wrong and very very like different from reality. Um I think reality tends to like lag pretty far behind a lot of these trends. You know as far as what people are actually working on on the ground There's definitely these people.

01:00:32.53
Chris Morrell
Yeah, yes.

01:00:49.15
Taylor Otwell
Using these cutting edge tools and and building with all of the latest stuff but I think for a lot of people that's just not the reality. Um, so yeah, but it would be interesting to get more hard data there on kind of what people are using and maybe help us steer us for like what problems should we be solving first.

01:01:05.99
Chris Morrell
Yeah, yeah I Wonder I mean this is this is a really fine line as well. But like would you ever consider um like having some sort of ah you know opt in package that people could install that like. Just like a composer postinstall hook. That's like these are the packages that I have installed and you could just like offer that within the Lareville Installer like would you be willing to tell us packages you have installed. You know? Yeah I.

01:01:30.42
Taylor Otwell
Yeah, and kind of anonymous anonymous usage data I would honestly love something like that and to be honest and I have this has come up so much of like it's so hard for us to know. Who is using Lravele and what are they using it for um, you know we we just recently put um clearbit on the larafl website to try to suss out some of that as far as like.

01:01:50.80
Chris Morrell
Yeah stuff.

01:02:03.42
Taylor Otwell
What company logos are actually visiting the larava website like for example, if we see that I don't know um Wells Fargo let's say for example is on the laraville installation docs are on the routing docs a lot That's really great info for us to have you know and like we we've always struggled to know like who is using lara v at what capacity. So I think that's actually a really interesting idea of like that kind of a prompt after you run lara va new if like would you mind sending some anonymous usage data. You know a lot. Ah you know.

01:02:17.56
Chris Morrell
Yeah.

01:02:33.15
Taylor Otwell
I'm sure people see this with software all the time that would be super helpful. Actually if like what package are you using? How are you? you know we we could probably suss out some pretty interesting data if we did that.

01:02:43.12
Chris Morrell
Um, yeah I mean or even like for for a little while I ah I put up a way I put up a website. It was spotsy dot cards I was feeling bad about never sending spotsy the postcards that I was supposed to send them. So I built a whole little um little web app that you you basically could just pick from a dropdown of a spotsycart ah spotsy package and pick your hometown and it would like Auto Generate a postcard and send it for you. Um, and I always wanted.

01:03:11.91
Taylor Otwell
Is.

01:03:17.80
Chris Morrell
But never actually got to the to the point of I really wanted to ah make I was going to I was going to do like an ah javascript package so that you could just do like npx. Um, that would just be like Npx. Botsi cards or whatever you know and have it look at the current composer Json file and then like basically either pick one of the packages at random or let you pick from like a list from there so that it was kind of like hey it's going to be built.

01:03:35.46
Taylor Otwell
On this.

01:03:53.89
Chris Morrell
Based off of the actual app that you use and I could see um even just doing something that like that you know like just a simple little command line utility that ah anyone could run at any time that just like uploads just.

01:04:01.17
Taylor Otwell
Means.

01:04:12.49
Chris Morrell
Just the list of packages installed in your current composer Json file you know, um because I imagine that if you posted on Twitter like hey do you mind running this command like you'd probably get a decent decent return on just that at first you know.

01:04:15.83
Taylor Otwell
Yes.

01:04:23.40
Taylor Otwell
Who is. Yeah I think it's a good idea honestly makes may explore that. Yeah.

01:04:32.69
Chris Morrell
And I wouldn't I mean it would be Yeah, it would be pretty simple to build you know and and the cool thing is yeah if it was like if it was a ah node package you know then people could just run it without even having to install anything you know which.

01:04:46.75
Taylor Otwell
Is.

01:04:49.51
Chris Morrell
I Would love to see that happen in in composer as well. That'd be pretty cool to have ah have a composer version of npx.

01:04:55.41
Taylor Otwell
Yeah, yeah, definitely.

01:05:00.89
Chris Morrell
Well, we had a bunch of other other things that I thought maybe we'd get to. We are at an hour um if there's anything on that list that that ah interests you I'm happy to talk about it. But I also don't want to take up too much of your time. So if if you think this is a good place to. To call it I'm happy to do that as well. Thanks.

01:05:21.19
Taylor Otwell
Ah, well if we were going to do like five or ten bonus minutes what would be the most interesting thing that we didn't cover that you would you would want to cover.

01:05:28.43
Chris Morrell
Um, well okay I think um I think the the the one um topic that came up on a previous episode was I sat down with Caleb and talked about lifecycle hooks.

01:05:44.35
Taylor Otwell
In.

01:05:45.65
Chris Morrell
Um, you know, basically Livewire has a bunch of systems in place to like hook into different moments. Ah that that you know the the mountain mounting and mounted and boot and you know all that stuff. Um and he's really built a pretty robust system around that.

01:06:01.50
Taylor Otwell
Bribe.

01:06:05.59
Chris Morrell
And we talked about hooks in reaction. Ah in you know in ah relation to like wordpress right? How um hooks are kind of like the blessing and curse of wordpress ah part of what makes working with Wordpress. So awful is that everything is a hook but also.

01:06:17.59
Taylor Otwell
M.

01:06:24.84
Chris Morrell
Think arguably part of um, what made wordpress So successful was you could hook into literally everything and so anything was possible. Um, and I think.

01:06:33.88
Taylor Otwell
This.

01:06:39.75
Chris Morrell
The thing that I keep on coming back to is I I feel like there's an opportunity in larivale to have some sort of single approach to hooks that both would be. Um, available at the Framework level. But also then would standardize the way other packages could do it? Um, and the example would be. You know?? Um, you know, new context stuff. Ah when you register a closure to add ad context or when you register a closure to.

01:07:00.96
Taylor Otwell
Must.

01:07:16.11
Chris Morrell
Um, add data to all job payloads or um, the the stuff that happens within the testing to like automatically execute traits or the stuff that happens on ah the the model around you know.

01:07:21.12
Taylor Otwell
Is this.

01:07:35.90
Chris Morrell
Um, registering event life cycle hooks on on models. Um I feel like there's an opportunity to sort of unify that under 1 single api that then you know would mean that all that stuff is done in just one way in the framework. But I think what's.

01:07:39.60
Taylor Otwell
Yeah.

01:07:54.16
Chris Morrell
Even more interesting is all of that stuff then there would be a single paradigm that any package maintainer could also lean on. Um so that we don't have to all reinvent the wheel have you ever thought about that.

01:08:03.82
Taylor Otwell
Um, yeah, um, no I haven't but I felt that pain because like even even like some of the recent stuff you referred to about like ah the context stuff for example. So anytime. We sort of reinvent that hook system I actually have um, had to go go step back and be okay I know we do this other parts of the framework. What do those method signatures look like what order are the arguments in so that I can make sure that like it feels semiconsistent with how we do that kind of thing in other places. Um, so and I know it hasn't crossed my mind but it probably should have um and I wonder like are you picturing almost like 1 let's just say facade for like ease of discussion but like 1 facade where you can like tap in to all of those different types of hooks so that. There's sort of like 1 unified system for registering hooks across those different packages and then other people could sort of tap into that system.

01:09:06.94
Chris Morrell
Um, kind of what what we landed on and I I have like a proof of concept that we're we're using internally at internet. You now is sort of like a hookable trait. Um, because I think you still want to interact with the specific. Um.

01:09:19.26
Taylor Otwell
Um.

01:09:23.15
Chris Morrell
Components that you're hooking into I don't think sort of like a global hook Facade makes a lot of sense. Um, and I think but I think like essentially being able to just pull in sort of like hookable into any ah class.

01:09:23.60
Taylor Otwell
This.

01:09:41.56
Chris Morrell
And be able to expose. Um, you know, essentially the same sort of set of Apis um makes a lot of sense and and I just think like you know I've noticed over the years right the like lairvell hooks have moved from. Okay, you can register a single closure that. That like is the thing that is in charge of doing this to the the more modern approach is like each closer that you register augments like and merges in new data and so like you know, just being able to unify that take on everything. Um.

01:10:10.54
Taylor Otwell
E.

01:10:18.93
Taylor Otwell
Um.

01:10:19.17
Chris Morrell
And yeah, just each having each one sort of feel the same way and then realistically you'd probably still end up exposing like nicely named functions for like the common use cases because probably you still want like a you know queue.

01:10:30.92
Taylor Otwell
M.

01:10:37.71
Chris Morrell
Make payloads using um because that feels good but under the hood. It would just call the same apis as everywhere else and if you needed to access more? Yeah I I think that there's ah, there's something really interesting there.

01:10:51.85
Taylor Otwell
Yeah, that could be cool. Um, you'll just show me some of the proof of Concepts or like some of that hookable trait ideas you've had. But yeah, but because I have I have felt that pain point you know, but it just never crossed my mind for some reason to try to like step back and unify it a little bit but that would be pretty sweet. Actually.

01:10:57.26
Chris Morrell
Yeah, yeah.

01:11:08.14
Chris Morrell
The the.

01:11:09.87
Taylor Otwell
Reminds me a little bit like this is a little bit different but I don't know if you saw this is old. Um, but there used to be like ah a peckle php extension called like aspect-oriented programming for Php where you could do like you could literally hook in before any method or after any method or a round method. It was.

01:11:24.77
Chris Morrell
Yes, yes.

01:11:28.59
Taylor Otwell
Truly some magical type stuff. Um, anyway I kind of remind I don't it looks like it made me go out here. Look it looks like it hasn't been updated in 10 years actually but um but yeah pretty pretty wild stuff.

01:11:42.20
Chris Morrell
Yeah, yeah, it's a hard I mean like I said ah you know the the risk is um, you know the worst parts of working with wordpress are also the hook system right? So it's like.

01:11:55.18
Taylor Otwell
Yeah, is it sort of you think the main problem is like the hiding of behavior because that's sort of like it's a little bit of a similar problem I see sometimes with just events in general is like it can become difficult to know.

01:11:58.50
Chris Morrell
It's a really tricky balance. Yeah yeah.

01:12:12.62
Taylor Otwell
Where all these things are happening because the the behaviors veryary separate. Yeah I mean it ties all the way back to the beginning of the discussion where like the behavior is very in a very different place than where things are happening. You know so things can become very spread out. Yeah.

01:12:19.74
Chris Morrell
So yes, yeah, yeah, yeah, it's I think yes that is the biggest concern and so I think it would have to be something that's like you know you you you use it very carefully right.

01:12:36.85
Taylor Otwell
Who yeah.

01:12:38.57
Chris Morrell
Um, you don't just like throw hooks on everything just because you can and and I think I don't know my my thoughts on sort of the evented stuff is just like as a team you have to pick the paradigm that that you're comfortable with and I I think the worst the worst case scenario is when.

01:12:50.67
Taylor Otwell
This is.

01:12:56.51
Chris Morrell
You know you have an application that has ah 3 observers ah and everything else is done in a totally different way. You know so that like every once in a while you run into something and you can't for the life you figure out why it's not working and it's because oh.

01:13:05.98
Taylor Otwell
Um, yeah.

01:13:13.62
Chris Morrell
This is the 1 thing that we implemented through events because if if everything's implemented in an evented way then it's fine. You just always know where to look. But um, yeah, it's like when you.

01:13:14.99
Taylor Otwell
M.

01:13:21.35
Taylor Otwell
And I do think with this hook System. We probably have like the pair the conventions in place to handle that because I know like when I bring up a new larael app. The first thing I do. A lot of times just pop open the app Service Provider. So I can kind of see like what customizations have sort of been made to this app. So like I think probably that's where some of that hook stuff gets done. You know is in these service provider Boot methods. So I mean probably it would become.

01:13:41.39
Chris Morrell
Yeah, yeah, yeah.

01:13:51.47
Taylor Otwell
Pretty conventional I think to configure that stuff there I know that's where I always look first to see sort of that kind of thing.

01:13:57.60
Chris Morrell
Yeah, no I think that is a good point that it's like there is sort of ah a central place where that stuff happens. Yeah I mean and I'm I'm happy to show it to you that the other really interesting thing that we've done with hooks that I I didn't.

01:14:04.62
Taylor Otwell
Oh.

01:14:14.23
Chris Morrell
Originally envisioned but actually I think is like 1 of the more exciting pieces is we also implemented viewhooks. Um, so basically inside of vue you can just like do xhook and give it a name. Um and potentially pass it arguments.

01:14:23.77
Taylor Otwell
Um, please.

01:14:34.10
Chris Morrell
Um, and the slot is like the default view for that hook if there aren't any hooks there? Um, but in like really complicated uis where there's like a ton of conditional logic being able to again kind of going back to that colocation thing. Um. The logic that determines what customizations have to happen in the at the view layer and the logic that actually implements those customizations all happens in 1 place and so we have like a single ah service provider that may be.

01:15:02.90
Taylor Otwell
Who.

01:15:09.69
Chris Morrell
Handles like in our case, we deal with a lot of like state licensing issues. So It's like okay this state requires that we include a certain message in like the outgoing email if like a person is licensed in that state. They also require that Like. We have them collect one additional piece of info when they're taking an exam and they require that we like show some sort of like identity confirmation dialogue ah at some random moment in the exam like this is this is real stuff that the states have asked us and so before that code was like peppered throughout the entire codebase.

01:15:39.23
Taylor Otwell
Who.

01:15:45.91
Chris Morrell
Now you know in those three hookable places in the ui we just have like an xhook um tag and now all the logic related to that like states licensing requirements lives in 1 place and it's just like reaching into those different those different locations. Um. And it's another one of those things where there is some indirection and you know it comes with ah it comes with a cost I wouldn't recommend it for like just like a starting point for how you're going to build your ui um, but when you get into more complicated. Ah conditional rendering. It's been a really really useful tool for us. It's it's kind of amazing how powerful that can be.

01:16:29.44
Taylor Otwell
Wow Yeah, ah sounds pretty sweet. Actually I have to check that out as well.

01:16:33.50
Chris Morrell
Yeah, well this has been really fun. Ah maybe maybe we'll do a redox with ah with this other list At some point I've I've had a good time. But thanks for ah, thanks for taking the time is there ah is there any last last thoughts last words or anything you. Ah.

01:16:38.63
Taylor Otwell
Where.

01:16:50.85
Chris Morrell
You want to plug at the end here before we call quits.

01:16:52.57
Taylor Otwell
Ah, nothing too much. You know, yeah it was fun. Thanks for having me on. We are hiring. You know that's be the only thing I would plug would be like blarell.com/careers if if you're interested in coming on board at at laravell and helping us think through sort of like the next set of problems. We're trying to tackle. Ah you know submit your resume.

01:17:11.20
Chris Morrell
Um, what are the? Ah what are the jobs that you're hiring for right now.

01:17:14.36
Taylor Otwell
Yeah, so we're hiring full stack developers. You know, kind of your typical laravell developers. Um, we're hiring infrastructure people so people that maybe have experience with cloud stuff Kubernetes hosting. Web applications in general I think that kind of stuff. We're also hiring um a designer you know we've never had a full-time designer at larael to help us build. Actually you know what should these buttons look like how should what should this form look like that kind of thing. Ah, we're hiring product managers.

01:17:43.70
Chris Morrell
Um, yeah.

01:17:49.70
Taylor Otwell
Probably a couple um never had a product manager at Laravel to help us kind of take a holistic view of managing you know something like forge or or vapor or something like that and ah then tech support. You know which tech support for us is pretty tricky. Um. Because it ends up being pretty technical stuff that we're having to debug for the customers. So a lot of times our customer support people need um you know some some light experience either managing Inginx or Mysql or something like that. so ah yeah so I think it's like 5 different positions. We have up on the website right now.

01:18:20.63
Chris Morrell
Um, for sure. Okay, awesome and that it's lairville.com/careers sweet all right? Well thanks again for hanging out. It's been fun. Thanks.

01:18:32.31
Taylor Otwell
Yep, yeah, thanks for having me. See ya!

Creators and Guests

Chris Morrell
Host
Chris Morrell
Father of two. Mostly talking about PHP/Laravel/React on Twitter. He/him.
The Future of the Laravel Frontend w/ Taylor Otwell
Broadcast by