Caleb Porzio

Guest Caleb Porzio

I've been building Laravel apps for the last five years and Vue apps for the past three. During that time, I've contributed to the Laravel framework, written a number of community blog posts, and spoken at Laracon.

https://calebporzio.com/

Season 05 Episode 11 – May 31, 2022  
35:16  Show Notes

AlpineJS with Caleb Porzio: Lightweight javascript in your markup.

0:00
0:00

Learn all about AlpineJS from it's Creator Caleb Porzio. We also discuss how accessibility is baked into the new Alpine Components.

Show Notes

  • What is AlpineJs
  • The origin of the name Alpine
  • Caleb's background and history
  • Online courses
  • Alpine Day conference
  • Tailwind and Alpine - a perfect pair
  • Alpine in your HTML markup
  • Alpine components
  • Accessiblity
  • The future of Alpine

Show Links

Accuracy of transcript is dependant on AI technology.

Hello and welcome to another episode of Website 101 Podcast. We are the podcast for novice web developers and small business owners who want to learn more about running and optimizing their websites.

This is Season 5, Episode 11. I am Amanda Lutz. Hello, how are you all? Joining me, as always, is Mike Miller, covering for Sean Smith, and Sean Smith covering for Mike Miller. Oh, that's great.

I just wanted to make that up. I like it. That's good. Joining us today, we have Caleb Porzio, who is the Alpine guy. Hey, Caleb, how are you doing? Great. How are you guys? Good, good. Welcome to the show.

Don't forget to subscribe to me. So Alpine, we're talking about Alpine the JavaScript framework. Yes, the JavaScript framework. Yes. We always have debates about what's a framework and what's not on this show.

I don't know. I call it a framework. Yep. I don't know what it is. I think it's a framework. So Caleb, unlike Sean and Mike who have a lot of experience with Alpine, I have zero. So can you give me like the 30 second elevator pitch?

Yeah. Well, I'll first, I'll give you the tailwind version. Are you familiar with tailwind? Yes. I know of it. Yes. As a CSS framework. Okay. Alpine is sort of the tailwind for JavaScript. That's the easiest pitch to give.

But without giving that pitch, without saying the words tail end, I'll say, it's like a little JavaScript Swiss Army knife. It's not meant to take over your whole front end or manage your whole front end.

It's like jQuery, I guess the other tag liney pitches. It's like a modern jQuery. It's something that you can have in your back pocket and create lots of little widgets and doodads, make things move, make things change on your page, without all the complexity and

tooling of modern JavaScript frameworks. So it's much smaller API surface area, smaller, smaller in every way in the build size. So it's just this small little thing that you learn the basics of and then you can use

it to make your websites do stuff. Cool. Excellent. I have a slightly off topic question for you. Sure. How did you choose the name Alpine? Does it have any special meaning other than mountaineering or anything?

Yeah. So I do a bit of mountaineering, you might call it. I don't know, in the Adirondacks around here. And so that is sort of something that I do. And it was sort of inspired by that. But I didn't name it first. I just called it Project X. Because I knew what I wanted the

project to be. right away but you know how you get stalled out on a name you spend the first whatever just like trying to think of a name so i thought i'm not gonna do that this time i'm just gonna

give it a generic name so it's project x for a while i love i love that you're not gonna do it this time this time all done it before and we're all gonna do it again wait for the other time so it's project x for like way too long

it already had like traction and became a thing while it was still project x and then i my first name like internally was i wanted to because it's all minimalistic that's kind of the idea behind it so i wanted it to be some kind

of zen something i think with a bunch of that stuff um but whatever i oh this is what happened actually i went on wikipedia and looked for car names like and i just looked at a list of every car make and model in existence

and you can tell i didn't get that far into the list before i went aha and i was like that's it alpine um which is perfect because i do love like you know when you're up at like a mountaintop all the vegetation is really small

and because it's all like weather proof it can handle like super strong winds and it's so quiet up there it's like there's it's weird your your brain doesn't know how to process it it's like total silence

tiny little trees and i don't know and it just felt like that's what i want the framework to be this small pure thing this is so meta i know you asked so i love this i had no idea that was so much meaning

that's where the name came from yeah i like it so okay Before we get too deep into Alpine itself, could you just briefly tell us your own origin story? I know you just recently at the time of this recording came back from Léricon where I

assume you were speaking. Were you speaking in Léricon? Yeah. So as a developer, what's your sort of history briefly? Yeah. I mean, I was always like a computer kid, you know, and stuff like that and was in a programming

for like a long time, but stuff like, you know, the TI-83, like you guys ever get into that programming on those graphing calculators? Anyway, that was my introduction to programming. But eventually started making like websites for friends and family and stuff and found

myself in the PHP world. Because at the time, like that was like the popular thing to do was get into the lamp stack, like PHP on the back end, MySQL, Apache, whatever, and like jQuery on the front end if you even

needed it, like bootstrap mostly. So anyway, that was where I landed in web development because I don't know, I think like people listening to this podcast, like the stuff that's popular right now, you're

probably going to go for and get into you, get a job and it like defines the rest of your career, but you don't even realize it. You're just getting into something, but you're really getting, I don't know, I guess what

I'm saying is it's kind of meaningful where you start, but you have like less control over where you start than you think maybe, I don't know, whatever. So got into the PHP stuff and worked my way through different frameworks and then Laravel

is what I landed on as far as a PHP framework and it sort of sold itself as the framework for web artisans and I was like, that's what I want to be. like, I want that. I think code is beautiful. I want to make my code beautiful.

So I kind of fell in love with that. And then just, that's really kind of where I found a real niche, a real community, started going to conferences, started writing blog posts and working at agencies in the space and all that stuff,

kind of building up a little bit of a career of experience, different projects and companies and whatever. And then I kind of always knew I wanted, I always wanted an independent life, like I didn't want to work for someone else.

And I loved open source and I made a few packages and whatnot. So one day I quit my job and just was going to quit and just go on a sabbatical and just program for fun. And really soon into that, I made this tool called LiveWear,

which is the other half of me that it's a layer of L tool. So it's not like when I usually talk about Alpine, I'm not always talking about LiveWear, but that's kind of how this all started, a back-endy front-endy framework,

very much like Hotwire, whatever. We don't have to drop names about all the other frameworks that are like it, but that framework birthed Alpine. I had basically written Alpine for it and I just saw this need of like,

hey, my framework could use this. I bet a bunch of other frameworks could use this. This is useful for so many things. So I built Alpine and by that point, I was full-time open source and I am now to this day.

So I just work on open source stuff all day for fun and it's great and that's my life. So you said you created LiveWear, is that true? Yes. Okay, off topic. three sentence elevator pitch. What is Live Warrior?

I don't know. I'm not a PHP guy. Yeah, yeah. Live Warrior is in this fan. Actually, GitHub Readme project just did a really big post on the renaissance of backend frameworks or these kind of full stack frameworks.

It's a full stack framework. So if anybody listening, you guys are familiar with backend frameworks like Ruby on Rails, Laravelle for PHP, Django for Python, Express for Node, all these backend frameworks, there's a whatever, Live Warrior

is a tool for Laravelle in this case that allows you to mix the front end and the back end. So you can basically have a button that you can set up to click and run a backend function without dealing with Ajax or anything.

You could literally have a backend variable called count and have it rendered on your front end in a template count and then a button called increment that calls a backend method that increments count

and then everything reacts. So it's almost like using view or react, but you have access to the backend and your backend code. So yeah. Interesting. Yeah, Phoenix Live View kind of birthed this family of tools.

Live Warrior was like number two in that run, but.NET has their own like, blazer stuff and whatever. It's like a kind of a movement. A lot of these ecosystems have these tools now. So yeah, cool.

So would you say that, you know, we talked about Alpine, you're the Alpine guy and what not. Is Alpine your main jam these days? No, it's basically been even 50-50 split, Live Boyer and Alpine for quite a while.

And in many ways Live Boyer is like a stronger community because it's so much deeper where Alpine, it's not that deep of a tool. It's like, that's kind of the beauty of it. You don't, it doesn't consume your whole life.

I don't think a lot of people identify as Alpine developers. The same way you don't identify as being a tailwind developer, you know, you identify as being like a view developer, a react developer or something.

And then you use tailwind. It's the same thing with Alpine where Live Boyer you might identify a little bit more, like a Live Boyer, I don't know, whatever. Yeah, I will say that, so we'll probably get into this, but Amanda is a real JavaScript

pro, but I and Sean are, you know, not great. We came from the jQuery world. Oh, cool. Yeah. Well, the Alpine speaks right to you. Yeah. That's what I was going to say is that Alpine is so comfortable for me to use because I

don't know as much about JavaScript as I'd like to. Yeah. You're still working on, but it's very, very intuitive to use, I find. Cool. Yeah. I first heard about Alpine early days, and I was like, I've been trying to get off of

jQuery forever. Yeah. And I was like, Alpine is exactly what I need. Yeah. Because it was, it was light, lighter than jQuery and simple. And the, the docs were okay, but I think they've improved a lot since then when you,

did your recent release. When you started, was it just a GitHub read me? Yeah. Was that the documentation? Yeah. And so it was difficult as a non, as somebody who's not super proficient at, at JavaScript,

but now, especially when you release the new docs and components, so much better. I love it. It's really easy to use for me. Cool. It's great to hear. Yeah. So would you say then that Alpine for someone who is sort of just getting into the web and learning JavaScript and stuff?

I mean, I think I know the answer here, but would you say Alpine, you should learn Alpine. Forget about learning how JavaScript works. Learn Alpine. Like before even learning how JavaScript works, I would say, yeah.

I mean, yeah, I mean, that's kind of, it's meant to be like the easiest thing. I mean, I'm not just saying this, but I think it's the easiest framework to use and to learn. I do. It at least is for me.

I mean, maybe jQuery would be easier, but it's pretty hard to beat the simplicity of Alpine and the ease of installation and getting up and running and whatnot. My brother is actually getting into programming from a lifetime of like hard labor.

He's just barely touched a computer and he's totally just flipping into programming. And so he's going through a bootcamp and they're doing Vue.js as the front end framework. He's just totally overloaded.

with like build step and you know everything. He's got to learn all of that stuff, which is funny because I'm a big view fan. I was a view developer for years and whatever. I'm just like, dude, once you try Alpine,

you're gonna flip. You're gonna be like, it can be this easy, no way. So yeah, if I do say so myself, I think it's a great place to start. Yeah. And I guess one nice thing about it is you use Alpine

and you can use its own APIs and they're very simple and you don't have to be, you don't have to know much JavaScript at all, but you could probably get pretty far with just the docs. But each Alpine expression is purely JavaScript.

So the more you ramp up your JavaScript foo, the more powerful Alpine becomes. And that's something I really like about it also. It's like my hands aren't tied as having written Alpine, I've become a much better JavaScript developer.

So it's nice that like, I don't feel like my hands are tied and I'm working with like a little toy or like blocks. It's like I actually feel like I'm using something that takes away all the things I don't wanna do

and gives me little places to just run wild. Yeah, I want one of the things that I really like is like if you're opening up a model you know you have your button and it's like open files open or Anyways, you click the button you can add a function after it. So I have created this function. That's like

Toggle overflow so that you can't scroll the page anymore nice in the background and It's so simple right you could say like open Equals true and then add a semicolon and do something else, you know because it's just that's what I was trying to say

It's just JavaScript. Yeah The one thing I will say though injection the your toggle overflow you can scrap that because there's a plug And I don't know if you've seen it the focus plug-in So basically there's yeah, there's X trap

It's a new directive that makes modals all the hard parts about modals that are the worst and nobody builds them right because nobody Wants to build them this way where you trap focus within a div, you know and don't let focus go without you disable scroll

You add the type or like aria hidden attributes to every other element on the page except the modal Like these are things nobody does but the aria like standards tell you you have to do this if you are to make a dialogue

It's all taking care of with X trap one simple directive You just add it and it does all the things that you need to do and you're talking about in like five characters You know so check it out sales pitch

So you just you just add X trap and that's it and it does everything for you. Yeah, so if well if open is your state You know that toggles it like you would say X trap equals open Because it would enable the trapping and then disable the trapping if open is false

And then you can tag on like dot no scroll because sometimes you want no scrolling and sometimes you don't. So you'd say dot no scroll dot inert, you know, add on extra. You just like, it's like you're shopping.

You're just like, I want that. So dot notation to add other stuff to add extra stuff. Yeah. I will say sometimes when I'm looking to figure out how to do something in Alpine, sometimes the odd person will say, you know, you can include normal JavaScript.

Just write JavaScript at the end of it. Like my whole reason for using it sometimes is well, I really know how to do that. Yep. That's not helpful. Right. Yeah, it's a delicate balance. It's an interesting thing where different.

I think a lot of people use it differently. Like, and I think it's important. It's the tricky part, I guess, is the framework maintainer is like, how do you create an experience that is conducive for learners and that you don't get inundated with all those advice

right away? Then it has all those ways to grow later on, you know, put on the learner's hat. That's the hard part. Hey, this is Mike here and we're currently looking for topic and or guest suggestions.

So if there's anything you'd like us to talk about or anyone you'd like us to talk to, please reach out website 101podcast.com slash contact. So besides checking out the alpine.js website and official documentation and stuff, do you

know if there's any like online courses or any other types of resources that are available to people like me who would be new to alpine? Yeah, there are. So team code courses, the platform, they have a whole alpine course.

I'm pretty sure layer casts is a it's actually not I mean, it kind of sells itself or it's in the name Laravel. It's like a Laravel training platform. But I think it's one of the best training platforms on the internet for just development

in general. And they cover everything view react like there's a lot of front end stuff. And there's there is an alpine course. I think he did a full alpine course on there. I actually did a course on there a while ago called building alpine from scratch, the old

the old alpine version. And it was really fun. Like let's build a JavaScript framework from scratch and show you demystify a little bit. So that's a fun bit. But yeah, there's other platforms that I'm not thinking of.

There's a alpine weekly newsletter that always posts when new stuff comes out. Yeah. So that's that's all at the top of my head. Yeah. And it's getting more more popular every day. So I'm sure the people are generating all kinds of stuff.

days. Shruti Balasa, she's like a kind of an up-and-coming tailwind person. Yes, she spoke at the conference. Yeah, she just spoke at, right, she spoke at the Alpine Day Conference and she spoke at Lyrka. And so she does a lot of

tailwind stuff, but she also kind of picked up Alpine as something she teaches as well. Yeah, so check out her stuff. So besides creating this awesome framework library, you also have a, you just made up a conference to go with it?

Yeah, actually, I... That's kind of badass. I like that. Thanks. Yeah. Yeah. You need to learn to be more ambitious, Caleb. This is ridiculous. You really slouch. Yeah. Way too mellow. I wanted to drop. I wanted to like build hype around the, I rewrote the

whole framework. It's a full-from-scratch rewrite. It was like, we, I learned a ton along the way and that, you know, this, it's Alpine version 3 currently, but it's really Alpine version 2. Version 1 lasted like a week. I just needed to make one

breaking change, so like wasn't even a thing. So really it was like old Alpine and new Alpine. And it was a big shift. I spent like six or seven months at least writing it. I wrote it and then I trashed and I rewrote it, so whatever. This thing I

kind of went dark for and I wanted, I wanted a platform to like, yeah, I'm with Laravel. Like this is one of the strong points of the Laravel community. There's these kind of like Apple keynote, there's an Apple keynote-esque hype atmosphere thing

that happens like every layer con, when Taylor gets on stage and releases like some awesome new feature or something. So I wanted to bring that to the community. And, you know, I don't know, conferences are so important.

They're just so important and for people. They are huge for, they're like everything to my career. Like once I went to a conference, then I was like, do you meet people? I didn't even know that people were on Twitter

until I went to a conference and everybody's like, oh, follow me on Twitter. And that changed everything. So I wanted to take a part in that. I love conferences, it's been to many. Would you ever, or do you ever plan on making the Alpine Day

an in-person conference rather than online only? It's really tough. That would be fun because, yeah, it's, I mean, there's so much to love about in-person conferences and it's night and day. But, you know, the trade-off is that you restrict,

you know, who can come so much. And you can live stream the in-person stuff, but I would say, you know, I haven't thought about it much, but after talking about it right now with you, that's a new goal of mine.

I would love that. You heard it here first. I like it. Inspiration from the website 101 podcast. I would love to host an in-person conference. Yeah, that'd be awesome. Cool, you should do that in Toronto.

Toronto, okay. Yeah, all three of us will be there. Oh, you're all in Toronto? I live in Buffalo. I'm in Florida right now, but I live in Buffalo. And so it's like, oh, you're literally just across the lake

from us. It's like two hours away, hour and a half or some stupid low amount. Two hours to an a bit, maybe three hours with border cross. Yeah, it depends how that goes. So I'm just Guides for Michaels.

So you mentioned Tailwind earlier. We had Adam Watherne on the show recently to talk about Tailwind. A lot of people seem to be using Alpine almost in conjunction with Tailwind. Like they're meant to go together.

They're like, Peter Butter and Jam. And Peter Butter kind of thing. Jam, I said, Peter Butter and Joplin makes more sense to me. Sorry. I guess Jam, sure. That's fine. If you're six years old,

Peter Butter and Jam. Peter Butter and Joplin is the sophisticated. That's right. Yeah, that's right. Or professional version. Anyway, I too use Alpine with Tailwind. Sean does as well. I mean, do you use a lot of Tailwind stuff in your work?

Do you feel like this is a really good direction to head in? Yeah. I mean, exclusively. Everything I do is Tailwind and Alpine. It's a, so I'm big in a Tailwind. Adam is, he's actually the first conference I ever went to,

Adam spoke at. And, well, that was before Tailwind, whatever. Anyway, I have a bit of a history with Adam and Tailwind. And the commute, like Adam was a Laravel developer just like me. We worked at the same agency.

So we kind of like came, went up on like similar paths. And so he, you know, was creating Tailwind. I was following everything he was doing. And, you know, on the tailwind kind of started on these live streams

where he was like building a different SaaS app, but everybody was like, we don't care about that. We care about what you're doing with your CSS. Like we want that. Oh yeah. And I remember like people would just be like,

you should really package that up. Like you should really turn that into a framework. And he's like, yeah, okay, maybe whatever. And then you did and it's tailing. And so anyway, so I've been using tailing

since the beginning and yeah, the ethos of tailing is like, I mean, tailing taught me a lot about stuff. Like I mean, I used utility frameworks before and I was like, I don't know about this. This is, you know, tacky on, stuff like that.

I was like, I don't think this is very good. I don't like this. And then tailing, you know, that's kind of the thing. They like forced you to like it and then you love it. Yeah, you know, they're like, hey, I know you hate this

but try it, you'll love it and then you do. Going back to what Mike said, people use tailwind and alpine together a lot. What is it about the two that goes together so well in your opinion? Why do people who like tailwind like alpine and vice versa people who like alpine like tailwind?

Yeah, I mean, I guess they kind of follow the same pattern of being directly in markup. So like where tailwind, your styling is co-located with your markup, you're not maintaining a separate CSS file that correlates to your HTML file

and having to deal with that mapping. You know, there's like that big gap there and that's a whole world of overhead where it's like, wait, if we just put it right in the markup, it's going to look like hell,

but it's going to actually result in all sorts of benefits. And so it's the same kind of idea with JavaScript. It's like, well, what if you could just, because I was using view as my framework of choice,

and I started to kind of like really push the inline script stuff like, you know, like an X or a view, like VON click or at click or whatever. And I started like, you know what, instead of making a separate method in my view component

and just referencing the name there, I'm just going to put those stuff right in there. And I started leaning heavier and heavier on that as just a principle. And that's some part of the spark that started alpine.

So yeah, it's a lot of the same ethos of like if you put your, what if you put, not only your styling co-located right with your markup, what if you put all the behavior? And then of course the question of like, well, you're just copying everything all over the place.

You're duplicating all sorts of stuff. What about dry, you know, that kind of thing. And then the answer is the same answer tailwind gives, which is like, use something else to abstract this, you know, for alpine it would be, you know, there actually are abstraction stories in alpine directly,

but for the most part people are using them. I'd say about half the people are using them on landing pages and things where you don't really care if you're copying something a bunch of times. Then the other half are using it in like a framework like Rails layer of L

where you already have back end abstractions and can easily make a button component or something. Yeah, I know my entire career I was like really obsessed with like semantics and stuff. Sure. I'm going to call a thing button red because what if you redesign the site in six months

and all of a sudden it's blue and you're going to have to redo all the, and then I don't think ever, in my, I've been doing this 22 years, I've never redesigned the site and not touched the markup and had that issue.

And then I sort of realized, Who cares if like there's a there's drawbacks to everything you know and it's a question of do the to the benefits outweigh the drawbacks and they do things like tailwind and alpine I find that they do yeah

It's like the benefits make it very much worthwhile in my opinion totally It's the speed of development for me that that makes it so much faster Yep being able to just you know hack it out right there not have to I don't know yeah, but to your point

I think that's a big part of the culture of tailwind and alpine is sort of this Yeah, like kind of goes against best practices in a lot of ways Like the CSS Zen garden you remember that like yeah Yeah, so like well further further the newcomer maybe the CSS Zen garden is this like project where or you know

It maybe is much more than that you could tell me but it's at least a website you can go to where the markup is the same But there's a bunch of different versions of the site based on different CSS style sheets

included to show the power of CSS. And if you structure your markup properly, you can do anything with it. Which is very cool. But that whole culture of like, I went through that myself and through all the different

CSS best practices and waves, BEM, that was probably what I did for most of my career. So many things like that. But yeah, a lot of them have this, they're built around this promise that you're gonna

rewrite it someday or you're gonna do some big refactor and this is gonna save you. And the reality is, you're probably not. And even if you do, it's still not gonna save you. So what if you just kind of take that benefit off the table and cash in on the value of

being able to just throw it all right in there, you know? You're just better off. In practice, I would say. Yeah. Yeah. Yeah. So you recently released Alpine components. Yeah. Tell us about that.

Just last week or two weeks ago? Yes. Yeah. So it's kind of a prerelease. It's sort of half done, although I think there's plenty there. Um, but yes, that was last week. Right. Yep. Last week I did it.

I purchased it. Oh, did you? Thank you, Sean. Yes, I did. That's great. Thanks a lot. I purchased it. Like as soon as I sat down on my desk and saw the email that was there. Nice. So that means a lot.

Thanks. Um, that's how these projects get made like that. You know, that's my sole income is, is that for Alpine and Live where I have a video course. So, um, so it's, yeah, helps a lot. Funds the thing.

Um, yeah. So Alpine components is kind of birthed out of, uh, Alpines great and all, but what if you need, you know, like the things that you kind of would expect a browser to give you. Like, I think if you're a new developer, you might just assume, I think this is actually something that a lot of people assume, especially.

And I actually, I don't know a lot about mobile development. I kind of assume they have these things and we don't like basic ways to make a drop down, basic ways to make a modal dialogue. An accordion, um, a carousel.

I don't know. All of those things, a tab list, those are kind of primitive UI things that you might expect a browser to have. Like, isn't there a drop down tag that I can just use? And the answer is, of course, no.

And more than that, Alpine makes building something like that easy, functionally. Like, if you wanted to make a tab group or something, that's so easy or a drop down. It's like the easiest thing you could do in Alpine is make a drop down.

But, unfortunately, there's all of these extra concerns that you need to have accessibility standards, basically, making it work with a keyboard, making it work across browsers, giving it all the proper RE attributes and roles and all that.

Where like from my bootstrap days, if I wanted to modal, I went to the bootstrap docs, I'm sure anybody who was in the bootstrap knows exactly what I'm talking about. You copy that big chunk because you're not gonna attempt it

on your own because there's too many role attributes and RE attributes in there for you to feel confident that you're capable. So you copy that whole chunk and paste it in. So basically, this is what Alpine components is.

It's like accessibility feels like a dark art and a moving target and it's like, I can never be a developer who can truly make the per, you know, an accessible proper modal or dialogue. So Alpine components is a product where

you pay and you get all that stuff. So I did the work, I went through and I, I, you know, put my like, accessibility hat on and proper everything hat on and build what I believe are like really good primitive UI components,

tabs, accordions, carousel modal, dialogue, notifications, tool tips, all that stuff that every app needs and put it out there for you to take home and along with it, screencasts with each component.

So you can watch me. Yeah, I was just gonna talk about that. I watched one of the screencasts. It's so educational. I learned a lot just watching it. Yeah. And I gotta say, the tool tips should have come out

two days earlier. Or the component should have come out two days earlier because I built my own tool tip before the components came out. Oh, that's so fun. So, but it was just coincidence. Right.

Well, I mean, that's, this is like, I am not a marketer and it is very obvious, especially in this case because I don't know how to market it. I mean, I'm sure I could market it better, but I consider almost a failure that,

I don't think people know who weren't on that email list that like, if you go through all those screencasts of all those components, you will be an Alpine master. Like you'll be an Alpine master and you'll be like,

you'll be so much better at JavaScript and browser standards and all this stuff. And they're pretty short. So it's like a master class in Alpine, but it's not necessarily even sold as that. So I think, I think it's the kind of thing

where people just need the components. They check out a screencast and they go, oh, this is like a deep wealth of alpine knowledge, you know? Seriously Caleb, the teaching style that you did in there,

I know it was more like a walkthrough, but it felt like you were actually teaching. You would make an excellent full course teacher. I definitely pay lots of money to watch you teach me something.

Cool, I appreciate that. I do actually have like a live lawyer, I do like a huge full screencast course. And I have like- I have other courses and stuff like that. So I kind of do do that, but yes, that's flattering.

Thank you. Yeah. Yeah, the documentation for Alpine is fantastic now, especially the videos. It's great. Nice. Yeah. So I'm wondering, you've recently done the Alpine day and you've recently dropped these

components. Like, where do you see Alpine heading? Like, what's next? Right. So a great question. I think my hope. Or, or, or you like, I've done enough for now. Get off my back. No, not at all.

Never. No, yeah, very, have lots of ambitions for a lot of these things. And I hope they get realized someday. Alpine, I think, I don't know. And I think this is already happening, but I want, I could be, honestly, before I got

on this call even, I don't know why I was thinking about it, but I was like, there should be a place in the Alpine docks of like, how to use Alpine in Rails, how to use Alpine in Laramie. You know, just click on the framework that you use and get a guide of, you know, tailwind

has that, I think. And even though, whatever. So my hope is that it becomes the front end solution of choice for back end frameworks, like Rails, Laravel, Django. So full stop there, I, in Laravel, it's sort of taken off as that.

And I want that to happen in other communities. It happened in Laravel because I'm in Laravel and I speak at the conferences about it and it's kind of born out of there. The same way all of Laravel is on tailwind because Adam's like our homeboy, you know?

So like, I would want that to happen with other communities and that's a function of getting on talk on whatever, podcasts like this, doing conference talks at their conferences. And then also, I think, you know, like it, again, I think it's kind of placed well.

I just wanted to grow in those places because it's already used in a bunch of CMSs. That's another great place for Alpine WordPress, Statomic, Craft CMS, like all of these CMSs, Ghost CMS, Ghost has a new template that uses Alpine.

So all of these CMSs, Alpines, a great fit for and just straight up, just one off landing pages. That stuff's great for Alpine too. So I want all the places where Alpine's great. I want it to be really popular, of course.

And I think it's on that trajectory, but I'm not headed for world domination. There's so many things where view and next JS and react and those solutions are like, that's, that's a full on solution and you should go do that and you should not use Alpine because

that would be, you know, silly. So the corner of the world that Alpine's really good for, I want to dominate the rest. I'll leave alone. You know, that's that. the right tool for the right job. Exactly, yeah.

All right. Caleb, we talked a little bit about, you know, all the things you do. Where would you want to send people to learn more about your various projects? Yeah, best place to follow anything I do is Twitter.

So follow me, Twitter, Caleb Porzio is my handle. And that's, yeah, all the other places I'm more inconsistent. If you wanna know what's really up, follow me on Twitter. That's what you should do.

Got it. That's easy. Thank you so much. This was really good. Thank you, Caleb. Thank you, guys. Hey, thanks for listening today. This is Mike Mela. You can find me online at belikewater.ca or on socials at Mike Mela.

Hosted in part today by me, Sean Smith. You can find me at my website, caffeinecraations.ca or on LinkedIn at caffeinecraations. One third of the website 101 podcast talent is provided by me, Amanda Lutz.

You can find me online at my website, amandalutes.com. I also hang out on Twitter sometimes. You can find me at Amanda LutzTO.

Have a question for Sean, Mike, and Amanda? Send us an email.