North Meets South Web Podcast

Michael and Jake are joined by Jason "JMac" McCreary to talk the impact of AI on Laravel Shift and modern upgrade workflows, and his latest Fast Laravel course focused on edge caching and application performance.

Jason shares how Laravel Shift has evolved alongside AI-assisted development, why recent Laravel releases have changed the upgrade landscape, and why he still believes there's value in keeping applications aligned with the latest framework conventions rather than simply running composer update. The conversation explores how AI tools are influencing developer workflows, the future of upgrade automation, and new ways Shift is integrating with agentic coding tools. 

The second half of the episode dives deep into Fast Laravel, Jason's course on making Laravel applications dramatically faster using Cloudflare edge caching. Drawing on decades of web development experience, he explains why page caching remains one of the most effective performance techniques available, how Laravel's default stateful behaviour can prevent effective caching, and the practical steps required to achieve cache rates approaching 99% on real-world applications.

Show Links

Creators and Guests

Host
Jake Bennett
Christ follower, software dev @wilbergroup using @laravelphp. Co-host of @northsouthaudio and @laravelnews with @michaeldyrynda
Host
Michael Dyrynda
Dad. @laravelphp Artisan. @LaraconAU organiser. Co-host of @northsouthaudio, @laravelnews, @ripplesfm. Opinions are mine.
Guest
Jason McCreary
Creator of @laravel-shift, producer of "Fast Laravel", and author of BaseCode.

What is North Meets South Web Podcast?

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]