Frontend FM
EPISODE 03

JavaScript to PHP, Laravel Starter Kits, and Learning Driven Development with Josh Cirre

Mar 27, 2025

Episode with JavaScript to PHP, Laravel Starter Kits, and Learning Driven Development with Josh Cirre

In this episode of Frontend.fm I chat with Josh Cirre, the JavaScript to Laravel Guy and Laravel DevRel. Join me to learn about Josh’s journey in tech, his transition from JavaScript to Laravel, the power of Laravel’s batteries-included approach, Josh’s Learning Driven Development philosophy, and much more.

Josh on the web

Maxi on the web:

Transcript

Josh Cirre (00:00) Within Laravel, it’s OK. You have all of your options, but no one says we’re going to use a different ORM in level. You just you just use what’s built into Laravel and you have different options for. You know you could authenticate a different way, but the out of the box authentication even without the actual front end pages is just kind of there and you accept even smaller things like yes, there’s you don’t have to use Tailwind CSS, but.

Maxi Ferreira (00:22) Mm-hmm.

Josh Cirre (00:28) the majority of people who are starting Laravel of application probably are using Tailwind CSS it’s just kind of like accepted.

Maxi Ferreira (00:37) Hello everyone, welcome to another episode of Frontend FM. My name is Maxi Ferreira and my guest today is the JavaScript to Laravel guy and Laravel dev rel Josh Cirre. Josh, how are you?

Josh Cirre (00:52) I’m doing great Maxi. It’s been, it’s a pleasure to be here. And it’s funny because I feel like a lot of my Laravel journey, which I know we’ll get into kind of started with a stream that I did with you. And now it’s kind of a book ending right now.

Maxi Ferreira (01:06) That’s right. You were my first guest on my stream. It was a couple of years ago. Yeah. We talk about Laravel as well. Yeah. now, yeah, it’s will come for so-called. We’re still talking about Laravel. And I’m very excited because unlike last time, I’ve actually started using Laravel now. So I have more questions for you now about it. Awesome. Awesome.

Josh Cirre (01:13) Yeah.

Awesome.

Yeah, I’m ready for it. I’m always excited about that.

Maxi Ferreira (01:33) So yeah, but before we start, I wanted to ask about you. you give us the origin story of Josh, how you got into tech, and what are the things that led you to working at Larvel?

Josh Cirre (01:45) Yeah, yeah, so I like like most people probably was always excited about tech. It one of those things. I just didn’t know where in tech I was going to kind of end up even in, you know, junior high and high school. I kind of did some HTML and CSS. I was like, OK, like I can be a hacker and create this cool website kind of thing. And I knew nothing. It was just mostly like it was modifying some inline CSS style variables.

at the time. But it felt it felt cool to be able to do something like that. And I kind of went through the phases of OK, maybe I’ll go into, you know, know, computer science that didn’t really work out. That was a little bit too much math for me when I picked up a book on C++ to try to. This was like an eighth grade. I picked up a book in C++ to try to figure out how to do game programming. And I got about maybe halfway through the first chapter. And then I was like, this is.

This is a little bit too much. So I was always still interested, but it was one those things that I just kind of kept doing on the side, kept learning of like, OK, mostly around gaming at the time of OK, there’s a lot of PHP BB Bulletin forums that I could design, and it was mostly just tweaking variables and design, tweaking themes and WordPress. It was a lot of a lot of graphic design, too. For the longest time, I thought I was going to be a designer.

Long story short, went to went to college for nothing like tech. I went to college like for communications and a lot of that was I was I had goals and aspirations to be on SNL. So like the stand up improv comedy, I did a lot of like musical theater type stuff, very like acting, I guess, focused. And shortly after college, like trying to figure that out or trying to go along that path, I realized that’s a lot of work.

and very few have that payoff. I kind of wasn’t, I was like, okay, I still want to be able to have an actual income until I get there or like if it ever happens. So I eventually just switched back into tech. guess I just could, I switched back into what I already knew. And a lot of that was just kind of helping with websites. I think my first job in tech during college was kind of like,

called this content specialist job. And it was basically just entering things into a CMS. Very, very, very, very, very technical stuff. But yeah, over the course of time, I eventually on nights and weekends just taught myself how to code piece by piece. I never really worked as full time as a developer. I always had jobs that were kind of adjacent to development. support, customer support engineering where I could like

Maxi Ferreira (04:01) You

Josh Cirre (04:22) hey, I think here’s this bug. Here’s with the proposed fix that I think is probably the reason why and be able to kind of scratch my itch on how to learn in that way. And then I eventually moved into something called solutions or sales engineering. It’s kind of like the I like to think of it as dev rel if there was no dev rel for that company. So a lot of it’s kind of a kind of making sure other companies who are looking to buy your product or your your

your software that they know how to use the advanced features of that of that software. And yeah, so eventually I just kind of found my niche in tech of I think one just kind of trying to make as much content as possible and then to just trying to learn as much as possible to I think the the the roles that I had been placed in or selected kind of guide that to now where I am today.

Maxi Ferreira (05:16) Very cool. Very cool. yeah, think when you started playing with these technologies back at school, it’s very similar to my own experience. That’s how I got started too, looking at, I think it C or C++, like you said. This is too complicated, but then I got into like PHP and some light JavaScript. Just looking into like, I was…

Josh Cirre (05:39) Okay.

Maxi Ferreira (05:44) managing or administrating some forums for the communities, local communities. And we wanted to customize it so you had to dive into the code. I had no idea what I was doing, but I remember at the time, the way that you installed a plugin was to just modify the code directly. So it was a tutorial that told you which files you have to edit and you would just copy paste those things without knowing.

Josh Cirre (05:53) Yeah.

Maxi Ferreira (06:08) what you were doing. that’s how, yeah, so that’s how I got started too. So yeah.

Josh Cirre (06:14) That’s interesting because that’s really similar to my backstory. But funny is I didn’t actually start programming. So I modified a lot of themes in WordPress or PHP BB, but I never really touched the PHP part. I never even started learning. I think the first thing I started learning other than I knew enough of syntax in C++ to know how to do Hello World.

Maxi Ferreira (06:31) okay.

Mm.

Josh Cirre (06:41) That’s about it. But the first thing I started programming in in high school was a visual basic VB six. And it was to modify plugins in Photoshop so that I could. It was a hacked version of Photoshop. I’m sorry Adobe, but I couldn’t afford it at the time.

Maxi Ferreira (06:47) Nice.

Ha

So you got into, when you started building more robust websites, did you start with the JavaScript stack, Next.js, and all of that? How did you make that transition first?

Josh Cirre (07:10) Yeah, a lot of the what I learned usually came out of a thing usually come out came out of the I guess the impetus of what I wanted to finally build. And I think from my background of like, OK, I’m not a great designer, but that was kind of like my my background of what I what I like to do of like it was just kind of like graphic design. I liked making things look nice on the page. And so I think I naturally veered towards the front end aspect of programming within JavaScript.

And so it was a lot of, I’m not going to touch the backend until I have to. So it was very much, I started off just learning, you know, basic vanilla JavaScript and very quickly picked up React as a templating language. I think Create React app was still like the main thing at the time. And so I didn’t really pick up VEET until a little bit later, but then,

Maxi Ferreira (07:41) Hehehe.

Josh Cirre (07:58) Most of my side projects or like client projects were then done in either Next.js, a lot of Gatsby stuff, because I was doing a lot of like Jamstack. That was like the thing I was like, I’m going to make myself known for Jamstack. But then I realized I didn’t really like GraphQL. So that was a little bit tricky for that. And then Next.js felt and I eventually quickly learned where

I actually needed to start having a database. So most of the stuff I was doing was very static stuff. was calling an API and getting that information. And each piece that I learned was kind of just out of this need for finding a solution to whatever my current problem was, whether that was like my own thing of like, I want to build this particular kind of app that I can save X amount of information for, or it was like a client project of like, okay, now they need to edit information.

or they need to upload information now have to figure out a way to do all that. so, yeah, think mostly Next.js, some Svelte and SvelteKit, and then slowly transitioned into Firebase and SuperBase as my final JavaScript ecosystem.

Maxi Ferreira (09:02) Right. And then you made the… What led you to Laravel? Did you face any challenges with the JavaScript stack or was something about Laravel that interested you?

Josh Cirre (09:13) Yeah, I think it was kind of a little bit of both because I I’m always one of those that like the way I learn is just trying out something new. And so I would dedicate time at night. And this was kind of like my my way of wanting to better myself because like I still didn’t know if I was if I wanted to be like a a full time developer or if I wanted to like stay in sales engineering or eventually like move into dev rel, which was like the thing that I

I eventually wanted to move into just as like a pipe pipeline goal. And it was kind of one of those things where I tried to force myself at night of like, okay, here’s a new tool I learned or new package that I learned or a new even like a framework or language that I saw. And I want to try to, wanted to, I wanted to see like what, makes it valuable. And so every night, you know, I, I would say, okay, like,

Here’s NUXT and here’s how I would do this with NUXT or like here’s solid JS and solid start and here’s how I would do that with solid start and so like I at least wanted a you 20 % understanding of each framework and skill and I eventually got to this point where the the part that always Took the most time when doing actual projects when I’m like, okay I want to build this tool that people log in and then they save substitute database like like typical

what you would need for most 90 % of projects would be like authentication, a database and some way to query it. And I didn’t really have too much opinions on what I liked in the JavaScript world around that. Like a lot of people are like, Oh, I really like drizzle or Prisma or maybe they have like an older school stack with like Mern and they like, you know, Mongo and Mongoose or something like that. But me, I was like, I kind of like being told of like, here’s how to do it. Just go and do it.

and it, I think, I think there was some things that I would, I eventually like got from that world, like, with like next off, like that was, it’s nice to have those pieces, but it was still taking me time of like, here’s like an hour I’m dedicating to just get it to a starting point. And most of my apps were so diverse that I didn’t want to create a starter kit of my own thing. And so it was, it was one those things where I just,

continued to keep looking at, okay, what am I missing from other stuff? And there was one night I remember where I can’t remember, I think it was Chris Sevz, who is now the director of DevRel, my boss. Funny timeline there, but he wrote a Notion post and put it on Twitter about three years ago. He wrote why he’s moving his SaaS app from Next.js to Laravel.

Maxi Ferreira (11:42) you

Josh Cirre (11:53) in the layer award for a long time, kind of moved everything and kind of was in the JavaScript world and then slowly moved back. And it was a lot of, a lot of the points that he was making about just a lot of things coming out of the box and not having to find a first party or a third party solution or service for it kind of really resonated with me, especially since I was doing more client side work and wanting to kind of build my own SaaS stuff and, and, and just learn more of that on the side. And so I was like, okay,

Maxi Ferreira (12:17) Mm-hmm.

Josh Cirre (12:22) Tonight I’m gonna learn Laravel, Rails, and Elixir Phoenix. And so I built my baseline app that I try to build whenever I’m learning something new. I still do to this day is I haven’t actually put it out anywhere, but I effectively call it Bookmarklet. It’s basically like a to-do list, but with bookmarks. And the reason why is if you kind of learn

Maxi Ferreira (12:39) Mm-hmm.

Okay.

Josh Cirre (12:46) every single piece of most of how you would build with an application, even within like the JavaScript framework. I still do this to try to learn, you know, like solid, or I just did it with this, with a tan stack, for example. and it’s basically an authenticated to do list. So those bookmarks that you save are saved to your specific profile. So then you learn authorization and policies. and then the bookmarks themselves are

Maxi Ferreira (12:56) Mm-hmm.

Josh Cirre (13:10) URLs. So then I have to learn validation of how am going to client side and server side validate this and then also kind of like a step goal is like any kind of like scraping. So like I would scrape like the metadata from that URL and embed that into the database too. And so I built that app with Rails, Phoenix. I built it with almost every framework, but that night I built it with Rails, Phoenix and Laravel. And there was just something about

Maxi Ferreira (13:15) Mm-hmm.

Josh Cirre (13:38) The starting point at Laravel, the authentication that I got out of the box, basically, even though I didn’t know it, it took me about half the time it took me with the other two stacks. And I was like, huh, this is really cool. I don’t know PHP, but it also felt the most familiar to me within JavaScript than something like Ruby. Ruby really looked weird to me. A lot of people are like, oh, Ruby’s really readable. To me, PHP seems a lot more readable.

Maxi Ferreira (14:03) Hahaha.

Josh Cirre (14:08) and yeah, I think from there, I kind of just kind of told myself, I kind of like put my foot down and I’m like, okay, any other project, I’m not going to try to play around and figure something else out. Any other project, at least like the next six months, I’m just going to find where the limits and where are the like disadvantages of using Laravel. And so I built my first SAS with it. I didn’t know view really well. I knew enough, but I didn’t know it really well, but I built it with, with view.

I built my second SAS with it and I built it with Livewire. And then yeah, I was about probably just over, just under three years ago and now it’s, that’s pretty crazy. Or maybe just over two years ago, not too long.

Maxi Ferreira (14:48) Yeah, very, very cool, very cool.

I think that’s something that for a lot of people, including myself, that aspect of Laravel of being this batteries included framework where a lot of the decisions have already been made for you is something that is very appealing. And it sounds like the solution to a lot of the problems that we’re facing on the JavaScript community. Why do you think

I know there are some solutions, some JavaScript-based solutions for this barriers-included approach. But why do you none of them have reached mass adoption? Why do you think the build-it-yourself approach is still more popular?

Josh Cirre (15:28) Yeah, I think the reason why they haven’t reached that mass adoption is because one probably because of just tenure. Like, like it’s tough to build something like that overnight and just have it be widely adopted in the sense that Laravel has been around for 10 plus years. And even though I only discovered it three years ago, I mean, I had known about it, but I hadn’t started playing around and seeing how awesome it was three until three years ago.

I think there’s the benefit of that. And then there’s also the benefit of, kind of a single voice. And I think this is where it’s, really unique with so Taylor Otwell, the creator of Laravel. He basically reviews every single pull requests into every single repo of the whole Laravel every single morning. So basically nothing gets merged without him kind of clicking off. And there are some people who, who like he has trusted for specific packages. I’m like, okay.

I you take it, I’ll just give you the yes or no kind of thing. But I think that that helps a lot. And it’s tough to have that kind of benevolent dictator in a different kind of framework, because it’s it’s tough to have that kind of personality that one wants to do it. But then to like, that’s what they’re able to do in the sense that like they have the ability, technical ability to do it, but then also maybe like the like the time to do it as well. So I think that.

also lends into why Laravel’s has seen success. then thirdly, think it’s just, think in the JavaScript world, having specific opinions is very much and not lock in, having specific kind of, this is what being told what to do in the JavaScript world is very much not as accepted. And I think,

Maxi Ferreira (17:08) Hmm.

Josh Cirre (17:09) Within Laravel, it’s OK. You have all of your options, but no one says we’re going to use a different ORM in level. You just you just use what’s built into Laravel and you have different options for. You know you could authenticate a different way, but the out of the box authentication even without the actual front end pages is just kind of there and you accept even smaller things like yes, there’s you don’t have to use Tailwind CSS, but.

Maxi Ferreira (17:32) Mm-hmm.

Josh Cirre (17:38) the majority of people who are starting Laravel of application probably are using Tailwind CSS it’s just kind of like accepted. And I think within the JavaScript world, yeah, there are those, Hey, we were just trying to take Laravel tools and apply them to JavaScript. And I don’t think that works because it’s not JavaScript based. Like it’s not what JavaScript developers are looking for.

I think the closest thing and probably the best bet for what is going to be Laravel.

in the JavaScript world is going to be next JS. And I think they’re slowly moving towards it of of OK, how do you give the ability to use auth and it and if they have a like a very opinionate, here’s how you query the database, whether that’s just using server actions or whether it’s using an ORM. I think the more you kind of look into the docs and you see, this is the one way to do it. The more that kind of thing happens in the JavaScript world.

Maxi Ferreira (18:19) Mm-hmm.

Josh Cirre (18:31) I don’t know if that’s ever going to happen, but I think that’s the reason why you don’t see it is because you don’t look at something. You don’t have an opinion framework that says, OK, this is the one way you do this. You can figure something else out, but this is the one way do it.

Maxi Ferreira (18:45) Yeah, no, absolutely. No, think that makes a lot of sense. Also, a bit of, different frameworks. Not only they have different, like they use different design patterns and different solutions, but there’s also this feeling of people not wanting to be locked into a particular solution.

maybe because framework X uses that and the framework they use is against the framework X philosophy. I don’t want to call out any particular frameworks, it’s something that if someone uses that pattern, then we want to do this differently. And I agree with you that probably next year, so popular, so widely adopted already has probably the better chances of incorporating this. I’m happy to see that they are.

bringing more and more stuff into the framework itself because yeah, it just doesn’t make sense to reinvent the wheel every time you want to do auth or something like that. Yeah, definitely.

Josh Cirre (19:37) Yeah. Yeah. I

also think two other ones that could be like contenders that have less tenure, but probably more of like the other aspects of like having benevolent dictators and having more opinions would be Tanstack mostly just because it’s he already has created almost like every single aspect of a full stack framework. It’s just kind of pushing it together. And so there’s already queries and everything like that built into it. And while it’s like

Maxi Ferreira (19:53) Mm-hmm.

Yes.

Josh Cirre (20:05) still in beta, think like that could be something that we could see become more of that where it’s like, you have everything you need. You don’t have to reach out of the tan stack to do it. And the next would be like Astro, which I think is really interesting. I know you love Astro, but I think one, has kind of like the benevolent dictator of like, okay, there are key people who kind of dictate how Astro grows. But then two, there’s also the aspect that even tan stack doesn’t have, or even next JS.

Maxi Ferreira (20:09) Mm-hmm.

Mm-hmm.

Josh Cirre (20:32) doesn’t have versus cell is would be the equivalent where you have kind of like in Laravel, you have these flexibility of options while still having still having opinions. And I think that’s where Astro kind of shines. OK, you don’t know Astros doesn’t really care if you use view or felt or solid or angular or what I think angular can be used now. But they do have opinions of here’s how to.

Maxi Ferreira (20:42) Mm-hmm.

Hehehehe

Josh Cirre (20:56) connected to a database, for example. And I think that’s huge.

Maxi Ferreira (20:58) Yes.

Yeah, absolutely. I think Astro, it makes it really easy to do these integrations to integrate whatever framework you want to use, React, Vue, you want to install Tailwind, you want to do authentication in a given way. And even though the framework itself, when you create a new project, doesn’t come with all those things, it makes it really easy to adopt them. A lot of times, you just run a command and it does the thing.

in a second so you don’t have to worry about manually installing this library thing. So yeah, definitely agree that. So Laravel comes with a lot of power built in, but I know that you can also add to it. You can hook it up with additional libraries, additional frameworks or tools. What is your personal Laravel stack?

What else do you, when you start a new project, what else do you bring in addition to like vanilla Laravel?

Josh Cirre (22:02) Yeah, my personal Laravel stack. and this kind of like talks to you, some of the, some of the really, really recent updates that we just launched within Laravel is we, we changed how our, our starter happens within Laravel. So in the past, there was kind of like a couple of different options. And within those couple of different options, there was even more options of, of having, how do you start? Do you want just basic authentication or do you want more of like a SAS starter type thing?

Maxi Ferreira (22:24) Hmm-hmm.

Mm-hmm.

Josh Cirre (22:30) And just recently in the end of February, we kind of launched these starter kits, which is basically extremely simple authentication. Still everything that you might have within the old version of Laravel and probably more than you might have in like a out of the box JavaScript thing where you have log in, log out pages, forget password, all that’s hooked up and using like more modern.

stylistic changes. So like things like Shad C N or Shad C and viewport. And there’s just three options. There’s react, there’s view, and then there’s a live wire. And so my personal favorite right now is live wire. And so for those who are kind of unfamiliar with the Laravel ecosystem, live wire would essentially be htmx, but specific to Laravel. And it feels kind of like it’s

Maxi Ferreira (22:53) Mm-hmm.

Josh Cirre (23:19) Blended into Laravel because it’s it’s only used for Laravel. There’s no other ports of livewire for Laravel and it’s a way to write Basically like the the communication protocol between your front end and your server Without having to write any API calls or Ajax requests. It kind of does that for you So imagine you had a a button on the client and with that button whenever you clicked it you wanted to run some PHP

server code. And so it basically gives you the option to basically run that server code or have the protocol to be able to run that server code from that from that button and kind of vice versa as well. So that is my current preferred stack. Realistically for when I’m starting a project, I don’t add too much to if you want to call that vanilla Laravel was a start Laravel official starter kit. There’s some things that I like

Maxi Ferreira (23:50) Mm-hmm.

Mm-hmm.

Josh Cirre (24:16) personally in the Laravel ecosystem. so within LiveWire, there’s basically two ways to write it. There’s a single file component way of writing LiveWire, basically kind of really similar to like a view or svelte, where you have your server code and even like, and even like a react server components type style, where you have your server code up on top and then you have your, your template code at the bottom.

Maxi Ferreira (24:36) Mm-hmm.

Josh Cirre (24:41) Or you can write that kind of like in separate files within Livewire. And so I prefer the single file components. And then for most projects, I prefer Laravel has a way of doing file based routing as well. So if you have like a pages folder, it could be like pages slash blog. And then it just works like all the routing and model binding and everything works with that. And I prefer that some people don’t because it can get messy once you get into bigger applications and you want and you want like text based routing and stuff.

Maxi Ferreira (24:54) Mm-hmm.

Yeah, yeah, absolutely. I’ve been playing with those starter kits. last week, yeah, I installed my first one. I’ve been using the React one because that’s the one that I’m, that’s the framework I’m more familiar with. And I really appreciate the fact that you changed the names of the starter kits because I think before you had one called, was it Basel or something? Breeze.

Josh Cirre (25:13) Awesome.

Mm-hmm.

Breeze

and Jetstream. Yep.

Maxi Ferreira (25:34) business

resume. it wasn’t like, I think one of the first questions that the CLI asked you was which one do you want? And yeah, I don’t know what that means, but now it’s very clear like React, Vue or LiveWire. it’s very clear. yeah, and I think that’s probably the React starter kit or the Vue starter kit. I think for people coming from the JavaScript communities, a very nice starting point because it…

Josh Cirre (25:41) And you’re like, I don’t know what those are. Yeah.

Yeah.

Awesome.

Maxi Ferreira (25:59) it doesn’t expose you to the entirety of all of the things that are new in Laravel because you can buy into all the way to do the backend stuff first and how the controllers and the models work and the migrations work and all of that, but still use React for the front end. of course, LiveWire looks very interesting, but it’s another thing that I have to learn.

Josh Cirre (26:16) Yeah. Yeah.

Maxi Ferreira (26:25) just bring in everything, like everything is going to be new if I start using LiveWire. But I’m very interested in LiveWire. And one of questions that I have for you is that, so there are a lot of different flavors of doing the UI layer, I guess, in a lot of applications. You have LiveWire, like you mentioned. There is something, I know there’s inertia.js, which is not.

necessarily Laravel specific, but it’s very popular in the Laravel world. There are things like Vault. I don’t know what Vault is. I don’t know if that’s a live word thing. So can you give us a walkthrough of all these different ways of doing UIs in Laravel apps?

Josh Cirre (27:05) Yeah, yeah, exactly. And yeah, so the starter kits themselves kind of have all of these options just kind of obfuscated for you. Kind like you said, like the goal was to make it less choices that you had to choose from. And so now you just have React, Vue or Livewire. And yeah, so React and Vue are powered by the inertia stack. So inertia is basically, and now it’s a first party package from Laravel. It was created by Jonathan Renning.

Maxi Ferreira (27:12) Mm-hmm.

Nice.

Josh Cirre (27:30) who is on the Tailwind Labs team now and was still maintained with him and had a a Laravel official package but then kind of like a community driven third party packages for Rails as well as Phoenix and there’s probably some other ones as well like AdonisJS but the Laravel team officially kind of took that over brought it into the fold just recently like in the last couple months

And so it’s run by the Laravel team still with Jonathan kind of getting like being being getting his thoughts for it. And so it’s officially the way to have that connection layer from the front end to the server. And so that’s really what it is. It’s instead of having to write API calls and react or view like you would with those traditional like SPA app. And then you’re having to, you know, authenticate those API calls and call them back. It’s a it’s a layer to basically

Say, okay instead of having to do all that now in my Laravel code. I’m just saying okay I want to grab all of this users to do’s and I’m going to push them to the front end and then in your react or view component you just basically receive all of us props and can then You even get special form magic helpers to be able to post to different routes and stuff like that so it’s very much like a the glue behind the server and the and the front-end side

which allows you to do things like react view and even svelte. Even though we don’t have an official svelte starter kit, there are some community driven ones that you can use pretty, pretty easily within the Laravel new command as well. And then the Livewire is basically it’s still a technically a third party implementation, but from someone who is very active in the community and is the preferred way of writing.

non-reactor view code within Laravel. so was written, LiveWire was created by Caleb Porzio, who’s the creator of Alpine JS as well. And it’s basically, yeah, kind of like the volt is the single file page. And so it’s basically the ability to write LiveWire in one file where traditional or class-based LiveWire would be kind of separate, separate files. So would have your PHP class and then your

Maxi Ferreira (29:24) Hmm.

Mm-hmm.

Josh Cirre (29:35) Blade template, which is Laravel’s templating language. And then it does get tricky because even within LiveWire, you have options. I think that’s kind of like the premise of Laravel. You have specific things that you can use, but you also have a ton of options too that could confuse people if you knew about them. But you have the ability even in LiveWire to write more functional style instead of.

in those single file components, have the ability to write functional style rather than class based style. that kind of just looks like having maybe more familiar with JavaScript developers or even just a shorter syntax for quick things instead of having to write a full class that you’re exposing a public function. Now you just get it all in one line.

Maxi Ferreira (30:01) Mm-hmm.

What’s preferred way of working with LiveWire?

Josh Cirre (30:20) Yeah, my preferred way of working with live wire would be the the vault. So the single file component, mostly just because I like seeing, hey, here’s my button. And then I know exactly that’s the function that I’m calling right up here. Just a couple of lines up. And I like the class based style. I even in JavaScript, I preferred class based JavaScript. A lot of people think that’s weird. But I like it being verbose and.

Maxi Ferreira (30:29) Mm-hmm.

Nice.

Josh Cirre (30:48) That’s one other thing why I like Svelte because a lot of like Svelte developers really like class based type stuff right now. But but yeah, that’s my that’s my preferred. I like the class based single file component within LiveWire.

Maxi Ferreira (30:53) Mm-hmm.

Nice. And can you combine, like can you mix and match these patterns or is it something that you have to sort of buy into like config and then you have to use the same flavor all the time?

Josh Cirre (31:14) Yeah, I don’t think that you definitely can. You definitely don’t have to combine or you don’t. You don’t have to keep it separate, so there’s there’s ways to combine. I think it’s not very popular like there’s not. There’s not many people who are doing it, mostly because inertia technically serves up a single pile, a single page application for you and then kind of pushes those props for you. So a lot of people maybe maybe they are doing.

Maxi Ferreira (31:18) Mm-hmm.

Okay.

Josh Cirre (31:37) kind of like server rendered live wire for the marketing side of page. But then in the same Laravel app, you’re pushing your routing to a inertia application from there. So like that, that’s, that’s probably the most common, common way of doing it. Within an application, you’re probably doing less of like the switching, but there’s even some great community packages for that too. There’s, there’s some community packages where you can serve up react or view components within.

Maxi Ferreira (31:58) Mm-hmm.

Josh Cirre (32:04) A Livewire component, for example.

Maxi Ferreira (32:08) So there

is a path to migrate from one flavor to another, like incrementally. It’s like, I’m going to migrate this route to Livewire.

Josh Cirre (32:16) Yeah, I think there is probably not like official, like an official first party, but there definitely is ways and people who have done it in that way. But it’s probably more the other side around of like people start with a server driven, not even any live wire. So you can technically write Laravel without, you know, that library could just write it as a classic server side or posting to a route and we’re going, you could do that. And most people kind of incrementally adopt either inertia or live wire from there.

Maxi Ferreira (32:44) Makes sense. So you told me about the starter kits, but I know that Laravel recently had a big week where you launched a bunch of new things, including Laravel Cloud. Can you tell me more about Cloud?

Josh Cirre (32:58) Yeah,

yeah, Laravel cloud is crazy because even before I joined the Laravel team, I as a JavaScript developer and as one who wasn’t like I never was. Hey, I’m going to spin up a VPC and host my node application on this. Like that wasn’t that wasn’t how I learned. I feel like I skipped that phase or I was just a little bit too like new for that phase. And so I was very much serverless. So like Gatsby hosted on Netlify and like there’s

Maxi Ferreira (33:20) Mm-hmm.

Josh Cirre (33:25) serverless functions that you could call within Firebase and or you know, next JS functions eventually like I forget when they released those, but it was it was some time ago. It feels like yesterday, but it was was they’ve been around for a little bit and so I I didn’t know anything outside of serverless and like to my detriment. I didn’t know how to easily host applications outside of serverless too because they make it so easy. You hook up your GitHub account.

You say I want this repo and it’s pretty much set for you. You might have to change a few tweak, a few settings and you’re good to go. And so when I got to Laravel, it was interesting because I didn’t really know how to host my app. tried. Laravel has a couple of options even before level cloud came out called Laravel forge and Laravel vapor. There have a forge basically gives you the ability to say, okay, I want to connect my digital ocean or Hetzer server. And then it kind of sets it up for you and you’re good to go. And even that like.

Maxi Ferreira (34:14) Mm-hmm.

Josh Cirre (34:16) I get it like it was easy to do, but like it was like, it’s gotta be simpler than this. So I eventually use Laravel vapor instead, which was basically the way to host it on AWS. And so it kind of does all of that set up and stuff for you, which felt more my way. But Laravel cloud basically came out of that need of, is there a way to host Laravel and get a project that you just pushed to get hub up somewhere running?

Maxi Ferreira (34:31) Mm-hmm.

Josh Cirre (34:43) within less than a minute. That was kind of Taylor Otwell’s grand vision when he kind of brought it to the team. And was one of the biggest impetuses for taking on funding, which Laravel had been completely bootstrapped up until early last year. And the fundraise was mostly to be able to kind of achieve that goal of Laravel Cloud. And so.

It’s basically everything I would have wanted personally if I wasn’t even on the Laravel team, because you log in, you connect your GitHub account, and you select your Laravel application in your GitHub repos, and then you’re basically given this page of saying, okay, now do you want a database attached to this? Do you want a cache attached this? Do you want a bucket attached to this?

I could get, of course, like an existing application probably takes a little bit longer, but like a new starter kit that I’m pushing to my GitHub repo probably takes around like less than a minute from installing it on my local device to pushing it to GitHub and and deploying it. So it’s it’s really crazy. It’s all managed by Laravel. So that’s like the biggest key differences. It’s not on your servers. It’s not on your, you know, AWS instance. It’s completely managed by Laravel. And it’s just kind of.

Maxi Ferreira (35:41) Nice.

Josh Cirre (35:54) all things that you don’t have to think about in the end of the day.

Maxi Ferreira (35:57) It looks, yeah, I’ve seen a few demos and it looks amazing. I’m definitely going to give it a try for this project that I’m working on. Yeah, so I’m excited.

Josh Cirre (36:05) Yeah,

yeah, the team did a great, great job. And like it’s cool to, for them to mostly, and like myself to be able to brag about it for them, but like it’s cool how they built it too, because I think it’s a testament to, okay, you know, the, the, one of the reasons why I think Laravel works great is like people are building in Laravel on the Laravel team every single day. And so there’s, there were so many additions to the framework to existing prop.

Maxi Ferreira (36:27) Mm-hmm.

Josh Cirre (36:32) products and applications and even just like, you know, to the things like the starter kits because of how they’ve built out things like cloud. So like cloud is built with Laravel inertia to which was something that had released at the previous last year’s Lercon US and and react. So like the benefits of all of those things are kind of clearly seen on the Laravel team. And so it’s easier to pass down to the.

Maxi Ferreira (36:49) Mm-hmm.

Right. Yeah. And there’s also a testament of how fast you can build with Laravel because if I remember correctly, when I first heard about Cloud, Taylor mentioned that the team built it in like six months. They had like a working version, which already looked fully functional. I’ll say, how on earth can people build this in six months?

Josh Cirre (37:09) Yeah. Yeah.

Yeah,

the crazy part is like we had to not record demo like a kind of like insider piece here. We had to like not record videos of it because it was changing so frequently. Like because, you know, the the the team there was right before Lercon EU, which was when they were kind of kind of announced the launch date with so early early February of this year. So they they are going to announce the launch date later that month.

but they had a hackathon, everyone, most of the cloud team was there, and within 48 hours, just some crazy amount of time, two or three days, the whole front end had changed drastically. So it looked completely different, and I hadn’t even seen it. I woke up over the weekend, and I was like, oh yeah, this is completely different application. So it’s just crazy how much, and I think it’s really cool to see such a small but growing team being able to push out.

Maxi Ferreira (37:56) Ha ha ha.

Ha

Josh Cirre (38:14) code like quickly like.

Maxi Ferreira (38:16) Yeah, absolutely. So switching gears a little bit to, I know you’re preparing a talk for Epic Web Dev this month. Next week is that? Yeah, next week. Wow.

Josh Cirre (38:27) Yeah, next week, next week. It’s pretty crazy. Yeah, I’ll

be I’ll be flying out probably like in seven days exactly. I think next week around this time.

Maxi Ferreira (38:33) Nice.

And I know that I’m interested by the title of your talk, is LDD or Learning Driven Development, which if I remember correctly, you had a podcast with that name, is that right? Yeah.

Josh Cirre (38:47) I did. Yeah, I had a

podcast with that name being able to the whole goal is being able to take a written articles. I did one of yours, I think, as the first one of the first, I think, first or second episodes. And basically just so much good stuff that I like. I like talking through what I’ve just read. And I was like, I might as well. I might as well like make a podcast of it if I have to talk through it with someone.

Maxi Ferreira (38:56) Yeah.

So tell me more about the LDD philosophy. How do you describe it?

Josh Cirre (39:15) Yeah, very similar to like how we kind of started off this conversation in the sense of like how how did my background start and a lot of it was I always had felt in like what most people feel not like tutorial hell type thing of like where you just feel like you’re never actually learning something like I probably pulled open the same like react tutorial maybe 20 30 times.

And it just never clicked with me. Like I would be, I would, I’ll be watching it and listening to it. And I just, if I was to sit in front of a blank code editor, I’m like, I don’t know where to start. Like how do I write a function? Like just super simple stuff. and the philosophy behind learning driven development that I’ve seen over the years is one, you have to learn how you learn specifically. and that’s different for everyone. I can’t tell you, okay, this is how you should do this.

Maxi Ferreira (39:51) Hahaha.

Josh Cirre (40:05) But like for me, I learned quickly that the way I learned best is by watching someone else do something and then figuring out how to do it myself without, sometimes even without documentation, I just like, wanna struggle to find an answer to something. Because I already kind of know, I’ve seen it done for me, now I just wanna do it for myself. And so the philosophy behind learning driven development and the baseline for this,

Maxi Ferreira (40:20) Mm-hmm.

Josh Cirre (40:32) lightning talk that I’ll be given that epic web confuses. What does it look like instead of trying to say I want to learn react or I want to learn Laravel or I want to learn Svelte instead being like I want to learn how to do this and then it’s so easy to to bring everything else along the way. Like for me, it’s the book market kind of application and I have learned so much.

Maxi Ferreira (40:53) Mm-hmm.

Josh Cirre (40:57) Like other frameworks, just because like I have this problem that I know here’s how I would solve it with X, Y or Z. But it makes it easy to kind of apply any other new thing that I’m that I’m learning. And so I usually tell people a lot, a lot of people, especially now that I’ve kind of been able to like put out more videos and stuff like that, a lot of people usually like, OK, like what’s the first, you know, project that I should do or like what’s like what’s the first thing I should build? And usually like I never.

given answer because I don’t think there’s one. I don’t think there’s a clear answer, but two, it’s not going to be something that you’re applying to it. And so usually the the thing that I want to convey is in order to learn as you develop in order to have in order to have this kind of I’m being a better developer and I’m learning along the way. It has to start with a problem that you are one passionate about and you’re going to come back to.

And then two is something that you can already apply in some ways of your current skills. So maybe that’s a, you know, a project that you’re that you happen to come out up against that work. And you’re like, I do this task takes 20 minutes. I’m going to figure out how to do it. In a different way, maybe like with with something new that I’m learning, or maybe it’s a project that your wife.

like it comes up to you and be like, hey, I don’t know how to do this. And you’re like, OK, I’m going to make an app in six hours and figure and then you can do it. But I think even in our first live stream that I did with you, that was like the the app that I had kind of built that I wanted to teach you is like it was kind of like a I want to send my wife a note every every morning and be able to say, OK,

Maxi Ferreira (42:35) Yeah.

Josh Cirre (42:40) Hey, I want to write it out and then schedule it to be sent every morning. And so it was a way for me to, teach me all these aspects of Laravel that I didn’t know too well. But it was also a way for me to like, hey, this is something that I know I have a problem with. So how am I going to learn those additional steps of how does a schedule work? How does a cron job work? And and having those additional pieces, I think is what really drives learning.

Maxi Ferreira (42:49) Mm-hmm.

Mm-hmm.

Right. Yeah, absolutely. I love that. I think it’s much more important now in the age of AI solving or sometimes skipping over these learning steps completely. I’m finding this myself as I’m trying to learn Laravel that is so easy and so tempting to say, hey, I want to do this. Can you do this? And the AI will comply, will do something.

but I will learn nothing from it. Okay, this works, but I did learn the underlying concept. So the next time I have to do this again, even if I have an AI available, maybe it implemented in a way that is not the most efficient one, or it doesn’t work in certain edge cases or whatever it is, but by skipping that step of not learning the underlying concept.

Josh Cirre (43:31) Yeah, yeah, that’s a good point.

Maxi Ferreira (43:53) behind or the classes that I will use or whatever it is that you’re learning, yeah, you’re not doing yourself a favor. So I love this idea of like a project-driven learning technique and how then you can reuse those learnings in different problems, I guess.

Josh Cirre (44:10) Yeah, the AI piece is a huge one. One that I want to I want to make sure I touch on. I only have five minutes for the talk. I wrote some notes that I wanted to make sure that I talked on it because it is one of those things where I think I personally use a lot of AI. I think it’s a great tool and I work a lot faster with it. But if I’m learning something, it’s very it’s very tough to do it. So usually like my practical, I guess, advice for a lot of people and what I’ll try to convey during the talk is like.

Maxi Ferreira (44:16) Hahaha

Mm-hmm.

Josh Cirre (44:38) If you’re if you’re ever learning something like using AI less as like your vibe coder and more of like your rubber ducky is like super helpful for me or like I’ll just like open up like a clawed page and be when I was learning like the the tan stack I was like, here’s all this documentation Like I would like copy and paste it. I was like, what does it actually mean? Like I I was trying a hard time wrapping my brain around the specific concept But being able to like talk that through and like try to understand

Maxi Ferreira (44:47) Mm-hmm.

Josh Cirre (45:06) And I think it’s really also helpful within AI if you’re doing a here’s how I would do this within next JS. How would I do this within level? Because I think combining those two worlds usually is like the perfect place for learning. Because then, know, OK, here’s what I would normally do. And here’s the mindset I have to kind of like wrap my head around that.

Maxi Ferreira (45:25) Right. Yeah, exactly. Yeah, no, think it’s definitely useful when you’re asking questions. Like, I was asking it, what’s the best way to do this in Laravel? And it created a service. And I said, oh, I learned the concept of services and how they’re useful. And that helped me understand things. But yeah, the understanding portion is the one that it’s tricky. And it’s easy to skip over, but it’s very, important.

Josh Cirre (45:54) Exactly.

Maxi Ferreira (45:56) Josh, before I let you go, I’d to do picks for the audience, like anything you want to share with the audience. This could be books, movies, TV shows, anything you want to share. Do you have any picks?

Josh Cirre (46:08) Yeah, I have a I have one pick and this is probably like a like a year too late, but it’s fresh on my mind. So like last week I was coming back from or last week and I was at Larikant India. So this is a long flight for me and I the Wi-Fi wasn’t working very well, so I didn’t do anything except like watch the whatever they had on like movies and TV shows on thing. And I didn’t.

Maxi Ferreira (46:30) Ha

Josh Cirre (46:31) have HBO Max, like that’s not a subscription I pay for. So I had never watched The Penguin, an HBO show. So like set in like the DC universe, Colin Farrell is the Penguin as an actor. I never watched it. I heard good things about it, but I never watched it. I just didn’t buy it or didn’t have the time to stream it or whatever. But I watched I binge the whole season on the two flights.

Maxi Ferreira (46:38) Okay.

Josh Cirre (46:54) One to India and one back from India and it was so so good like I would like I almost like want to watch it again Like it was so good. It’s like that’s my that’s my pick if you by some chance haven’t and I know I’m a year late to this it was this I think it came out like a year ago and you like kind of like the Superhero DC Universe type feel it’s not it’s very much. Not like a superhero show. It’s more of like a crime mafia type show

Maxi Ferreira (46:56) Bah.

Yeah.

Mm-hmm.

Okay.

Josh Cirre (47:20) really interesting and just so good acting and casting so good.

Maxi Ferreira (47:24) Nice,

nice. I will check it out. Yeah, I haven’t watched it yet and I do have a max subscription at least for the next few months. Yeah, so I definitely gonna watch it. Definitely gonna watch it because I forgot that it was there. I remember when it came out that they didn’t have the subscription and say, this looks interesting. And now I do. So yeah, thank you for reminding me. Awesome, awesome. My pick is a book. I have a-

Josh Cirre (47:31) Okay. There you go.

Yeah. yeah, of course. It was so good.

Maxi Ferreira (47:52) have a book this week. This is a book that a lot of people on my Twitter feed are reading. This is AI Engineering by Chief Hawi. She wrote a fantastic book on everything that you need to know to work with AI. This is perfect for people who have been like myself, sort of out of the loop for the last couple of years, not really keeping up with all the things that be happening.

Josh Cirre (48:12) Yeah.

Maxi Ferreira (48:16) And this is like a perfect, perfect, it’s a long book. It’s a pretty long book, but it’s a great introduction. It dives deep into how the models work. If you want to do some sort of like prompt engineering or anything like that, has great tips. So I’m really enjoying these books and highly, highly recommend.

Josh Cirre (48:33) Awesome. I’ll have to pick it up.

Maxi Ferreira (48:34) Yeah. All right. Josh, thank you so much again for joining me in the podcast. Where can people find you online?

Josh Cirre (48:42) Yeah, yeah, thanks so much for having me Max. I really appreciate it. You can find me online, mostly on Twitter and YouTube is probably like the best place to find me. That’s Josh Cirre, J-O-S-H-C-I-R-R-E. Or if you go to cir.re, that is where like kind of my list of links are as well. I am on Blue Sky and LinkedIn. I don’t post on that as much. So like if you use Twitter slash X or, or.

are keen to follow me on you can find me there.

Maxi Ferreira (49:11) Awesome. We’ll leave links to all of the places. By the way, you have the coolest domain name. It’s it’s five characters in total.

Josh Cirre (49:19) Five

characters, I got really lucky on that. I had to go through this website called gandhi.net. So it was a lot sketchier. They did a redesign and it doesn’t look as sketchy. So I think I’m safe. But I’ve had the domain now for probably like two and a half, three years. And it’s so nice for like quick links. So like if you go to cir.re slash yt or slash x, like that’s my Twitter slash x profile. So it’s like, it’s cool.

Maxi Ferreira (49:30) haha

very cool. So

cool, so cool. All right, Josh, was a pleasure to have you here. Thanks for joining me. All right.

Josh Cirre (49:48) Thanks again Maxi, it was a pleasure.

But wait, there's more!

Join 5,000+ developers getting the latest insights from the world of software design and architecture—tailored specifically to frontend engineers. Delivered right to your inbox every two weeks.

    🌶️ tip: unsubscribe at any time.