North Meets South Web Podcast

Michael and Jake catch up on what’s been occupying their time lately, from AI tooling experiments to new developer workflows, before closing with a broader reflection on how new technologies are often misunderstood at first.

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.

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 am Jake Bennett.

[claps]

And welcome to episode 186 of the North
Meet South Web Podcast. [upbeat music]

We are back on the Spindrift kick, folks.
It is back and better than ever. Raspberry

-lime.
-Raspberry lime.

-So good.
-Sounds good.

-Yeah.
-There was-

-It's a tasty one
-... there's a, there's a brand of, I think

it's like Swedish or something cider,
Rekorderlig, and they've got like a-

-Oh, okay
-... strawberry and lime flavored cider-

-Ooh!
-... which is quite... It's those things,

when I was younger, they were great, but
they're so full of sugar, I can't drink

-them anymore. Too old for that stuff.
-Yeah, I wonder, I wonder how much sugar

this one has. I don't, I don't think it
actually has... It's 1 gram.

-Yeah.
-1 gram of sugar, and it's like, it's like

supposed to be zero grams of sugar added.
So it's, the ingredients are literally

carbonated water, raspberry puree, and
lime juice. That's it.

-Nice.
-So-

-It's just fruit.
-It should be, you know... Yeah, not too

bad, not too bad.

-[inhales] Oh, my word!
-None of that corn syrup that you guys

-like.
-Okay. Yeah. Yeah, none of that, none of

that corn syrup stuff. Just, just straight
up raspberry puree and, you know, lime

-juice, whatever.
-Amazing.

-Um, yes, it is-
-I've got 40 minutes before my, uh, my

-Claude Pro, [chuckles] my to- my, uh-
-Before your-

-... my limit refreshes-
-Before your-

So, uh, we've got 40 minutes of-
[chuckles]

So tell me real quick, you said Claude Pro
is on sale for, like, 100 bucks or

-something?
-Yeah, I think the price has changed. It's-

Okay

... uh, Claud- I think the Claude Max
subscription is now $100 a month, and-

-Hmm
-... I think,

-just looking at-
-Rather than $200?

I only looked at it very quick. Yeah, I,
because there's two options now. So

there's, there's, like, the free one,
which gives you whatever the limit is.

-Yeah.
-Then there's Claude Pro, which is 20 bucks

-a month, and it gives you-
-Okay

... five times the limit of the free one.
And then there's Claude Max,

which gives you the option now of either
five times or 20 times the limit of-

-Yeah
-... whatever. So.

Yeah, I think that I've gotten... Let me
see here. Adjust usage. 'Cause I have,

right now, I have, hmm, I have the Pro
plan, but I have the 5X more

-usage of the Pro plan.
-Yeah.

-So I'm paying 100 bucks-
-Right

... for the 5X Pro, and then there's Max,
which is, like, another... Yeah, so it's

like 50% off, it says. It's usually, it's
usually 400, now it's 200, I think is what

-it is.
-Mm.

-Maybe?
-Yep.

-I don't know. Yeah.
-Yeah, I saw that.

-Yeah.
-I just went... I don't remember why I went

to look, but I went to look the other day
and saw that it was

only $200 a year, so I signed up finally
for, for Claude. So,

-but I've, I've been using-
-$200 a month, not a year, right? Not a

-year. Not a-
-No, no

-... not a year, a month.
-Claude, Claude, Claude Pro is $200 a

-month. Claude Max-
-A month. Yeah, yeah.

-Claude Pro, $200 a year. Claude-
-A year?

-... Max, yes.
-Oh, yeah, yeah, yeah.

-So Claude-
-Sorry, sorry. Yes.

-Yeah.
-Yes.

-So Claude Pro-
-Sorry. Thank you

-... is like $20 a month or $17 a month-
-Yeah, yes

-... if you pay for a year.
-Thank you.

-Yeah.
-Yeah, yeah.

And then Claude Max is $100 a month, or I
guess $200-

-Got it
-... is still an option there. Yeah, yeah.

-So I'm not, I'm not, uh-
-Mm

-... I'm not down to pay $100 a month for-
-Okay

-... Claude Max.
-Yeah.

But I, I ponied up for the, the Pro
annual. We'll see how that goes.

-Yeah.
-So.

I, I went, I went with the $100 plan, so
I'm on the $100 a month plan, and,

[inhales] uh, it's great. I don't really
have to care so much about my token usage.

Just us- use Opus for everything and then
let it roll, let it roll. Um, I think I

-have hit token limits once, maybe.
-Mm-hmm.

But other than that, I just let it roll.
So-

-So, I mean-
-I've, I've only switched to Sonnet, like,

-once, but-
-Mm-hmm. Yeah, so I... Because... I mean,

for work, we've got team plans, and, and
those are fine, and so I, I still tend to

prefer

Opus for planning.

-Mm-hmm.
-'Cause, you know, it's got the deep

reasoning, it thinks about things, it goes
and figures stuff out. And then I use

Sonnet for

the actual implementation, 'cause it
doesn't need to think. It just takes

whatever the plan is and runs with it, so-

Take the plan and go do it. Yeah, yeah,
exactly.

-Yeah.
-Yep.

-Um, but I had been using-
-That's a good, I think a good call

-... GLM, because that was-
-Okay

... $200 a year, and that seemed to work
fairly well. And then I think-

-Is that Zed AI?
-Yeah, Zed AI. Yep. So that one seemed to

have been working okay, but I thought I
would just give it a spin because I was

looking... Minimax is quite good. I, I
played with that on the open code, Zen,

when they had that for free. I played with
Kimi as well, which, which seems really

good. Um, [chuckles] GLM seems to
hallucinate into Chinese. Like, it-

-Okay. Oh, yeah
-... it shows you the thinking, and then it

just starts spitting out, um,

Chinese characters or Mandarin or
whatever, whatever it is. So that, you

know, it's fine. It's just funny to see
that every now and then. But, uh-

-Yeah
-... I've, I've been, like, multi-wielding.

I've been, I've been doing, um, Laracon
things, I've been doing work things. I've

been working on Arbor, which, uh, is in a,
like-

-Yeah
-... very close-

-We should talk about Arbor
-... to, to usage state. I've been, I've

been using

Claude, I've been using... Well, I've been
using Opus and Sonnet. I've been using

GLM, I've been using Kimi, I've been using
AMP, all of these things. I'm, I'm right

into it now. Um, still haven't installed
OpenClau or MulkBot or Claude Bot,

-whatever-
-Yeah, I, I want

-... it is today.
-Okay, I want to talk about OpenClau as

-well. So like, okay-
-Yeah

... so I want to talk about Arbor, I want
to talk about OpenClau. Um-

-We have to be careful about turning-
-And then I want to talk about-

... this into an AI show as well.
[chuckles]

Well, I mean, so here's the deal. It's
like, that's just kind of like what's

-happening right now.
-Mm-hmm.

It doesn't have to be an A... It's not an
AI show. It's just like-

-Mm
-... it's, it's kind of like the most

interesting thing that is going on right
now.

-Mm-hmm.
-And so I want to talk... Uh, we can

briefly touch on those things, and then I
can talk about a couple other things if

you want to. Um, but then I also want to
talk about horseless carriages. Have we

-talked about this before?
-Horseless carriages.

-Horseless carriages.
-We have not.

-Okay, I want to talk about that too.
-That's a tease-

-Okay, so let's-
-... for later in the show. [chuckles]

It is. It is indeed. Okay, so couple
things here, um, OpenClau.

-Mm.
-So do you want to talk about OpenClau or

-Arbor first?
-Let's talk about OpenClau. Let's not talk

-about me.
-Okay. Yeah, so I saw Taylor post the other

day that like: "Hey, Forge, you can now
provision an OpenClau thing," whatever.

-Mm-hmm.
-So what is that? I don't even know what

that is. I, I, I was gonna go look it up,
and then I was like, "Eh," I didn't have

time. I was, I was working.... working
that day.

-So-
-So anyway, tell me about OpenClaw.

OpenClaw was previously, um,

previously MaltBot, which was previously
Claude Bot.

-Okay.
-So it's the... I think the idea behind

this is that it's, it uses whatever model

-under the covers. So you, you set it up-
-Right

... as like a tele- it uses Telegram as a
chat interface, or you can connect it to-

-Oh, interesting
-... Slack, WhatsApp, whatever.

-Telegram, okay.
-And so it's just-

-Sure
-... there is a bot, and then it uses, um,

Claude, uh, you know, Opus or Sonnet or
GLM or Kiwi. You can connect it to any

-provider-
-Sure. Okay, okay

... or model under the hood that it
supports, and then it, and it uses that.

-Bring your own key?
-Bring your own key kind of thing. Um, and

so you host it on a VPS, in a Docker
container on your Mac, if you're brave.

There was, like, a, a run a couple of
weeks ago, like, everyone went out and

bought Mac Minis to, to host their, um,
Claude Bot instances. Um, and, and the

idea is that it's, it's like a, a personal
assistant that-

-Okay
-... you ask it to do things. You get it to

schedule tasks, you get it to do
whatever. So it's like ChatGPT on

-steroids, but I think the, the main-
-In Telegram.

-Yeah.
-Like, so that's your interface.

-Yeah.
-You choose an interface, right?

-Correct.
-And so I guess Telegram is a common

-interface.
-Yeah. Telegram is probably the easiest

one, I think, from what I've seen, to, to
get up and running. Um,

and

it, it's basically, yes, Siri on steroids.
Like, if Siri actually worked. Sorry to

everyone whose

-home assistants-
-No, it's true

-... have just triggered there, so. Um-
-It's freaking true. Yeah. It's ridiculous.

Uh, yeah, so you can get it to do

whatever. You can... You know, people have
been hooking it up to their email

accounts, their calendars, reminders,
whatever. Like, all of this stuff that

-feels kind of scary, and I think-
-Like, using MCPs?

No, just, like, "Here are, here are my
username and password. Here are my, you

know, keys," whatever, just giving it
access to these, these different tools. So

it's, uh, interesting. It- a- and people
go, "You know, it's self-hosted, it's all

local." I think, well, the, the bot
software itself, you know, the wrapper

around it, is self-hosted, but it's still
shelling out, you know, using the remote

-models. So it's not-
-Totally, yeah.

It's not as self-hosted as you think.
There's, there's the ability to use-

-You're not running Ollama.
-Yeah, there is the ability to, to host

-your own models-
-I mean-

... but I don't think most people are
doing that.

-Right. Right. Okay.
-But there's, uh-

-Interesting.
-Yeah, there's, like, a whole-

I, I would like to see... I would be
interested to know kind of what people are

-doing with that, yeah.
-Yeah.

-Um-
-Jeffrey, like, Jeffrey's got some videos

up on Laracasts about it. He's been
talking about it. Um, Dreis has been

talking about it. Like, a whole bunch of
the Laravel team have been using it a lot,

and, and so now, you, you know, we've got
one-click deployment of it on, uh, on

-Laravel VPS, so yeah.
-So instead of po- instead of hosting it

locally on a little, on a little MacBook
Mini-

-Yeah, instead of-
-... or, yeah, sorry, a Mac Mini

... hosting it on your own device or, or
spinning up a VPS manually and doing it,

-you just, you know, Laravel VPS-
-Just go deploy it

... comes up in five minutes, then, you
know, OpenClaw comes up in five minutes

-on, on your-
-Hmm

-... um, environment there, so.
-I mean, it makes sense. I mean, it's like,

if all you're doing is hooking it up to
another location... Like, again, if you're

not using Ollama, you don't really need
it, the bunch of, of hardware.

-No.
-It's like if you're just literally taking

it and using it as a place to, like, say,
"Okay, my chat interface is over in

-Telegram."
-Mm-hmm.

"I want you to use my key for this
particular thing, and then I'm letting you

do particular other pieces on my behalf,"
and just kind of keeping it all there.

-Yeah, okay. Interesting.
-Mm.

-I can see that.
-Yeah.

-Hmm, cool.
-I, uh-

-Yeah
-... I still haven't dipped in yet. I-

I'll just say I'll be a late, I'll be a
late adopter to that.

-I'll be-
-I'll figure it out someplace

... I'll be a late adopter once all the
security concerns and things are figured

-out. So it's, uh-
-Mm, mm

... it's definitely interesting, but, I
mean,

my, my biggest thing with it is that, you
know, when Siri ca- and I, and I don't

know, I'm gonna prefix this with, I don't
know if I don't use she who shall not be

-named, because they're not very good-
-Yeah

... or because, like, I just have no use
for it. You know, the, the only thing I

really use it for is setting a timer, and
even that can sometimes be hidden.

-Timers-
-Like, I-

-... reminders-
-Yeah

-... calendars-
-Yeah

... sending text messages, making phone
calls, right?

-Yeah.
-Um, use it for all those things.

Like, stuff that it does well enough that
it's, you know... But

g- getting it to do all this other stuff,
I just... I'm interested to see how it

shakes out, but I'm not interested enough
to actually use it just yet.

Okay, so, so l- let's, let's play the game
here real quick, okay? Hypothetically, I

-wanna make sure-
-Hmm

... I'm understanding this correctly, all
right? The reason why I asked about the

MCP thing is 'cause that seems like the
natural play here. Like, isn't an MCP

basically a new... L- like, so if I have
a, um, I don't know, a Gmail MCP, right?

-Mm-hmm.
-That's installed.

-Yeah.
-And then I authenticate that with my

-Gmail, right?
-Mm-hmm.

It now has access probably to my calendar,
and to my emails, and to my chats-

-Yeah
-... whatever.

-Sure.
-Right?

-Mm-hmm.
-And it is exposing to my LLM, "Here are

the tools that are available to you
through this MCP." Yes?

Yeah. That would be the same way of doing
it.

Why would I... That's, that's how I would
do it, right? I mean, like, what are we

talking about? They're putting their
username and password into, like,

something else. It's gotta be an MCP,
right? For OpenClaw.

Well, does Gmail, does, does Gmail have an
MCP?

-I don't know.
-Like-

I don't know. I would assume that they
would.

-Oh, yeah, it does.
-Google?

-End of-
-Yeah

... December, they, they, they enabled it,
like-

-Okay.
-But again-

-So, so, yes
-... using an MCP only gives you whatever

-the provider gives you.
-So what is this doing? Like, this, what

are they... It's OpenClaw, like, is going
on the browser for you and doing UI

-interactions?
-Yeah.

-Is the idea?
-People... I've seen people do, do all

-kinds of things, um-
-Okay

... where it's going into uncharted
territories, and it's, you know, clicking

through... It's using Playwright's MCP to
go and click through browsers-

-Oh, interesting
-... like, websites-

-Oh, okay
-... and doing all this kind of stuff, so.

You'd have to program them all up front,
right? It's the idea.

Yeah, you'd... Well, you tell it what you
want it to do, and it goes and figures it

-out. Um-
-Okay, so-

But I think the, the, the, the, the thing
that separates it from something like just

using ChatGPT is that it, it uses its own
memory store. So it's got, like, a memory

file and a soul file, and all this kind
of stuff.... and, and so it has

-contextual-
-You can, you can-

--historical information.
-You have full, you have full control over

-the prompt, probably-
-Yeah.

-Right?
-Yeah.

-Like-
-Yeah, you tell it what to go-

-... interesting
--and write in there. You give it, you,

like, you give it it the personality you
want it to have. Do you want it to be

-sarcastic?
-Yeah.

Do you want it to have... You know, I've
seen, uh, you know, I, I mentioned Kitze.

He started this, like, Tinkerer Club,
which you can pay for access to. It's a

Discord thing. But he, he's got, like, 10
different

OpenClaw instances running, assuming
personas of, like, Dr. Cox from Scrubs,

-and, and, like-
-Cool. Okay

... Chandler from Friends, and all of this
kind of stuff. He's got like a- he's got

Saul Goodman there acting as his lawyer.
So you give all these different instances

of OpenClaw, their own personas that are
responsible for their own things, and you

give them access to their own things. Um,
so you've got, like, an-

-Yeah, okay
-... accountant that has access to all of

that kind of stuff. So

it's, it's definitely, like, he's got a
whole army of them. But the, the main

thing is, like, you can use ChatGPT and do
all this stuff, but each ChatGPT-

-Well, sort of
-... conversation is kind of isolated,

-right?
-Yeah, right. Well, and also, you can't

-install MCPs on ChatGPT.
-No.

Right? You can only do what ChatGPT is
allowing you to do.

-Right.
-Now, if they define or create a new tool,

great, and I can now use that tool. But
because it's not a local instance, I don't

have control over my own tool chain. I
only have access to what they give me,

-right?
-Yeah.

-Okay.
-Yeah.

So th- this is, this is the sort of thing
that I'm, that I'm... I think I understand

it correctly, right? But this feels like
the magic that MCPs will bring, which is,

I have access to all... I have all these
services that I use that are on the web,

right? Um,

everything's now accessible through the
web. I mean, it used to be like, there

were so many things that were stored
locally, right? And then we... Remember we

had these netbooks for a while, where it
was like there was no operating system,

basically. It was very thin, and just,
like, the idea was like, you're going to

do everything in the web. And then it was
like-

-Mm
-... well, this is a crazy idea. And then

it was a Chromebooks came out, and now
it's like, okay-

-Yeah
-... everything's actually on the web.

Like, there is no OS. It is all the web,
right? And so great, now everything's on

the web. Wonderful. Um, but what if I want
to interact with those things, not

through a UI, but we want to do it
programmatically? Great, now we have APIs,

we have GraphQL, blah, blah, blah. MCP, I
don't want to have to write every

connector. MCP is the promise that, like,
you just tell your LLM, you have this

tool, it will figure out what thing it
needs to use, and it knows how to talk to

us, and then it'll hand- handle it on your
behalf. So what I can do now is I can

say, "Hey, my local instance of OpenClaw,
you can interact with me on my Gmail. You

can interact with... You can interact for
me on my calendar. You can interact for me

through Yelp. You can leave reviews, you
can make reservations, you can an-

interact as me in GitHub. You can interact
as me, blah, blah, blah. Here are the

-MCPs that I'm giving you access to." Now-
-Mm

... my OpenClaw instance has, when I ask
it to do something, it's going to look at

its tool chain and say, "Are any of these
things relevant to what I'm trying to

accomplish?" "Yes, Jake asked me to make a
calendar reminder for whatever."

-Mm.
-"Okay, great. I'm gonna go talk to that

MCP. I'm gonna go do that thing." So, you
know, the previous iterations of, like,

same thing, like, you have she who shall
be not, not be named, right? The girl in

the box, Siri, Alexa, all the things,
right?

-Mm.
-Um, Google, all those. But the limitation

that they had, again, was like, you...
There was no way to integrate that unless

you were using the service. So if you're
using Apple, fine, you can use their

-calendar reminders.
-Mm.

If you use Google, fine, you can use their
stuff. But there was no way to do, like,

cross-stuff or to do Yelp stuff with-
using that assistant. But now you can,

right? You can roll your own. So, like,
the idea of, like, JARVIS that Tony Stark

-had-
-Mm

... where it could just do things as him
or for him, was previously thought to be

like, "Oh, that's, you know, that could
possibly exist at some point," but MCPs is

what, to me, unlocks that.

-Yes.
-I, I think. You know what I mean?

But the, but the MCP still relies on the
provider offering it.

-It does.
-And, and, and I suppose-

-It does
-... it does.

But, like, I rely on the provider giving
me those tools anyway.

-Right.
-Like, if it's not-

-So this is-
-... exposed through an API, there's no way

it's gonna be exposed through an MCP. So
it's like, uh, is, you know, the full

functionality is likely gonna be available
at some point through that MCP-

-Mm
-... um, which means I don't have to write

all the tooling for it. It's done. Like,
the LLM-

-Yes
-... figures out the tooling, right?

Yeah. So the... Well, this is then where
the difference comes from. So they've got

the notion of ClawHub, which is skills and
plugins and things like that, that you

-can-
-Yes, yes

... imbue with, um, different things. So
there is, like, a CalDAV for calendar, and

it'll go off and, and then it knows how
to deal with calendar. But

it's got browser control, so

OpenClaw can, can browse the web, it can
fill forms, it can extract data from

-anything.
-That's super cool.

-So it doesn't, it doesn't-
-Yeah

... need a, like, a Google Skill might
encapsulate this.

-Doesn't need a plugin, yeah.
-But it's not talking to an MCP necessarily

or, um, you know, using an API. It is
going, like-

-It's using the open route
-... it's opening the browser.

-Yeah.
-Yeah, it's u- it's, it's opening a

browser, um, it's

putting in your username and password, and
it's going and logging in, and it's

reading your emails, and it's doing things
in there, so...

-Super cool.
-It's, um-

-Yeah, you have the full power-
-Yeah, the, right

... of the web a- available to you at your
fingertips.

Yep, but it, you know, it can, it can post
to Twitter, it can watch and transcribe

YouTube videos for you. It can do all
kinds of different stuff, which is

-interesting. Um-
-Yeah.

But yeah, I'll let, I'll let everyone else
kind of figure it out and, and bring

back, you know... It's interesting
watching Jeffrey's journey. He's tweeting

about it, and he, he had it set up like a
daily vocabulary challenge, 'cause he

wants to learn, you know, new words and
things like that. So

very good. So he told it, "Every day at
sometime, send me a new word of the day

and tell me about it and how I would use
it, and what- whatever." And it decided

one day to just text his wife instead. You
know, he sent the message-

-Oh, my gosh
-... to Jeffrey's wife.

-[chuckles]
-And, and he goes: "Why did you do that?"

You know. He asked... He asked... He set
up a, a scheduled task to go and

look on Reddit and Hacker News and Google
and whatever else, and look for people

talking about Laracast and, and seeing if
there's, like, anything negative out there

and, and bringing back, like, a summary.
And he, he tweeted yesterday that the

summary that came back

had, like, some story that OpenClaw had
just made up.... but it didn't exist-

-Completely fabricated.
-There was no link to it. Completely

fabricated it, because it... You know,
these things are all designed to kind of

be useful. You know, that's their, their
purpose in, in existence, is to be useful,

and so it didn't wanna tell Jeffrey,
"I've got nothing to tell you." It just

made something up, so it looked like it
did something.

'Cause he sort of investigated it. He
basically, like, did like, you know-

-Yeah
-... a deposition with this thing. It was

-like, "Why did you do that?"
-Mm-hmm.

And it's like: "Well, because I wanted to
be useful, and, like, I already... You

-know, I was trying to-
-Mm

... regain trust from, like, this mess-up
I made yesterday."

-Mm.
-"And so I didn't wanna, like, give you a

bad news that I don't actually have any
information, so I just made something up

-to make you happy."
-Yeah.

-And yeah, that's crazy.
-Yeah, so it's, uh, it's cra... It's--

yeah, it's definitely crazy. I know, I
know that, um, Simon Frasciootis has been

using it, uh, to build out

a tool to help him. So he's filming AAU
basketball games up on the North Coast,

where he lives, and so he's taking all of
the clips, throwing it into a folder, and

he, he had OpenClaw build a native Swift
app that would go through, and it would

pluck, um, you know, stills from the thing
that you can scrub through to see, you

know, what happened. It then looks at the
audio and, and figures out if there's any

peaks in there, to kind of figure out, was
there some play that got everyone

excited? Was there... You know, and then
it goes and figures out, okay, groups it

by team, looks at the colour of the, of
the uniforms. Okay, these are orange, this

is blue, and, and does all this kind of
stuff for him. Then he's like, he's built

this. He's just asked OpenClaw to go out
and do it, and it's gone out and done it.

So there, there's definitely, um,

time and place to do it. I think having it
in Telegram, that you could just message

it from anywhere, and off it goes and, and
does whatever, is kind of cool. He's

given it his own, like, gi- he's given
OpenClaw its own

GitHub user account, and it goes and just
creates repositories-

-That's cool
-... and shares all this kind of stuff in

there. So it's isolated and can't be
disruptive to Simon's things, but it has

access to, you know, push code and, and
have it reviewed and things like that. So

there are, there are definitely lots of,
uh, interesting s- things that can be done

with it, but lots of, uh,

interesting, as in, I don't know that I
would do that, kind of things that people

are doing with it. So I, I'll let other
people figure out the, the rough edges in

the meantime, but there's... You know, for
me, being fairly late to this, but at

least on board now, um, I'm, I'm okay
opening up

Ghosty and firing up OpenCode and just
typing in there, like, "Go and do this

thing." I'm okay going to ChatGPT and, and
doing stuff in there, so

it's, uh, it's interesting times for sure.

Yeah, it is. It's awesome. I, I'm, I'm
here for it. Um, I've had some friends

recently be like: "Man, I would go back to
pre-AI stuff if I could."

-Mm.
-And you guys are crazy.

-Yeah.
-That is absolutely crazy.

-Definitely, and I would-
-I, I would, I would not wanna do that.

-I mean... Yeah.
-It's like a power tool.

Yes. I think still the biggest issue with
it is, like, you can, you can do so much

more, so much faster, but in a corporate
environment, we still have

responsibilities, and we still, um, you
know, compliance, quality,

maintainability, there's all of that kind
of stuff. And because it can write a lot

of code very quickly, you know, in a
couple of minutes, lots of stuff happens,

but you still need to go and spend half an
hour, an hour, whatever, reviewing it,

-going back and forth, refining-
-Yeah

-... et cetera, et cetera. So-
-And so, like, and that, that's kind of

where I'm at with my guys, too, is it's
like, listen, here's the deal. The AI is

helping to write some of this stuff. You
really have no excuse for not making this

code really beautiful, like, and, like,
very clean.

-Mm.
-Because it's getting you all the rough

stuff out of the... Like, the stuff that
you used to have to do, just to sort of,

like, get the first version out of the
way, is done.

-Mm.
-Like, it's already-

-Yeah
-... doing that. It's writing the tests for

you, for goodness' sakes. So now just go
to go refactor the code and make it look-

-Yeah
-... really nice, and make it feel

maintainable, like, or not feel maintain-
make it maintainable, right?

-Mm.
-It's already got the for each statements

-in there. Now go use a collection.
-Mm-hmm.

Now go... Like, don't just be lazy about
it. Like, take the time-

-Yeah
-... to actually go through, and now you

-get to be the senior developer.
-Mm.

You need to be the... You're the one who's
coming behind. This is not just save you

time, so you can go play

-Counter-Strike or whatever.
-Right.

You know, it's like... Yeah, actually go
through-

-Counter-Strike.
-... and [chuckles] yeah. Anyway, um,

okay, there's that. Arbor. Let's talk
about Arbor quickly.

-Mm.
-And then we're gonna talk horseless

-carriages. All right.
-Yeah.

Arbor.

Uh, I've just put some finishing touches
on it before we jumped on the call, and,

and we're going to start using it at work
for managing our work trees. It took a

-little bit longer to-
-So tell us what it is. Yeah, tell us what

-it is before-
-Yeah, so Arbor is like a work tree

management tool, that kind of sits on top
of Git and kind of provides the ability to

clone down repositories and set them up
in such a way that you can defer to your

agents to then work on multiple branches
and different features and fixes

-simultaneously.
-Work trees. We talked a little about work

-trees last time, right?
-Yeah.

So this is just a work tree management
tool for you to be able to spawn off

multiple agents at the same time to go
work on parallel features, essentially.

Yeah. There's, there's, there's two ways
of doing this. You can clone down the

repository into different directories
multiple times.

Totally valid, nice and easy. Stay with
what you know. Arbor and, well, work trees

allow you to have one directory that then
tracks all of these different branches at

the same time and allows you to have them
all in one directory simultaneously. And

Arbor kind of then gives you the ability
to

manage all of these things. It, uh, helps
you keep them in sync. Uh, you know, if

you've got your, your main branch, you can
then sync your feature branches easily.

This is just a command, and it will track,
"Okay, is this your main branch? Do you

wanna do a rebase or a merge?" And then
every time, you just Arbor sync, Arbor

sync, and it'll pull down rebase and, and
do what it needs to do there for you. So

I've, I've started adding all these little
niceties on top of it. It's got the

ability to scaffold your applications, but
it also has this notion of presets. So it

will detect that you've got a Laravel
application, and it'll go through, it'll

copy the env example to .env. It'll
generate a key, it'll run the migrations,

um, and seed it as if they exist. It'll
look to see if you've got a package-lock

file and run npm and npm run build, and
all that kind of stuff, you know,

because-... as Taylor has, has said
recently, Laravel really is a good

framework for agentic development because
it is conventional, because things are in-

Yes

- certain places. And so there are
assumptions that can be made about a

Laravel project based on what is and isn't
there, so that you can then run these

-things nice and easily. But then, I-
-But wait, according to Uncle Bob, there

should be nothing obvious about the fact
that your app was a, application is a

-Laravel app.
-Yeah, but-

It should just be your domain. That's all
that matters. Larav... The fact-

-Yes
-- that it's a Laravel app should be

-completely invisible.
-Yeah, yeah.

-All right, eat your words, Uncle Bob.
-Mm.

Do you remember Jeffrey Way and Uncle Bob
got in an argument about that, Laracon,

-little while ago?
-Yeah. I think, yeah.

This is never gonna make it to Uncle,
Uncle Bob's ears, so I don't care, but-

No, it's fine. It's, uh, I think, I think

it's possibly that he has maybe had his
time in the sun, and development is-

[laughing]

-Moving past him
-... moved significantly. But yeah, so

it's, you know, it knows the default
things, but then for our application,

we've got multiple databases. So from the
preset, we can then go, "Okay, go and

create this extra, these extra databases.
Go and seed these extra databases. Go and

write these extra environment variables."
I've got it hooked up to one password, so

-it'll go and inject all of the-
-Nice

-... credentials-
-That's cool

... out of one password into the ENV file.
So basically, this, this scaffold

process, 'cause we've got so much to do,
and we build our assets for multiple UIs

and all of this kind of stuff, it takes
two minutes. But what we're doing is

running Arbor work, branch name, and it
will go and do all of that stuff. Um-

-That's super cool.
-And it's like when you go into that

directory, you can run composer test or
Artisan test, or, you know, PHP Artisan

test, or Vendor bin, pest test, or
whatever you're doing, and know that it is

ready to go,

and it will just run the test suite. That
all of the keys-

-That's super cool
-... that need to be there to function is

-there.
-Yeah, I love that.

That everything is kind of just set. That
it'll, it'll link into Herd because it

detects Herd is there. It'll create
databases with unique suffixes so that,

-um, you know-
-Ooh!

-... it's isolated-
-That's interesting

... this branch is there. So if you're
using SQLite, it's easy. You just create a

new database.sqlite file, and that's all
self-contained-

-Yeah, smart
-... within that branch. But if you're

using MySQL, we can't use the same
database.

-That's what we use.
-Yeah, you can't-

-This is a trick for us, too
-... You can't use the same database.

-I didn't know, yeah.
-Hmm. Because if you've got multiple work

trees, if you've got four branches at
once, and you run-

-Right
-... tests in all of those four at the same

-time-
-Tests, yeah, you're clobbering all of them

... You're gonna blow away. Yeah. So we've

got, like, a noun-adjective list, and it
will just, like, smoosh them together, and

then it'll go, "Okay, this is the key for
this,

um, for this work tree," and it'll create
a database.

Does it clean up after itself? Does it
kill your database-

-It does
-... after the fact?

-No, it does. Yeah, yeah.
-See? Okay, so here's what's interesting,

right? So, uh, I feel like there's been,
like, three tools that have come out

around this at the same time. So Conductor
is a tool that David Hemphill uses, and

-he-
-Mm-hmm

... did a whole write-up about how he uses
sort of hooks and stuff in Conductor to

-do kind of what you're doing.
-Yeah.

Um, which may be similar, but like, you
know, yours is a completely customized

solution. You're not at all beholden to
the creators of Conductor-

-Right
-... to build in tooling that you want,

-right? You could just do it-
-Yeah

... which is pretty cool. Uh, software
for, uh, an audience of one, right?

-Mm-hmm.
-Which is the wonderful thing about AI. Um,

there's also another tool that we talked
about on Laravel News last week, which is

doing similar to what you're doing, but
I'm sure not exactly what you're doing.

-Mm.
-Uh, it mentioned the whole SQLite thing.

MySQL is a very interesting wrinkle, and I
love that, that you're doing that.

-Yeah.
-So super cool. All right. Interested to

-see Arbor. I think that's really neat.
-Yeah.

-And, um-
-Yeah, so I was, um-

-Let's check that one out.
-It's all... I think I've got it to, like,

-version 0.9.1, and so-
-Did you see Parfait, by the way? I'm being

-ADD right now.
-I did see-

-Did you see Parfait?
-I... Well, Parfait is... I saw it.

-Leonard, Len Woodard?
-Yes, Len. Yeah, yeah, he reached out to

-me.
-Like the T-

-Yeah, I did-
-The Tui crap?

... The Tui thing that he's been building,
yeah.

-With Arbor?
-I did. He-

-Yeah.
-I spoke to him the other day.

I'm saying, I'm saying, like, I wonder if
that would be helpful with Arbor.

Yeah. Um, so I've got a, I've got a ver- I
mean, it's a v- it's on GitHub now, um,

and you can pull it down and use it. So I
was j... I've got it to a place where

it's, it's ready to go

into our work repo to be used, so the, the
configuration's in there. But I was

writing the documentation for it

to, you know, tell the team, "How do we,
how do we spin this up?" And I was, I was

writing these grim things in there like,
"You've got to pass the OP_volt and

OP_item environment variables

when you run Arbor work, because we need
those variables to go and figure out where

do we pull the credentials from to then
inject into the-

-Okay
-... ENV file." And I'm like...

-Yeah, sure.
-"Now, that's, that's not good developer

experience. I shouldn't have to tell that,
and people have to remember it." So then

I went

and I said to Claude, "Hey, let's put some
pre-flight scaffolding steps in here with

conditions that, like, these environment
variables need to exist. This environment

-file needs to exist."
-Yeah.

And so did that, built it all out. So

got that all done, rewrote the
documentation again, and then realized if

you, if you go install and you don't pass
the flags to it, it doesn't actually set

the, the version properly, and it doesn't
set the commit and all those kinds of

things. So I'm like: Okay, how do we get
this running in, in Brew? So it'll be

available in Brew, which then involved
creating, like-

-That's cool
-... an organization to put it in and

figuring out how to set up a Homebrew tap.
Which, of course, um, Claude made all of

this very easy, 'cause I just asked it
what I wanted to do.

-Of course, yeah.
-And it told me. And it told me, you know,

"Go and create a key here, call it this,
put it into your-

What did you write it in? Was it Go or
something, or what did you write it in?

Uh, Arbor is written in Go. The Homebrew
stuff is-

-Yeah
-... is Ruby-based, so yeah.

-Okay.
-But it's gone and done all this, and then

it's gone and created a GitHub workflow.
So when a release is published, it'll go

and, like, pull down all of the binary
information, all of the checksums. It'll

go and update this

Homebrew tap thing, and then you can just
do an Homebrew update, and it will upgrade

whichever it is, and it'll pull down the
new version. So-

-That's super cool
-... excited to, uh, get that going. And

like, you know, and now, uh, the, the
Codex desktop app comes out, has work tree

support, or Conductor exists. Like,
there's all these things that I'm like,

"No one will use this except me at work,"
which is fine, but it was just a fun

experience. As I said, at... When I, when
I published the video about it, uh, last

week or the week before, it was-... it was
less about making something that I

expected the world, quote, unquote, "to
use," and more about learning how to use

-AI to, to get it to-
-Yeah

... do something that I think is of a, of
a decent quality from a, from a software

perspective, without actually knowing the
language that it was written in. Like, I

wouldn't have written this in Go, but I
could-

-Yeah
-... read the Go that was being written to

understand what it was doing, and then
learning to use different tools to kind of

validate the idiomatic practices that
were being implemented, that it was, you

know, consistent with itself. And, and,
and that kind of... W- it was more a

learning process of: How do I build this
using what's available

as AI tooling? More so than

building a tool for managing work trees.

-So-
-Yeah. Yeah, makes sense. I get it. I love

-that.
-It's, it's there now. So yeah, after,

after we finish recording, when my lunch
break is over, it will, uh... my Claude,

[chuckles] my Claude limit for the
five-hour period will have reset, and I'll

-be able to finish that off.
-Love it. Okay, we are at 32 minutes, so

we've got a couple minutes left here. Not
very long- not very much time. All right.

-Tell me about the car and the horse.
-Horseless carriages. All right, so this is

an article. I might have referenced this
at some point, but it was basically

talking about this idea of... Let me, let
me just see if I can pull it up.

Horseless carriages. I just did this
today.

Ah, there it is. "AI Horseless Carriages."
Okay. Here is-

-Peter Koomen?
-... sort of, uh, let me see here. Yep,

-Peter Koomen.
-Go.

All right, so here is what he said:
"Whenever a new technology is invented,

the first tools built with it inevitably
fail because they mimic the old way of

doing things. Horseless carriages refer to
that early motorcar design that borrowed

really heavily from horse-drawn carriages
that preceded them." So they have an

example in the picture of this carriage,
this massive wheel with, like, basically

this steam coal, you know, engine on the
back of it.

-Mm.
-"The brokenness of the design was in-

invisible to everyone at the time, and
laughably obvious after the fact. Imagine

living in 1806 and riding on one of these
for the first time. Even if the wooden

frame held together long enough to get you
where you were going, the wooden seats

and lack of suspension would have made the
ride unbearable. You'd think, 'There's no

way I would choose an engine over a
horse,' and you would have been right, at

least until the automobile was invented. I
suspect we're living through a similar

period with AI applications. Many of
them-"

-Mm
-... "are infuriatingly useless in the way-

in the same way that Gmail's Gemini
integration is. The old world thinking

that gave us the original horseless
carriage was swapping a horse out for an

engine without redesigning the vehicle to
handle higher speeds. What is the old

world thinking constraining these AI
apps?" Okay.

-Mm.
-So he goes through and he says, "This is

how we've been doing it," right? "We write
a program, and then we basically say: How

can we slap AI on top of this to make it
better," right?

And that's essentially the horseless
carriage. And we've been trying to do

this, I think, at work. So what we've been
trying to do is we've been trying to take

our data entry process for some of our
claims and say: How can we speed this up,

make this better, using AI? And what we've
been doing is essentially trying to use

AI to do almost like OCR extraction, which
is fine, but like with OCR extraction,

you kind of only have, like, it's either
accurate or it's not accurate, and that's

-it.
-Mm.

That's what you get, right? Um, you
can't... Like, it's either right or wrong.

It, it's either 100% or 0%. There's no
real in between. Um, and so that's what

we've been trying to do, but it's been
difficult and, and sort of frustrating

because it's like, okay, well, unless we
can get it to a really high percentage of

accuracy, we can't really use it, um,
because it's just gotta be accurate. So

the trick for me was thinking, like, okay,
is this a horseless, horseless carriage

design? We're taking what used to be,
like, a just simple screen where people

can enter in data and saying: We're going
to pre-fill that data with the AI.

Instead, what I think we need to do is
essentially redesign the user interface to

say, "No longer is that the case." What
we're gonna do instead is we're gonna say,

"AI is really good at categorising
documentation and making guesses at what

party it thinks these particular locations
are referencing." So like, "Hey, here's

an address block. Do you think this is
claimant one, claimant two, or is this an

insured party? We think it's claimant one.
Do you agree?"

-Mm.
-"Yes." Okay, if you agree, well, now what

it's going to do is it's not gonna make
you fill that information into those

-fields. It already knows what the names-
-Yeah

... of those fields are and how to fill
them in, so it just fills them in. Now,

was it accurate 100% at the start? No, but
it doesn't have to be-

-Mm
-... because the human is really good at

recognising, "Oh, in the context of this
document here, I can see this is an

estimate. This is definitely going to be
the insured party." Click Insured. They

-know that-
-Mm-hmm

-... right?
-Mm-hmm.

The system probably even knows that, and
if it gets enough thumbs up in a row, it

can stop even prompting and say, "I'm 99%
sure this is the insured party because

you've told me it is. Every time it's been
on an estimate and it's been this way,

it's the insured party. I'm not even gonna
ask you anymore. I'm 100% sure on this

one." However, there are these other two,
and how do we now use what AI is giving us

to be able to create new user interfaces
that allow it to do what it's really good

at, and then allow the humans to do what
it's really good at?

-Mm.
-So instead of just slapping it all into

there, and then now you have no
differentiation between, like, well, what

did the AI fill in? What was just part of
OCR previously? What did somebody else

fill in before I did? I don't know. I have
to go parse through that information and

just go look through the docs myself
anyway to confirm it. No. No, we're not

gonna do that. We're going to grab the
section of the page, we're going to show

it to you, and we're gonna ask you to tell
us which one it is and/or if you agree

with our suggestion or not. And then after
you click that, it does all the manual

labor that you would have had to do before
of filling all that in, and now, instead

of taking three minutes to load a claim,
it takes 15 seconds because-

-Mm
-... you're just clicking through yes, no,

-or whatever, right?
-Yeah.

So I think this is an interesting thing.
Um, I think as we're all pursuing this

idea of, like, how can we use AI
effectively, I really do think we have to

-sort of reinvent it a bit.
-Mm.

Like, what are the things that we're
trying to slap it onto that it's like,

"Okay, rethink how the process could be
done if you had-"... this when you were

first designing it? You know what I mean?
Um, and so anyway, it was, it's a really

interesting read, and he has some really
good examples of how he would design Gmail

if he was starting over, right? This
Gemini integration, instead of it just

being like, "Hey, we'll do this for you,"
it's, "How could you use it, uh,

effectively to help the user?" One of the
things that he brought up that was really

interesting is that the pre-prompting for
Gemini is fixed. So if you tell it to

write an email for you, you can't imbue it
with any of your personality or any of

your preferences, really. It's sort of
pre-programmed already for you. So what

his suggestion was on that is, it would be
really nice if I, as a user, could write

my own prompt to say,

I w- you know, I'm, I'm a 34-year-old guy
with, like, two kids and a wife. I enjoy

-this type of thing.
-Mm-hmm.

I've been working in this environment for,
like, 10 years. I'm experienced, I'm a

professional. Um, my emails will commonly
have misspellings, and that's okay, I

don't care. It doesn't really matter, and
I'm okay with the misspellings, 'cause I'd

rather save the time. Uh, my emails are
terse, but they're not rude, right?

Whatever. Okay, now, with that context, my
daughter is sick, I can't come in today.

-Tell my boss.
-Mm-hmm.

Okay, well, that puts out a much different
response than if it just uses Gemini's

default prompting, right? And so this idea
was, "Hey, I need to be able to write my

own prompt," and you can't currently do
that in Gemini, uh, in the Gemini

integration. So anyway, it's an
interesting article. I would suggest

reading it, and it's, it's really helpful,
and I've just been thinking about it a

lot. So I'll let you know how it goes.
Um...

-Yeah, cool.
-Our Andy, Andy Hinkle on our side has been

the genius behind building this
integration on our data entry product.

It's super cool, the stuff that he's
doing. It's unbelievable. I don't

-understand half of it.
-[chuckles]

Every couple of days, he's telling me
about these new breakthroughs that he's

had, and, um, it's really fun. So yeah,
I'll definitely keep you updated with our

-progress-
-Yeah

... and kinda how we're going on it, but
it's been fun.

Cool. All right, I like it. Sounds like a
good place to wrap.

All right. I agree, I agree. Uh, tell me
the episode number, Michael. What are we

-on?
-186.

186, folks. Uh, check out show notes for
this episode at northmeetsouth.audio/186.

Hit us up on Twitter, on X, on Bluesky,
@jacobbennett, @michaeldirindo, or

@northsouthaudio. And if you have any
questions, we'd love to hear from you.

Rate it up on your podcatcher of choice.
Five stars would be incredible.

[upbeat music] Thanks so much for hanging
out with us, everybody. We'll see you

-again in two weeks.
-Bye.

[upbeat music]