Jake Bennett and Michael Dyrynda conquer a 14.5 hour time difference to talk about life as web developers
-Hey, I'm Michael Dyrynda.
-And I'm Jake Bennett.
-And I'm JMac.
-And welcome to episode 194 of the North
Meet South Web Podcast. [upbeat music] Ah,
this is what happens when we don't plan.
Yep, 194 is the episode number. We've got
our good friend, Mr. Jason McCreary, JMac,
with us on the air. JMac, tell the people
hi.
-Hello.
-Welcome. Nice to have you here.
Yay, there we go. Yeah, so we've been
trying to get Jason, Jason on the show for
a couple weeks. Um, we talk about Jason,
I feel like, on a pretty regular basis.
-I-
-Michael, would you agree? I feel like
JMac's name is said at least every other
podcast.
-Yeah. Well-
-So...
Every other podcast, every other, like,
we, between this podcast and the, and the
Laravel News one, he gets a, he gets
a lot of airtime, I think.
I appreciate it. Well, I'm, I'm glad to
actually be on air. Sorry, I'm old now.
-[laughs]
-I, I can't stay up much past 10:00
-anymore.
-I know. You messaged me last week, and
-you're like, "So can we-
-No worries
... can we record?" I said, "We've been
trying to organize this for about six
weeks now, and you've always been the one
to bail." But you've had good reason for
-it, between, you know-
-Yeah
-... young kids that don't sleep-
-You know, I-
-... and sickness and-
-I apologize
-Yeah, sickness
-... that's all right.
Yeah, I think I was, I think the first
night the lines got crossed, and then I
think the second time, yeah, it was just,
like, we were getting some of the daycare
-crud.
-Mm-hmm.
Yeah.
That's how it is, you know. You get the
kids, and then everybody bring, they bring
home all their fun sicknesses, and we get
to enjoy the, uh, benefits of stronger
-immune systems, I suppose. I don't know.
-The climb.
-That's the-
-That's the climb
... that's the only way to spin that one
that I can f- yep, exactly.
-Yeah.
-Silver lining, if you will.
-Excellent.
-Uh, well, the astute observer will notice
that I am actually not in my typical
location. Uh, as Andy Hinkle would say,
the f- the, uh, infamous, uh, what is it?
What do they call that? Like, the white
-slat-
-Shiplap?
... walls. What's that called? I'm losing
my mind.
Shiplap. He's like, "The infamous shiplap
wall." He came to my house-
-[laughs]
-... you know, not too long ago, and was
like, "Oh, the shiplap wall." I'm not in
front of the shiplap wall today. I am on
the road. I am traveling in Wisconsin. Um,
Jason says I am becoming a tall Eric
-Barnes-
-[laughs]
-... because I'm on the road-
-Super tall
... for a golf trip for the, for the
company. Yeah, so, um, anyway, that's
where I'm at, and so I brought my
equipment. I, I'm the rare, you know, I
-hardly ever remember my equipment-
-Mm
... when I'm at home, and I somehow
remembered to bring it on the road with
me. So Michael, just before we pressed the
record button, you said you were gonna
-ask me something. What was the question?
-I was gonna ask you something, 'cause you
said you're here, you're not working.
Like, is this time off work, or is this
work time?
-This is work time. So this is like-
-Right
... we are here for visiting a client. So
I'm sort of doing some work in the
evenings and things like that, but during
the day, like tomorrow, we have, like, a
-tee time at 9:45.
-Okay.
We'll be golfing for half the day. We've
got a little, like, um, event tomorrow
night for the, for the golf outing that
we're here for. So yeah.
-Mm-hmm.
-It's time, I'm on the clock, but I'm
getting to have fun while I'm on the
clock, so it's great.
Okay. Well, that's all, that's all good
then. I, I just,
'cause you were, you know, you had
Memorial Day weekend last week, so you
were away for that, and then a few weeks
before that-
-That's right
-... you were away somewhere else. Like, I
feel like you take a lot of vacation time,
and I'm just trying to figure out-
-Oh, no
-... how much vacation time you have, and
how much of this is just loosey-goosey
Jake's been at the same company for 15
-years, so he just-
-[laughs]
-... ticks off whenever he feels like.
-Oh. Well, okay, so let me put, let me put
this in perspective though, right? So I
was up until 2:00 AM doing a deployment
-last night, because it's-
-Mm
... you know. So, I, I mean, it all sort
of evens out, doesn't it? I mean, like,
-the-
-Yeah
... the application that I was working on
couldn't be down during regular hours, so
you're up late doing stuff. So it's like,
I, I get what you're saying. Um, it was
Memorial Day, so that was not PTO. That
was just a normal sort of, like, you know,
we have the day off sort of thing. But
the summers are a bit different. I feel
like I don't take much time off at all
-during the regular year.
-Mm-hmm.
But the summertime, like, is when I get
all my vacation in. So JMac-
-Yeah
-... doesn't necessarily have this problem,
because JMac is a business owner, and is,
uh, what I would rank as unemployable.
He's not unemployable. I think you told me
that one time, Jason. You were like,
"Yeah, I could never go back to a normal
job again."
I think, I think to Dyrynda's point, I
couldn't go to a job that I was like, "Can
-I take next Friday off, please?"
-[laughs]
I just don't think I could do that.
Um.
You know, the, the lucky thing for you is
that you would get, like, a, a millennial
as a boss these days. So someone that is
younger than you would be-
-Yeah
-... your boss, and most of them don't
-care.
-Which I don't know if I could take that
-either, in fairness.
-They're like, "Sure, take whatever time
-you need." No.
-Yeah.
-No. Well, I-
-Yeah
... my current head of engineering,
when he was,
he was working somewhere else, and I'd
worked with him years ago, and we were
both engineers on the same team. And so we
went our separate ways and did our own
things for a few years, and he said, "Have
you got any jobs where you are at the, at
the moment?" And I was like, "Well,
I don't think we're looking specifically
at the moment, but I'll put you in contact
with, with the right people, and you can
have a chat, and if something comes to
that, you know, something can come of
that." And
he, um, he's a, he's a few years younger
than me, and he came to my daughter's
second birthday, and we were just talking,
you know, how did it go. He's like, "Oh,
I've had some conversations, but they're
not really sure," you know. And then the
following Monday,
the people that he had conversations with,
they're like,
"So Sam's starting, and, uh, he's gonna
come on board as head of engineering." I
was like, "Whoa, whoa, whoa, pump the
brakes. Did I just get my mate a job as my
-own boss? What is happening?"
-[laughs] So is that what happened? You got
-him a job as your boss?
-Yeah, yeah. So yeah, he's-
-Okay. Wow
-... yeah, so he's, he's head of
engineering. He's been at, at the company
with me for probably three-ish years now.
-Oh, wow.
-Maybe coming up four.
-And you, and you-
-Yeah
... and you told him, "You're gonna sign
my referral check, buddy."
-[laughs]
-Yeah, right. [laughs]
For your position.
-There are, there are two points, though-
-Yeah, we-
... on, on that. The,
to, to
the point of more vacation time in the
summer-
-Mm-hmm
-... uh, I actually, I do see that in
Shift. It is funny. May and December are
my, my lowest usage months by far.
-Mm.
-Uh, and I think-
-Mm
-... as probably being 60% US market,
like-You know,
as Jake's saying, everyone's off in May.
You're off school. You're taking your
-first-
-Yeah. Mm-hmm, mm-hmm
... of your summer vacations. You know,
Christmas, same thing. You're two weeks
-off probably-
-That's right
... around Christmas time in the US
typically,
uh, your kids or something. So I, I
definitely see seasonality, low
seasonality for Shift. So I'm kind of on
the, while I can take a vacation, I
suppose, whenever I want,
uh, you know, the business is affected
actually by other people taking vacation,
-right?
-Yeah.
-They're not in the office-
-Mm-hmm
-... running shifts-
-That's a good point
... upgrading their apps.
Yeah, which sort of... I'm gonna loop back
to this because
I, I tend to assume that people know who
you are because you've been in the
community for such a long time. Uh, take
this opportunity to say thank you for all
you've done for the Laravel community, but
for those people who have not yet met you
or have not been to a Laracon where
they've, they've been able to hear you
speak or whatever, can you just tell us
kind of what you do, uh, you know, what
you've created, a couple different things
that, that, you know, maybe something
we're gonna talk about today as well. But
just give us your intro. Who are you? What
do you do?
Yeah. So Jason McCreary is the full name.
Uh, I've gone by JMac for a long time, so
I think most people in the Laravel
community know me as JMac. That nickname
predates Laravel community actually,
'cause I, I just... No matter where I
worked, there were, there was always
another Jason. I think at one job, there
was four other Jasons on our, like,
20-person team. So it was just... We al-
-always had-
-Wow
... a nickname.
JMac's the one that stuck, Jason McCreary.
So,
uh, again, in Laravel, I think most people
probably know me as the creator of Shift,
uh, for a little stint there, and they
might have known me as, like, a test
evangelist. That was probably my most
recent, like-
-Mm-hmm
-... Laravel Talks.
Um, occasionally I make a course. You
know, I think over the years people have
picked those up the longer they've been in
the community. Uh, I typically make a
course where I feel like there's a gap of
knowledge, and honestly, it's-
-Mm-hmm. Yeah
-... sometimes it's in my own,
like, my own knowledge gap, so the, the
most recent one-
-Mm
-... Fast Laravel.
You know, I was familiar with page caching
back... You know, I've, I've been doing
web development for almost 30 years now,
so, like,
I remember page caching back in, like,
2007, right? To, like, these big-
-Mm-hmm. Mm-hmm
-... when I worked at, like, Fortune 100
com- 100 companies. They, like,
needed to cache and, like, to, to up their
page ranks in Google. Like, your last bit
of eking things out was, like, a fast
page, right?
And I just felt like with serverless and
all these other things, it kind of became,
like, a little bit of this lost art. But
yet, like, Cloudflare's on the scene-
-Mm-hmm
-... and it has all these, like, free
services, and it's, it's big one being
edge caching is kind of its initial claim
to fame. It's, it's obviously has so many
services now. Uh, but I think the big part
of it initially was, like, you know,
the edge, uh, you know, caching, the DNS,
the pro- the proxying that happens.
-So about a year ago, yeah-
-Yeah
... I just dug deep into that. So that's
kind of the most recent course. But
there's been other ones, you know, like
old school knowledge, Git knowledge,
testing. Um,
I kind of make them for me. They're not,
like, huge Adam Wathan, like, splash style
courses.
-[laughs] Um-
-Yeah
... but, you know, they're still fun to
make. It's kind of just me turning the
camera on and, and revealing what I've
discovered, so...
-I love that.
-Which is the next one's cache.
I think the first one...
Yeah, absolutely it is. I, it's like you
have the perspective of the beginner at
that point. It's all still fresh, and so,
you know, it's the, uh-
-Mm-hmm
-... opportune moment to sort of share that
-information.
-Yeah. I think the beginner to
intermediate's, like, kind of an
underserved market maybe is... You know,
if you're super beginner, like Laracasts
or just you're gonna YouTube stuff,
whatever, it's gonna work. But that, that
kind of, like, early intermediate and
mid-intermediate, I think is just, like, a
big, a big underserved market.
Yeah, and I think the very first thing
that I remember seeing you for was getting
-Git. I think that was early, early on.
-Yeah.
-Um-
-That was my first course ever
... and so that was a, that was a great...
Yep, that was a great course. I remember
watching that and learning a lot from
that. Um, and you've had base code. You've
had a lot of, a lot of different items
along the way. Of course, you've had a lot
of blog posts that have been influential
and helpful to me personally. So, um, yep,
Laravel Shift. I actually... Before we
jump into Fast Laravel, I would love to
just talk about
what sort of differences you've noticed as
AI and agentic coding and things like
that have come on the scene, and even
with, you know, the latest, uh, upgrade to
-Laravel 13, which I've gotta say-
-Yeah
... we are doing a slew of those right
now. Um, just what's changed on your side?
Tailwind, you know, has obviously had to,
like, pivot. They've had a bunch of
changes, so open source stuff has been
affected greatly. Um, even Jeffrey Way
with Laracasts has been putting out a
bunch of things, just like, "Hey, here's
how AI ef- is affecting our business."
How, how have you felt that impact as a
business owner?
Yeah.
I think with Laravel 13,
for me, it probably clearly signaled the
beginning of the end for Shift, at least
as far as future, the future of the
business goes, probably much-
-Mm
-... like Tailwind talked about earlier in
the year. Like,
and Shift's a little bit different in the
sense that, like, there's no real strong
pivot. Like, I think Tailwind can find
some other pivots, you know, into, like,
this UI.sh. I've noticed they're kind of
looking into, like... They're integrating
more of their design skills, like, into AI
to offer kind of, like, this paid service
in a way. I think they're exploring that
anyway. But the point is, is like-
Mm
... I don't know how much Shift has that
avenue,
uh, 'cause it's... Shift's kind of got a
double whammy, 'cause, like, for about
three releases now, Laravel has really
marked everything, like, completely
optional. You know, they've, they've kind
of touted it as, like, no breaking
changes, and I think there's truth to that
statement.
Um, but it's a l- it's a little... From my
perspective, it's a little bit dangerous.
Um, the prime example is, is, like,
let's say you just run Composer Upgrade,
and, and this has been the problem, the
challenge with Shift since the very
beginning. A lot of people go in, they
just run Composer Update. It works,
-and they just keep-
-Mm-hmm
... going on, right? And you can do that,
maybe you do that year after year, version
-after version.
-Mm.
I think there were pivotal points in
Laravel's history where the wheels fell
off of that really, really hard.After like
two versions.
-Mm-hmm.
-You know, way back in like 5.6, 5.7, 6.0,
big, big changes.
But they're not...
That's not really so apparent anymore
until you go to the docs, and this, this
is kind of the last piece of evidence
[laughs] other than people just saying,
"Well, JMac, you're just trying to sell
me, you know, a Shift. You're trying to
sell me an upgrade."
-Mm.
-That's not really true. I mean, I, I
genuinely just want you to be running the
latest version, and we can kind of come
back to why.
But to stick with the point, like,
let's say you wanted to add a new piece of
middleware and you're coming from Laravel
10, and you've only ever done composer
update.
-Mm-hmm.
-Because if you go look at the upgrade
guide, it kind of says, "Oh, all this
other stuff's optional, just run composer
update."
Well, you're gonna have your old kernel
file. Y-
-if you go to the docs-
-Mm
... to register a piece of middleware or
to disable CSRF, and you've never
done any of those, quote unquote,
"optional changes," like now you're
digging around the docs trying to figure
out what to do. You're in, you're in no
-man's land. You, you're running-
-Mm-hmm
... Laravel 13, but you really have a
Laravel, you know, 10, 11, or 12 app. It's
just not the same.
And I think if you work on an app every
day, that creates a lot of drag.
Um,
so I think that's kind of one side of it,
is that
there hasn't been the strong need, quote
unquote, "for Shift" in recent versions,
because
the upgrade guide just says, "Oh, it'd
take you five minutes. All you gotta do is
bump these three dependencies." And it's
like-
-Yeah
-... true,
but it's not the full story. Um, and it's
kind of-
-Yeah
-... hard for developers to see that, that
maybe have already been kind of doing that
over the years anyway.
Shift has like a 93%, like, user retention
rate. Like, if you use Shift, you get its
-value. Like, you understand why.
-Yeah, yeah.
But I think it's becoming very, very
difficult for me to convince... Because of
recent years of upgrades, it's very
difficult for me to, like, go out and
-convince or market this upgrade.
-Mm.
Not only because Laravel's saying it easy,
but now because you can also jump in AI
and say, "Hey, upgrade my app." And,
you know, that may, that may or may not do
more-
-Yeah
-... than the upgrade guide. You know, that
really just depends on the model. It
depends on h- how much context you give
it. It depends on if you're using things
like Boost or the internal upgrade tools
or, or those things. Like,
it... And as we know, it's AI, it's kind
of luck of the draw that day on how
-thorough it's actually-
-Yeah
-... gonna be.
-Might have worked for one app-
-Yeah
-... it might not work for the next one.
Yeah, you're just not gonna get the same
results.
Well, not in the same way at least. Yeah,
yeah.
So...
-Yeah, and I think that's always-
-You know, yeah
... been the benefit. And, and, you know,
it's, it's the conversation that, that
you've had
this year, especially with, you know, the
proliferation of AI and with all of this,
um, tooling, that, yes, you can just do a
composer update, and yes, you can,
um, use the, the tools that Laravel
provides to do the upgrade, like they've
-got the skill now, I think.
-Yeah.
But to your point, you know, that you just
made,
whether or not it is actually a Laravel 13
application, and that has always been a
very strong,
um, positioning of Laravel Shift, is that
it's to make it look like you are always
running that version. Which, you know, the
docs, all of that kind of... Like, I,
even now,
yes, I go through the Shift, I use the AI,
um, 'cause you provided some snippets-
-Some prompts, yeah
-... some, some prompts that you could use
-to-
-Yeah
... to, like, coach the, the final
cleanup, which was very useful. And then I
go, and at least I know that when I look
at the docs for the latest version, that,
as you say, this is where you go and do
this thing, and it's clear and it's
consistent, which is not,
not been the ca- In, in my head, I'm still
running, you know, Laravel 10. But I go,
"Oh, no, that's, that's not where this is
anymore." So it's good to know that you
can look at the docs and, and just go and
do that process and just trust that it's
-all-
-Yeah
... gonna behave itself. It makes it
easier if you bring on someone newer into
a team environment as well,
that they've only used Laravel 12 or
they've only used Laravel 13. It's like,
"Here is our Laravel 13 application."
There's no question about it.
-Yeah.
-Now they don't get lost trying to figure
-out what's, what's where and-
-Yeah, truly-
-... all that kind of stuff
-... Laravel 13. Like, sure, you can, you
can be compatible, and I think that's what
the upgrade guide, its, its goal and its
-focus-
-Yeah
... is compatibility. And why, why the
hell would Laravel go out and be like,
"This is gonna be the most difficult
upgrade ever?" Like, when-
-Yeah.
-Why would they say that? You know what I
-mean? Like-
-Yeah
-... there's no incentive for them-
-Yeah
... to give you every tiny little thing
that ever got changed over the year-
-Mm-hmm
-... of, of changes that they do. You know,
they do an annual release, so they're,
they're not gonna cover every single one.
-And-
-Yeah
... that's not to say that Shift does
either per se, but, but it definitely goes
much deeper. And, and to the point, the
goal is, is, is, is much different. I want
it to look and feel like it's always been
13, 'cause that's what I would want of
-the product, right?
-Yeah. Yeah. Yep. And I've noticed that
too. So like, what's... Like, in our most
recent upgrades, um, okay, so I'll give
two example, well, three. Number one was
all the annotations that it put onto my
models now. So like unguarded or guarded
or like, uh, different things like that,
that I normally would not have taken the
time to do myself, which are now just-
-Sure
-... the default. So that's how, that's how
it kind of how it works. And so it's
like, great. That's not something I
would've taken the time to do previously,
something I knew that was an option now,
but now it's just done, and it's, it's
already handled. Another thing that was
-interesting, which I would not-
-Mm
... have caught ever, is the config
changes for cache prefix and, um-
-Yeah
-... I think cookie name and whatever,
which sounds so innocuous. It's like,
okay, well, it's no big deal, the defaults
are changing, but literally it's changing
from an underscore to a dash. Who's going
to catch that, that that's an underscore
to a dash?
-It looks-
-However- Yeah
... it looks tiny, but it's actually huge
impact. Yeah.
It is. Yes. Yeah, and the reason why, and
for those of you who might not know, the
Redis prefix, for example, is a great ig-
is a great one because it actually, if you
follow it through, like, the three files,
it's defined in database.php. It's also
-defined in queue. Queue p- .php uses-
-Mm-hmm
... the database connection, and then
horizon.php uses the queue connection,
which uses the database connection. Like,
good luck chasing that all the way
through, but if you don't change that
Redis prefix and you just let the defaults
cascade, you're gonna lose any jobs that
were not completed by the time you did the
-upgrade. They're gone.
-Yeah.
That, that prefix is not going to match
for Horizon.
-And session change too, so-
-They're just gonna be orphan jobs out
-there
-Yeah.
Yep. You're gonna d- invalidate all your
sessions. And so those are the sorts of
things that get surfaced that are like, I
would never have caught that in the
upgrade guide, number one. And number two,
even if I would have, it would not have
said, "Hey, by the way, this has changed
three times in the last five releases."
-Yeah.
-"You might wanna consider just adding this
-as a default moving forward." Like-
-Yeah
... those are the sorts of things that
could cause a lot of headache, that are
surfaced for me in the top comment of the
thing. Like, "Hey, these are changes
you're really gonna need to be aware of,"
and then the rest of the comments in the
shift are just like, "These are optional.
Take a look if you want to, but they're
not, they're not a big breaking change."
The last piece of that, though, is it sort
of
m- melt, like melds together this idea of
like, we're gonna do the automated
portions of it, but if you want to have
your agent do this, here's an example
prompt for what you could push in if you
just wanna use your own tokens to, to
handle this portion. And so it's not
necessarily one or the other, it's a, it's
-a both/and, which I really appreciate.
-Yeah. A- and I think that's going back to
kind of that tailwind thing. I think
that's my effort to integrate with AI. I
-don't wanna make it Shift versus AI.
-Yeah.
I use AI, too. I'm a developer. Like, I, I
use it actually now probably to write a
majority of my code.
Um, you know, so it's one of those things
where I'm, I'm not trying to be like,
"Shift is better than AI," or make it
competitive. And honestly, I said that
even before I knew about any of this, like
Laravel 13, you know, its own little
skill and all that kind of stuff. Like, I
was saying that back in January, 'cause I
just don't think that's the right path,
you know? It, it's like trying to fight
-the ocean-
-Yeah
... or something. Like, it's [chuckles]
not gonna work.
-You're not gonna... Yeah, exactly.
-Um-
-Yeah
-... you know, so it's one of those things
where, yeah, I've done a lot of features
to make it more integrated with AI, which
I think is also, again, kind of that
tailwind approach. Like, we're not gonna
-be able to fight this. Let's, you know-
-Mm
... let's... And we're not probably gonna
outlast this, so let's kinda get on board
with it, but give it our own little
sprinkle-
-Mm-hmm
-... um, our own little flavor.
-Mm-hmm.
-And that's really what I've done with
those AI prompts. They're much more
contextual. They're in the comments. You
know, these areas that I've always felt
like, man, I wish I could automate that,
but it just wouldn't be 100%, like, Shift
standard reliable.
But now I can give you the details like
you're talking about, and then have this
nice little dropdown prompt.
If you're using AI, copy it. If not, the
information's still there as a human. But,
like, you copy this, you drop it in, and
it's gonna do the right thing for you, and
it's gonna take it that last mile locally
with a better context. You know?
-Yeah.
-'Cause it's got access to your ENV files.
You might not commit those, for example.
Um, so it's just-
-Right
-... not something Shift can reliably do.
Uh, so I'm glad for that integration. And
then the other one, you know, just posted
on Laravel News today, um, I put... I, I
think I tweeted about it last week. But
Matt Stauffer made this review skill,
um, 'cause, you know, he's at Titan. He's
using-
-Mm-hmm
-... Shift. He's got a subscription. He's
using Shift for the dozens or hundreds of
clients they manage to upgrade thing. He
built this little dashboard and, you know,
vibe coded.
But then he built a skill where actually
he can give it, you know, to Claude and
say, "Okay, here's the PR number. Go, you
know, use the GH commands and go review
this thing," looking at the comments and
treating-
-That's cool
-... Shift as a source.
-Mm-hmm.
-I, I kinda slept on that for a couple
weeks, kinda like the podcast. [chuckles]
And I finally met with him-
-[laughs]
-... I finally met with him, like, two or
three weeks ago, and he showed this to me,
and I was like,
"Oh my God, I immediately built like four
other skills now." So now there's a set of
skills that are Shift kind of branded,
um,
to do everything from analyze your project
to figure out what Shift should be run,
to actually running it and then reviewing
it as Stauffer, you know, his command
kinda did.
-But now there's also a refactor thing-
-Mm
... that ties into the workbench, which
was always kind of a sleepy feature of
Shift as well. But now you can do all that
from the prompt. You don't even have to
open your IDE. You really don't even have
to open GitHub. Like,
-you can-
-Mm
... you can trigger, run, and review, and
merge a Shift
all from your AI. Like,
-I was upgrading it-
-Didn't know that. That's pretty sick
-... last week in, like, seven minutes.
-Yeah.
And I never even opened the IDE.
-Yeah.
-Oh my gosh.
-It is-
-That's wild
... it is crazy how much everything has
kind of just,
um, what's the word? Like, consolidated on
the agent,
the CLI being the, the one place where you
do everything.
-Yeah.
-Like, I, I very... Like, I've still got my
Vim terminal, 'cause, you know, you'll
pry that from my cold, dead hands. But
-I've got everything.
-[laughs]
I can, I can connect to the Nightwatch
MCP. I've, I built an MCP for, um, the,
the application that's managing, like, the
Laracon stuff, where we did all the CFPs.
So I can go and look at, and look at and
analyze the feedback from speaker talks
and submissions. When they say, "Hey, I'd
like some more feedback," I can go and,
and collate everything that all of the,
um, all of the different reviewers said,
and present that back to the speaker to be
like, "Hey, if you were submitting again
at another event, or to Laracon AU next
year, here's the kinds of things we're
looking for." So it's, it's just
interesting how in a very, very short
space of time, this has all changed,
where, you know, we had people using
PhpStorm and VS Code and, and Vim and, and
whatever else, and now it's like, no, the
single interface to literally everything.
We don't Google search anymore. We
don't... Like, everything is just in our
little Claude code CLI.
-It's crazy.
-Yeah.
Yeah, it is.
Um, so maybe that's, maybe that's a good
spot to sort of wrap on the Laravel Shift
sorta things. Um, we're, like I said,
we're using it extensively right now,
getting all of our stuff upgraded. You
know, we have
90-some repos in our org, and, you know, I
know at least, like, 30 of them are ones
we're gonna have to use Laravel Shift on.
So, um, if I have anything to give
feedback on, I will give it in the next
little bit here. But-
-Sure
-... that being said-
-Always welcome
-... uh, the other item... Yeah.
-Yeah
-The other item that we're looking at is,
uh, this Fast Laravel, which we talked
about on the Laravel News podcast for
quite some time. Uh, there was-- Uh, I
feel like it was almost like a,
um, a serial blog sort of idea, where it
was like you were sort of figuring out new
-things and then releasing-
-Mm-hmm
... things, and then you're like, "You
know what? Why don't I just kind of...
Instead of making people go read 5, 10, 12
blog posts or whatever, like, why don't I
just put this together into a series and,
and put this out there for the world?"
And so,
um, I'm curious, you know, you, you kind
of gave us a little bit of a taste, right?
Of like, here, here's kind of what it is,
is we're talking about caching. Um-
-Mm-hmm
-... and that's a unique challenge with,
with something like Laravel, because
Laravel is a server-side language. And so
the, you know, with some of these, uh,
languages that are-- Or sorry, these
frameworks that are using like Node and
things like that, it seems like maybe the
caching is a little bit easier, 'cause you
don't have to invoke the server in order
-to, um-
-Yeah
... you do, I guess. But it just seems
easier for some reason when you're on that
side. You got a SPA, you know, you're
pulling it all down and you cache it, you
know, cache the thing. But with, with PHP,
it's not quite as easy. And so, um-
-Yeah
-... you know, this idea of let's use
Cloudflare to cache stuff is cool, but
there's a lot of gotchas along the way.
And, and sort of in the blog posts that we
had read, the sentiment that you
expressed is there was two big blog posts
that you looked at to sort of figure out
how this works, and both of them were
either like out of date or sort of
insufficient. So, um, give us like a
little bit of a,
like insight into how that works. You
know, I'm not asking you to... Obviously,
you're not gonna be able to like teach us
everything in a, you know, 30 minutes. But
like, what's the sort of-- What were some
of the challenges that you ran into with
that, and what are some of the interesting
solutions that you came across on your
way?
Yeah.
Yeah, so Fast Laravel, fastlaravel.com,
uh, it's the most recent course I've made
kind of Laravel related. Uh, and it was,
again, it was kind of another thing I'd
slept on, you know. I feel like in the
last 18 months, or at least probably six
months ago,
you know, 18 months prior to that, people
were just really talking about Cloudflare.
I host with Cloudflare, I do this with
Cloudflare, you know, set up Cloudflare.
It just seemed like it was getting kind of
this background buzz of where people
were, were hosting or serving, you know,
their sites out of, um... Or at least, at
least their DNS was being handled through
it as kind of this proxy.
Uh, and again, kind of being an OG web
developer, I remember messing with page
caching a long time ago, so I really
wanted to like figure out, like
can I make a Laravel application,
you know, faster? You know, there was a
big push to like serverless and Octane and
-all these.
-Mm-hmm.
And of course you can, we can throw CPUs,
we can increase requests per second and,
you know, we can talk about all that. But
like, you're never gonna beat
a, a static HTML page served directly from
your browser. I mean, this is how HTTP
-works-
-Mm-hmm
... right? This is how it was built. It
was built to be cached across networks
locally, literally on your browser,
to just be fed directly to you in a
millisecond. So it just-
-Mm-hmm
-... anything else you ever wanna talk
about, it just pales in comparison to just
loading directly from disk,
-right, on your local machine.
-Yep.
It cuts out all of the network layer, it
cuts out all of the requests, the DNS, the
routing. And then forget that, then it
cuts out the fact that it's actually
spinning up in your web server. It's, it's
interpreting the PHP. It's loading-
-Mm
-... tens of thousands of lines of PHP code
for Laravel just to boot,
and then it spits out your view that's got
nothing in it but static, you know, copy,
-right? [chuckles] Like-
-Yeah. Yep, yep
-... it's just a little bit silly.
-Exactly, yeah.
Right? So the... So it's a, you know, it's
a silly, you know... I'm making it silly,
but the point is, is that I think even on
a Laravel application,
a percentage of most applications,
especially in front of a login screen,
are truly that. They're static for... I
mean, look at laravel-shift.com, for
example. I've got a product page, and
yeah, that's fed from the database. It's
fred, fed from product models, right?
Product all. But like,
I don't add products
all the time. I mean, once a year, Laravel
13 shifts.
-Mm-hmm.
-Maybe I build a couple others during the
year. But the point is, maybe once a
quarter that page is actually changing. So
yeah, it's dynamic, it's built with
Laravel, it's pulling from a database,
but its content is static.
So that was kind of the genesis of like
I know, again, in my OG web developer
brain, that this page could be cached. I
just kinda never messed with it, and it
finally just got to this place where, like
I had a little time to explore.
Typically, you know, after Laracons is
kind of my really slow season in the back
half of the year. I'm not preparing for
the new release. I'm not preparing to like
give a talk necessarily. I'm, I've got
some time.
So I started messing with it last
September, and I was just
amazed at kind of the results. But to your
point, I definitely found two or three
gotchas, like right out of the box, and,
and these are blog posts on Laravel News.
-Mm.
-Like you said, I tweeted about them at the
time. I did little videos, um, in my
livestreams.
So just to kind of recap a couple of
those, um,
the first one is, you know, Laravel's a
web framework,
so out of the box
it gives you state. Uh, it does so through
cookies,
um, cookies and sessions. So even though
if you're not using or writing or doing
anything with the session or these
cookies, it's gonna send those back in the
response right away, and you can see
these as like out of the box. You'll see
them as like Laravel_session, right? This
cookie is just being used. Um,
well, Cloudflare is built dynamically to
look at the headers on the response, and
even if you enable caching, it's going to
see a cookie header and it's gonna bypass
its internal cache. And you'll see this in
the headers. You'll see-
-Hmm. Interesting
-... a CF status, cache status, and it says
-bypass. Sometimes it'll say dynamic-
-Mm
... uh, again, if the, if, if the cookie
or other headers are, exist. So even if
you set a header saying, "Oh, this page
never changes," and you're not using
session or doing anything weird on your
page,
um, or anything dynamic-Uh, you're still
gonna get this bypass in the cache.
So that sent me down the road of like,
okay, well, how do we turn this off? Well,
it's not so easy, um, 'cause again, this
is built into Laravel out of the box.
Laravel expects-
-Yeah
-... to have state out of the box. It, it
uses it in the request. It uses it, you
know, session facade, of course. It
encrypts and decrypts cookies on every
request.
So I found the simplest way to do that was
basically just to add a separate
middleware group. You can think of it much
like the API middleware group, um, which
really has nothing on it either. It has no
state. That's the whole point.
-Um, but you still-
-Yeah, right
... want a few small things to load,
right? So again, this... I go deeper into
it in the blog, but that was kind of the
first, um, hurdle, was to kind of turn
that off.
Um, that puts you in a place where now if
your pages are truly static,
-you know, you can-
-I was gonna ask if it's worth
distinguishing between the idea of cache
that lives, like,
in the user's browser and also a cache
that lives at Cloudflare.
-Yeah.
-Um, because some of the advantage that you
get with using Cloudflare too, is that
they are also doing their own cache layer
-on your content that you're returning-
-Yeah
... um, at the edge, meaning like at a
node that's closest to-
-Mm-hmm
-... the user that's getting the traffic
served to them. So can you speak to that
just a little bit and kind of help us
understand the difference between... Or, I
mean, there's really both of those things
happening, but how exactly that works and
what, what that, what that is?
Yeah, I think that was kind of the second
hurdle. Uh, so, so yeah, once you have the
-static page and you're-
-Okay
... you're actually caching it,
the second hurdle is, is, yeah, I think
especially when we, in modern senses, and
especially as Laravel developers, we hear
cache and we're thinking like cache
facade, right? We're not thinking we're
caching a database query.
-Mm-hmm. Yeah.
-We're thinking of what you would consider
as the application cache, right? Um, so
this lives beyond that. What we're talking
about here are, are two things, to your
point. We're talking about a, now a
network layer cache, and that's
Cloudflare. So Cloudflare has its own
little bucket, its cache bucket, that it's
now going, if you tell it with headers
and, and you have all the appropriate
response headers in the HTTP,
and you've enabled it on Cloudflare, which
is a free service from them. I don't pay
for anything for Cloudflare, and I've got
all my sites cached to the tilt. But like,
now they're going to cache it. And then
you can even go further than that. You can
actually go so far as to say the browser
on the user's local machine to cache it as
well. So you kinda create, in caching,
what they call like this Russian doll
technique,
where like you have these little Russian
dolls where like this outer layer's got a
cache, and then you open it up and there's
a little doll inside that, and then you
open it up and there... And then you keep
going all the way down, right? And
you can do the same thing with your web
responses. Um, we can cache them all the
way down.
Yeah, the, the Russian doll thing is, is
interesting. I know that, uh, DHH when
they, they were talking about like caching
in the Rails ecosystem, they were big on
the whole, like, don't cache the whole
page 'cause you wanna cache like sections
of it because, you know, this thing never
changes, but,
or, you know, the other part, or the, the
whole of the page very-
-Yeah
-... rarely changes, but the inside is
dynamic. You know, you're listing your
products, so that stuff has to change
quite frequently. And
your products, no, but like there are bits
of the page that will change.
-Mm-hmm.
-Like a blog. On, on my blog, for example,
it doesn't change often, but when it does,
if that blog index-
-Sure
-... is cached,
you gotta bust the whole thing just to
get-
-Yeah
-... the content to update-
-Yeah
-... so you can see the new post is up.
So in the course, I explore ways to
actually cache partials,
partial pieces of the page as well. And of
course,
as, as Laravel and the community, we ha-
we already have a lot of tools that kind
of
get us into this partial idea. Even on a
Blade level, we can think of partials in
the page, right, um, being included.
Uh, but you know, we're also familiar with
Livewire, we're familiar with Alpine,
we're familiar with React, Vue, Inertia,
all these things that are probably already
breaking up the page in a way
that either is already very, very
cacheable or at least make components of
it, um, cacheable or fragments of that
HTML that's being returned cacheable.
Um, so there's a lot of options. Again, I,
I go deep into all that. Um, there's more
blog posts, but
the whole point is, is again,
you're not gonna get anything, it's not
just Laravel, you're not gonna get any web
application any faster than caching, you
know, at the edge, and the edge can be all
the way up to and including the user's
actual browser.
But Cloudflare, to Jake's point a minute
ago, Cloudflare-
-Yeah
-... you know, it's distributed across the
entire world with nodes everywhere. So
like if you go to laravel-shift.com and
you inspect the headers, you'll see what's
called a CF-Ray in the response,
and typically you'll notice that these
are,
you know, geographically close to you. So
when it does actually request,
-it doesn't even-
-Yeah
... go so far as like to US West. It's
going to Nashville-
-Yeah
-... which is only like, you know, 100
miles away from me, you know, speed of
light.
-Yeah.
-Right? So it's just even when it's-
-Yeah
-... not coming from the browser-
-Yeah, that's right
-... it's still coming back to me in things
like 23 milliseconds. I'm seeing my page
load.
Yeah. Well, we've got, we've got, uh,
three, I think, Cloudflare...
-Last time I looked-
-Melbourne, I think
... we had three Cloudflare POPs in
Australia. One of them is-
-Mm-hmm.
-Yeah, there's Melbourne, there's Sydney,
there's Adelaide, and if it's in Adelaide-
-Yeah
-... I assume Brisbane and Perth have got
one as well at this point. But like, to
your point, yeah, it's, if it's not cached
-in my browser, it's cached-
-Sure
... one millisecond away at the data
center that's-
-Yeah, I mean, if you-
-... 12 and a half kilometers down the
-road.
-Yeah. I mean, eight months ago-
-So it's-
-... if you went to laravel-shift.com,
you're, you're coming all the way to
Virginia.
You know what I mean?
-So y- you in, in Australia-
-Mm-hmm. Yeah
-... are, are-
-Yeah
... you know, pinging probably 100
milliseconds just to come to Virginia.
-Then it's running-
-Yeah
-... Laravel. Again, not necessarily slow.
-Yeah.
PHP is fast in my opinion,
but, you know, tens of thousands of lines
of code on my little shared server host
-box, $5 box. Like it's, you know-
-Mm-hmm. Yeah
... you're probably seeing my page in a
second and a half, and that's ridiculous
in 2026.
Yeah.
-It's basically instant now, which is-
-So, yeah
-... which is great.
-Well, the cool news, too, is like, you
know, if that does... And so you- if you
have something that hits, like, Hacker
News front page, and you have everything
cached at Cloudflare-
-Yeah
-... it doesn't even matter.
-That's right.
-Like, you're not gonna take your box down
either, like, 'cause it's not even
touching-
-Yeah
-... your box. It's, it's totally bypassed.
It's never gonna hit-
-Exactly
-... my origin-
-Yep, exactly
-... unless I busted it.
-Yeah.
-Yeah.
Right. So I was gonna say, too, like,
well, so two things. Number one,
uh, like, what sort of cache coverage, if
we wanna use that sort of term, have you
-been able to achieve on Laravel Shift?
-Mm.
And then secondly,
do you feel like this is still, like, a
proper strategy or something that's even
achievable for something that is a
heavily, like, changing content site? It's
-a bit of a leading question-
-Yeah
... because I've heard from Eric Barnes
that you've been working with him a lot-
-Yeah
-... on, like, his blog-
-Yeah
-... and getting that cached up. And so I'm
curious just, like, if there's been any
different strategies you've employed or
whatever. So two questions, kind of just
to flesh that out a little bit.
Yeah, yeah. I'll actually throw in a, a
third answer real quick, too. But, so the,
the for- the format of the Fast Laravel
course is actually me basically recreating
from scratch,
taking laravelshift.com from 6% cache when
I first signed up at Cloudflare,
straight Laravel out of the box, you know,
tall stack kind of thing,
uh, to 99% cached. And if I, if we
screenshotted Cloudflare right now, you'd
-probably see 98.6%.
-My gosh.
It's been steady that way for the last six
months.
So yeah, 90, 99% cache, basically. On the
weekends, it's 100% cache, because
basically that 1% are my users actually
logging in to custom user dashboards. And
-I could go-
-Mm
... that far if I wanted to, but, like,
99%, let's, let's, let's have a little
fun, right? Let's get $5 worth-
-Yeah
-... out of that box.
-For what reason? Yeah.
-Um.
So first question, yeah, 99%. Uh,
is that achievable by every kind of site?
No. Some more than others. I think some
could be 100%, easy. Um,
-but the point is 99%-
-Mm
... of your traffic, I mean, Laravel Shift
is not an unused site. I mean, I think I
get 100,000
requests maybe every couple days, every 48
hours, I think, just kind of looking off
the charts. So I mean, it's not,
it's not a huge site, but it's not a small
one either.
Um,
Laravel News, though, I wanna do more case
studies-
-Yeah
-... is kind of to your, your second
leading question.
And so over the last kind of month or two,
you know, when we have time, Eric and I
have met and increased his caching on
Cloudflare.
Um, I think he started around 17 or 18%.
In fairness, he was already doing some
pretty heavy image caching and, and video
caching based on, of course, his, his news
kind of content.
Uh, but none of his page was, pages were
actually-
-Mm-hmm
-... being cached. So this, it was a really
fun case study. I think he's got a lot of
video content he wants to release. I'm
gonna do, of course, a, a deeper blog
post.
But I think right now he just, he's
caching the homepage and the article page
for the last few weeks. Today, he just
deployed Decat, caching his blog,
um, links and, um,
or his archive page, I think.
I fully expect he'll hit
-70 to 80%-
-Mm. Okay
... after this, um, in the next few days.
And again, we could keep going if we
-wanted, because he has no user login-
-Yeah
... on the front side. But what he does
have is complexity in his-
-Mm-hmm
-... scheduling, right?
-Right, right.
-He releases blog posts-
-Yep
-... every couple hours-
-Yeah
-... or when he wants. So we did have to
build in some things, some jobs, some
events. And again, Laravel gives you all
these hooks. Oh, hey, some, you know, blog
article got updated, you know, eloquent
event fire. Okay, clear cache for its
page, its slug page. It's all achievable.
-Mm-hmm.
-Um-
-Mm-hmm
-... you know, so that's been really,
really fun.
Yeah. Um, yeah, that... I, I spoke to you
about this just before we, we started
recording, was, you know, the Laracon
website has just went live and, you know,
the speakers are not gonna change now.
They're, they're live. That's, that's the
list of speakers. Um,
all of the content, the details is, is
kind of set in stone. So to be able to
cache that whole, whole public-facing site
would be ideal. The issue that I ran into
-[chuckles] was-
-Mm
... I wanted to go to sleep at a normal
time at, on Sunday night,
and for the, the, that, the website to
just update itself at midnight on the 1st
of June.
-And-
-Yeah
... th- but when the page is cached,
there's no way, like,
it's, it's finding... 'Cause, you know,
when you update an article or I update a
speaker bio or something, you can fire the
event, you can trigger the cache update,
-you know, clear the-
-Yeah
... cache on the, the speaker list, clear
the cache on that speaker. Perfect. But,
but when it's, like, a scheduled thing
that you want to happen in the future,
you know, it's a, it's a different thing.
You've gotta,
you've gotta go and figure out what, what
will publish.
-Yeah.
-And that might change in different places.
For, for me, it's quite, quite simple.
But you've gotta go, "Okay,
-every minute with your-"
-Yeah
... "scheduled task, does anything need to
be busted? Does everything, anything need
to be busted?" And then go and fire the,
the cache clear.
That's one of the questions in Fast
Laravel I, I, I kind of present right
away. Like, if you're gonna get into
caching, you, you have to immediately kind
of ask yourself the question, like, are
you comfortable serving stale content,
right? And if, if you're not comfortable
with that at all, then you probably can't
really cache the page. Even if you
technically could cache the page, like
from a business or a personal, you know,
standpoint, you just, you have to kind of
-say no-
-Mm
... or you have to set a TTL, or maybe you
can't do browser caching, 'cause, you
know, again, the farther away the cache is
from you, the harder it is to control,
right? I can't reach in and clear out
Jake's, you know, bla- browser cache,
like, and I don't need him calling me. I
don't need my users calling me at 2:00
-a.m.-
-Yeah
... saying, "Oh, I'm seeing yesterday's
page."
Um, so there's some things to consider
there.
-Yeah.
-But you-
-Yeah
-... you do have a good point. Like, you
wanna make sure... There's probably some,
some area for me to cover there, and I
know JT, um, guy I've been kind of pairing
with, JT Smith,
uh, you know, he kind of helped with the
course, uh, you know, content and, and
kind of researching. He built some
packages around it.
Um,
you know, I wonder if there's something in
there where-You know, you can,
you can set a schedule or something. You
can, you can pre-enter an artisan command
that, like, is, "Okay, run this command at
this time and it..." But to your point,
like at the end of the day, it's...
-Yeah, yeah, yeah.
-Even if it's like a delayed queue job,
maybe. You know, if you set a future date
on something, it's like-
-Yeah
-... just go and queue this thing to
-trigger the-
-There's definitely ways
... the cache bust at that day and time,
so. I mean, now that everything's...
Yeah, there's probably... Y- there's
always, you know, in, in anything that we
do, there's more than one way to, to
achieve an outcome. And I think, like now,
like I said, everything's static. It's
all set.
All the speakers are not changing. There's
none of the content's gonna change. We
might, you know, when, when tickets sell
out or we move through our-
-Sure
-... allocations, we might change those
pages. But for the most part, we could
probably just go and, like, blanket cache
-everything-
-Yeah
-... and, and leave it.
-You do have-
-Leave it at that
-... it is, it is a layer of complexity in
the, in the, you know, in the joke, you
know, the age-old joke, uh, you know,
cache invalidation is hard, right? Like,
you do have to remember, "Oh yeah, cache
this page." [laughs] You know, when you're
sitting... If you go down this road, like
when you're sitting there-
-Yeah, that's right
-... refreshing a thousand times-
-Why is-
-... you're like-
-Yeah
-... "Why the hell am I not seeing-"
Yeah. Refreshing. Why is nothing changing?
-"... when I think it's deployed?"
-Yeah.
-You know? Oh yeah, it's cached-
-Yeah
... in my browser. Oh yeah, it's cached in
Cloudflare.
Yeah.
-That's right.
-The good news is on like Cloudflare too,
-is-
-Yeah
... yeah, y- they have like an emergency
bypass mode in Cloudflare though, too. You
-know what I mean? So you can say like-
-Oh, yeah, they-
... "No, I'm in dev mode." I don't even
know if that's what they call it, but it's
-something like that-
-Yeah
... where you're like, "I'm actually
trying to see the real thing right now."
-Mm-hmm.
-"Please stop caching."
-Yeah.
-And now you locally at least are gonna say
like, "Hard refresh, like clear out my
browser cache." But then Cloudflare's
-gonna be like, "Okay, I'm-"
-Yeah
"... serving you whatever version is
actually currently live right now." So it
just kind of bypasses its own stuff. Um,
so yeah.
As with anything, it's, yeah, it's just
something to put into your workflow,
right? You know, you just have to get used
to it, so.
-Yeah.
-The, the area-
It does also make it easy to clear or, or
to... Yeah, it does, it also makes it very
easy to bust the cache of specific pages
through the UI, which is what I ended up
doing for my blog, was just like, go and
bust the blog list, go and bust that
article page, and then, and then it's
done. So it'd just be nice to, to automate
-the process-
-Yeah
... which is, you know, not hard. It's
just, you know, "Claude, go and, [laughs]
go and make sure that when this, this
content changes, you fire the- [laughs]
-Yeah
-... the cache bust command."
Yeah, I think, I think there's an
opportunity for that package to, to maybe
explore that a little bit. But, um,
yeah.
-I think-
-Mm
... I think the area that's interesting
for me, and I just saw a PR into Laravel
on this, uh, from,
from Devin, one of the core, the core
cloud team members, um,
uh, uh, who I met at Laracon AU last year,
uh, at the nice dinner that, that Dorinda
took us out to, the steak, steak dinner.
Um,
but yeah, he, he opened one up kind of,
uh, you know, slightly inspired by Fast
Laravel to, to bring some of the
techniques that I have in the course first
party into the framework. So, for
example,
um, this route static method. So you could
just say route stat, kind of like you say
route view or route get. You could say
route static,
and this would dis-
it's an effort to disable some of the
things that make it stateless, and
therefore allow it to be cached. Laravel's
very interested in this for kind of
selfish reasons, because they are really
tackling with cloud. You know, you can see
they're heading this direction where
hibernate, and they're trying to spin you
up, and, you know, these sub, sub-second,
you know, 100 millisecond kind of thing.
So if you pair the best of both of these
worlds, right, uh, you could start to
think that,
okay, if Laravel actually did kind of
adopt or, or make this strategy kind of
modern again, right, gave it its own
little spice of, of caching,
and Laravel Cloud gives you edge caching
built in, 'cause they sit on top
Cloudflare, all this can be built in.
But then even when you do
go through the cache or need to do
something actually that spins and boots up
Laravel,
you can come out of hibernation mode in 50
milliseconds, right?
You can see how that starts to get really,
really interesting and, and you can see
how it's this wonderful mix of new and old
strategies that kind of forge the future
a bit. So I'm really, really interested to
see where that goes and, and in a way,
um,
it's fun for me to, to see. You know, I
kind of stumbled into this area that I
thought was just kind of this old
technique that I was seeing how it worked
in the modern world,
but we're kind of seeing even actually
Laravel
Cloud specifically kind of give a little
more weight to edge caching, 'cause it
relates to their hibernation. If they can-
-Yeah
-... if they can cache something for
longer, then you can hibernate for longer.
If you can hibernate for longer-
-Yeah
-... then you're lower server cost.
-Yeah.
-If we have to spin you up and we can do
-that faster-
-Yeah
... then it's not a big toll that you're
paying, right, to, to cache more-
-Right
-... and stay hibernated longer.
So.
Yeah. I definitely think a lot of the
stuff that they've done recently, um, th-
I was just talking to some people about
this before we recorded, and the pricing
is not
ideal
for any of their stuff. I mean, the, the
CP- uh, the, the compute is like, you
know, you're capped at this amount per
month. But if you look at,
um, like the managed queues that they just
released, it's like $0.000000178
-per, you know, per second or something.
-Yeah.
It's like, what does that mean? But,
-um, where, where other platforms of-
-Mm-hmm
... a similar pedigree,
they, you know, they didn't have cost
controllers, they didn't have this, they
didn't have that. You know, you hear, I
mean, probably not recently, but you've
heard all these horror stories of the
past. It's like, "I was on Hacking News
-and I woke up-
-Yeah
... and I've got a $30,000 bill for my, my
thing."
-Yeah.
-The, the, the concern I think that
we, we heard when Cloud was announced and
when it was launched and all of the stuff
around the Excel funding, that is gonna
lead to, you know, the enshittification
and, and whatever else of Laravel, I don't
think that hasLike I, I didn't
-think it was gonna be an issue.
-Yeah.
But I don't think we've seen it come to
fruition. Everything that they're doing at
the moment,
you know, as you said, they're trying to
get your, your servers to spin down as
often as possible, spin up as quick as
possible,
and, and run for as little as possible.
Like, all of this stuff is cost
optimization, it's cost minimization. If
we can, if we can cache it at the edge,
you know, whether it's the Cloudflare
cache that they run or it's your own stuff
that's on top, like all of these things,
whilst the pricing is
not human-friendly to reason about, like I
understand why it is, because they're
-char- they're on charging-
-Mm-hmm
... what they're billed by their
providers. Makes sense.
But
the fact that those numbers are so tiny,
and that they're doing so much work in
public and, and into the products to make
sure that you are actually consuming as
little of those resources as possible,
um, is, is really good to see,
you know, two and a half years down the
road-
-Yeah
-... from when Cloud was announced, so.
It's nice because there's aligned
incentives there, right? Like, that's not
always the case, where, you know,
sometimes you have misaligned incentives,
and like it's actually to the benefit of
the provider to make the things run for
-longer or whatever.
-Right.
Like, they wanna have more billable
minutes or whatever, right? And for them,
it's like because they own the VPS stuff,
that, well is a V- yeah, because they own,
like, some of the hardware. Own, quote
unquote, right?
-It's-
-Mm
... to their benefit to be able to say,
"No, let's let it hibernate. Like, charge
you less, but then we don't, you know,
they don't have to pay as much to the
-provider either." So anyway, um-
-That's right
... I think it's, uh, yeah, it's
interesting. It's a... And they, they've
-been working-
-It is interesting
... really hard on it, obviously. Doing a
great job. Yep. Yep, yep.
Yeah. They, I mean, they get charged less,
so they charge you less, but it also
means they make less because they're not,
you know. So all of these factors that I'm
-sure that their-
-Yeah
... finance people figure out. But net
result is that the people using the
platforms are getting something that is,
you know, as has always been,
from, from my perspective, you know, at
the heart of everything Taylor does, it's
to the developer experience. And so far,
-that has-
-Mm
-... that has held true. You know?
-Yeah. Yeah. I think it, I think it's
really interesting. Um, and I, I'm glad to
see them kind of going down that road,
not just from the edge caching, but, but
the hibernation. I, I think that was
always an appeal,
you know, even when they first launched,
and it, it might not have been, like you
said, exactly what was expected at first,
but I think they're, you know, they're
filling those gaps as quickly as they can.
Um, so it's cool to kinda see it come
-together-
-Yeah
... uh,
quickly. So anyway.
-Jason, where can, uh, where can people-
-Oh
-... find the course?
-All right.
Uh, if they're looking to purchase it,
where's the best place for them to go, and
what's the cost? Uh, give me the rundown.
Yeah. FastLaravel.com. Uh,
I, I sh- I mean, I think there was an
early access price for a very short amount
of time. I wanna say it's, I wanna say,
like, it's 199
right now.
Um, but kinda to the point we were just
talking about, like if you end up caching
99% of your site, and everything it uses
is free Cloudflare services, so it's not
like you buy this course, then you gotta
go buy, like, a $20 a month-
-Mm-hmm
-...
Cloud, Cloudflare or even Laravel Cloud
anything.
-Um-
-Right. Right
... everything that is in this course
is designed to show you how to spend less
on server costs, which are basically
infinite. So, like-
-Yeah
-... yeah, there's, there's a cost to the
course, but, uh, I would really believe
that you would, you would make that back,
uh, over time. [laughs] Uh, not even a
very long amount of time.
-Um-
-Agreed
... you know, kinda going back to the
Laravel news thing-
-Mm
-... like, that was kind of the part of the
case study and why I wanted to work with
Eric, is 'cause I know he moved to cloud,
and I know they're working on Hibernate,
and I wanna prove this out. I wanna prove
-if we can cache him 70%-
-Yeah
... can we also, like,
kinda just silly math, like can we reduce
his server cost by 70%? You know what I
-mean?
-Right. Yep.
Like,
-I think this is a real-
-Yeah
-... thing, right?
-Yeah.
If you're Jeffrey Way and you're on the
$200 a month box,
but you, we go and you cache your site,
can we get you down to, you know, the $60
a month box? I think we probably could.
It's a comfort thing, but I think we
-could. Um-
-Mm. Yeah. Yeah
-... so to the point, then, then it-
-Yeah
... just paid for the course.
Um,
so yeah, FastLaravel.com. Otherwise, of
course, laravel-shift.com. I'll be at
Laracon US. Uh,
I live stream every Wednesday, mostly
every Wednesday. Uh, you know, the five
people that are in there, I appreciate
you. And, uh-
-[laughs]
-... of course, I appreciate you guys. But
yeah, I think,
yeah, I think if Shift doesn't work out,
I'll, you know, I'll probably just open up
-a tree-cutting service and, uh-
-There you go
... maybe a woodworking shop and-
-Make some tables. Yep
-... you know, just try to stay active.
-Yeah.
-Mm-hmm.
It's...
-[laughs]
-I've, I've got a pepper tree growing over
-the fence that I need cut down-
-On the plane
... if you wanna... Might be a bit hard
to-
-It'll be the most expensive tree-
-... bring your equipment [laughs]
... they've ever cut down in your life.
-Um-
-I don't know how TSA handles chainsaws.
-Absolutely.
-Checked luggage or whatever, you know. I
-don't know how that typically works, so.
-Well, I'll ship it. It'll be there in two
-weeks.
-Yeah, we'll find out, I guess.
So.
-But yeah, it, uh-
-Amazing
-... it's good.
-Amazing.
-There we go.
-Well-
Dorinda, what episode are we on, this one?
-194.
-194. Everybody, thanks so much for hanging
out with us on episode 194. You can find
show notes for this episode at
northmeetsouth.audio/194. Hit us up on X
if you have any questions at
michaelDorinda, at jacobBennett, at
goneDark is JMax handle, uh, there as
well. Uh, I mean, is there any other
places where the people need to get in
touch with you? You already mentioned
them, so we'll just, we'll leave it at
-that.
-You can email me.
-But, uh, if you-
-I'm old.
If you liked the-
-[laughs]
-... email you. Okay. That works, too. Is,
what is the... I'm trying to remember the
name of the domain now. What is, uh,
what's the email that they can email you
at?
Well, you can, you can, you can email, you
know, laravel-shift, right?
-support@laravel-shift.com.
-I gotcha.
-It's me. It's always-
-Okay. There we go
-... it's always me.
-support@laravel-shift.
It is funny when people send something
there-
-It's Jason
-... and they're like, "Hey, hey, Shift
team. Hey. Oh, you're..." And it's, like,
always me.
-[laughs]
-It's always me, forever.
Yeah. "Hey, team."
-Yeah.
-That's funny.
-It's kind of flattering, right?
-Um,
yeah. Right. They, like, they think it's a
whole organization behind this one
-product. It's just-
-Mm-hmm
... the guy, the one guy, the Laravel
garbage man.
-It's me.
-Yeah.
-The garbage man.
-So anyway, Jason, thanks so much f- thanks
so much for, uh, coming on the show,
though. Looking forward to hanging out
with you at Laracon. Um, might be grabbing
the, uh, same hotel you're gonna be, so
-we'll see. We're gonna see-
-Oh, yeah
-... if we can line that up, but, um-
-I'm at The Moxy, yeah
... still gotta reserve hotels, so The
Moxy. Yeah, exactly. So look forward to
-seeing you in Boston.
-All right. Well, thanks very much. And,
uh, if I don't speak to you beforehand,
I'll see you in Boston.
We'll see you guys.
[outro music]