← Previous · All Episodes · Next →
Shiny New Tech: LLMs, iPhones and Ray Bans Episode 29

Shiny New Tech: LLMs, iPhones and Ray Bans

· 47:29


CJ: Welcome to build and learn.

My name is CJ.

Colin: And I'm Colin.

And today we are catching up on a bunch
of tech that has dropped recently.

Sprinkle AI, LLMs, and some
new stuff from Facebook.

CJ: Very cool.

Let's get into it.

Colin: So I think when it first came
out, you could ask it to get things and

I don't know if it was a hallucination,
but you could like give it a URL and

sometimes it would give you data back.

Like I told it to go look at my
LinkedIn and I think it kind of

hallucinated based on what it had
already scraped before the cutoff date.

But yeah, the big news now is that I guess
there is no cutoff date for chat GPT.

So I don't know when that happened or,
or if you're going to see better or

worse results because now you also have
data that it's going to start teaching

itself based on blog posts and stuff that
people have been generating with ChatGPT.

CJ: Yeah.

It was fun.

The, that the article that you sent
me or the sort of I don't know if it

was Tik TOK or Instagram where Justin
Jackson was like recording, showing a

podcast recording that was generated.

And a while ago, like several
months ago, I listened to a podcast.

It was like an AI news podcast that
was generated by two AI hosts and they

still sounded really robotic, but the
one that you showed me was pretty legit.

And this guy, Brad, the video editor
that we used to work with at Stripe also

recently sent me something just like.

Kind of for fun.

He was like, Oh, I was working on
some videos of yours and needed to

like change some words that you said.

So I just generated some
stuff just like for fun.

Colin: And with Justin's example,
he said that it was only on 30

seconds of his voice that was used.

So I've been playing around with
this site called 11 Labs that does

a bunch of AI generated stuff.

And like, we just replaced the voicemail
for our coworking space with it.

Because we don't really answer the phone
and it's like either spam, a scammer.

Or it's a legitimate person who
wants to come in for the day.

And so we just made it more obvious.

And I set up Calendly with Stripe and
it was like, if you want to come in for

the day, like the AI sounds very human.

And it says to go to the website.

And we just put that up on Tuesday
and we've already had two people

book through that, which was kind

CJ: no way.

Colin: Yeah.

CJ: That's awesome.

Does it give you like, what,
what is 11 labs doing for you?

And is it kind of like a one
time thing or is it hooked up?

So now they handle all your calls or

Colin: So I hacked it a little bit.

I, if you go to the website and we'll
put it in the show notes, you can

just type in, I think it's like up to,
it's like a tweet amount of data like

a sentence and just as like a demo.

And what I did was I put what I wanted to
say in there and it was longer than that.

So I actually did a few of
them and downloaded them

and put them into Descript.

And then I, I use Google voice.

So we're, we're kind of like DIY hat.

Like we don't have a Twilio
IVR or anything like that.

And so I.

I had to play the voice on my computer
and record it into Google Voice.

And so now we just set Google
Voice to always default to

voicemail and there is no IVR.

There's no phone tree.

You don't get to hit two if you
want to do a day pass or whatever.

But it just, Tells you
what you need to do.

And if you are trying to get
in touch with us for any other

reasons, send us an email.

And it's just something we have
to do to kind of keep costs down.

Like we just, every time the phone rings,
I'm like either in a meeting or just

like, Ooh, it's probably going to be a
scammer that I just don't want to talk to.

And so yeah, I mean, I think most
of our members prefer the working

with us on the internet anyway.

And once they get here, then
we get to have the human touch.

CJ: Yeah.

It's very different from this home
services stuff that we're doing.

Like a lot of people who want
their home painted want to

talk to somebody on the phone.

And so we're kind of having the
opposite situation where we, we

have to get on the phone with
people like several times a day.

And that is a problem that
we've been trying to solve.

And we've made some really
exciting progress this week.

Nick on our team is working on this
thing where basically if you come to

the website, you can sort of get an
estimate by clicking a bunch of buttons

and telling us some information about
your, like the job that you want to do.

And that will create this API call that
goes to our back end and, you know,

uses a bunch of data and calculator
and gives you back some like structured

data, but he's doing it from the chat.

So like using the chat messages and
then I think we're using anthropic to

just extract the features from chat that
would be useful in the API call and then

building the Jason based off of like what
people talked about in the thing so that

you can Create the sort of estimate from
what people said, which is, it's so cool.

Like the, the direction and
stuff is going, it's just insane.

And fun.

Colin: What's cool about that is it's
not really replacing anybody, right?

Everyone's talking about how
we're replacing jobs and things.

It's like, do you just get to talk
to more customers if you can get

a summary faster, if you can get a
quote faster, it's just making you

more powerful and doing your work.

And I could see it being like,
okay, they had a text with us.

They had an email.

They filled out some form.

We had two calls, but it wasn't with me.

Just tell me like what this person wants
done so that I have context before I give

them a call is also just super powerful.

CJ: Yeah.

My grandmother she, I don't know if
I've told the story on the pod, but

she was like trying to get ahold of
some doctor and she called the hospital

and was on hold for like three hours.

And then Like the other line rang and she
thought maybe it was the doctor calling

her back and she like went to go pick up
the other line accidentally hung up and

then in a cry because she was just like
so frustrated with Having to wait this

long and I was like Grandma, that's not
going to be like a thing in 12 months.

Like people are not going
to talk to you on the phone.

Like you're going to talk to a computer
that's going to seem just like a

human and we'll be able to scale
these just infinitely and trying to

explain that to her was, it was tricky,
but yeah, I think that's definitely

the direction we're going, right?

Like make it so that people can
interface with your company and your

data in whichever way they want.

And then you can kind of like build these
abstractions that make it so that you can.

Automate processes without having
to have, yeah, without having to pay

someone to pick up the phone and answer
questions that can be done automated.

Colin: Yeah.

There's definitely a humanness that
we can talk to a little bit with

like this this other thing that just
happened today, the meta smart glasses.

Some people have been kind of lamenting
the loss of human humanness or human

connection and that you have this,
Potentially this piece of glass between

you and everything you experience,
literally, like you know, what is

the wandering around town and just
wondering what a thing is versus

like having this, you know digital
assistant that's like trying to tell

you what everything is as you're going.

I didn't watch the announcement.

I saw some stuff go by and like
saw some screenshots and stuff.

How did you follow up on this?

CJ: I just watched a few clips
from the announcement and.

I am really impressed.

I was not into the Google Glass thing,
but the fact that they partnered

with Ray Ban and the glasses look
dope and also like the camera that's

in them is I think pretty close to
the same 12 megapixel ultra wide

camera that's like in an iPhone.

Not the main camera, but like, it's
a pretty good camera and it has, you

know I think it has like the speakers
and it has The Qualcomm chips and

everything like I am blown away,
especially at like a 300 price point.

It's just mind blowing.

So I am, I'm definitely intrigued.

Like I know there's, there's like,
I don't know, questions about

how it's going to impact our like
psychology and society and stuff.

But just from like a tech perspective,
I was pretty impressed and like excited.


Colin: I haven't seen the form
factor for like batteries and

battery life and all that.

Like, are you holding like a little
thing in your pocket that's your battery?

CJ: so the glasses case, Looks just
like a glasses case, except it has

like a USB plug in the bottom and

Colin: So it's

CJ: a button.

Yeah, exactly.


So it'll be just kind of like,
oh, and it's supposedly they

have 36 hours of battery.

I'm sure it's going to be like 10,
but like that's what, yeah, exactly.

You know, they're going to
claim more than whatever.

And I'm sure right now too,
they're not promising that the.

You'll be able to like, you get
the all the AI features right away.

They're like, it's going to come
down the road and you'll be able to

sort of upgrade and use this, like
the new software as it comes out.

But even just for the camera
feature, I think it's pretty sweet.

It's like not like mission
impossible, but there's definitely

spy movies where people had like,
you know, cameras in the glasses,

maybe like James Bond or something.

And I'm like,

Colin: Well, Snapchat had glasses.

CJ: Oh yeah, yeah, yeah, yeah.

But it's still, it's still like, I
feel like the, the, they look cool too.

They look like, like actual
glasses that I would buy.

Like, I don't know.

Colin: yeah.

And they're not 3, 000 like the
Apple vision pro, which I know is

a very, very different product, but
there's that, that kind of valley

that we have to cross when you start
pricing something that expensive.

And even what you're talking about,
like, I kind of just wish Apple

would give us a webcam, like take
the camera out of the iPhone.

I know you can pair your iPhone
as a webcam, but I don't, I

like, I want my phone, not on my.

Computer necessarily, like just
give me a really good webcam because

we've talked about this before.

There's the opal and there's the
logitech's and the brio's and the cam

links with the DSLR and all that stuff.

It's just like a lot of stuff that
I don't really want to have to have.

And it'd be nice to just throw up, you
know, the new iPhone 15 camera with all

of its crazy features and call it good.

CJ: 100%.

Yeah, fully agree.

I, when I started at craftwork, I tore
down like all my dev rel gear, all my

recording gear and like, put it away.

And I was like, Oh, if I recording more
videos, I'll just do it with no camera.

And then I was like, Oh, I
want to record this one video.

So let me start getting some
pieces, like bits and pieces out.

And then I was like, Oh, I need my stand.

And I need my like this,
that, and the other.

And now I'm like almost back
to having like all my stuff.

I don't have as many like lighting
lights or whatever, but yeah, it

would be amazing if they just had
like a killer opal replacement.

Colin: Yeah.

Well, and I was looking at screencasting.


Did you see that come out?

CJ: that was launched.


That looks exciting.

Colin: Yeah, I might sign up for that
because One I mean his his camera and

lighting setup is just so good, but i've
also seen what it looks like It's a lot of

stuff on, you know, outside of the frame.

But very cool if you're interested
in creating really professional

screencasts, what I like about what
he's teaching is also just the tips

and tricks around how to iterate and
make, put out videos in a quick way.

So, you know, how to think
about your content and then.

How to create these workflows so that
every single one of you know, every

30 minute video or every 10 minute
video doesn't take an hour to produce.

CJ: Are you, is there any news
on the content slash video

front for your current role?

Colin: It's something we want to do.

It's still something we're looking at.

We're focused a little bit
more on docs and getting all

that stuff figured out first.

But yeah, text is easier.

It's easier to update, easier to diff.

CJ: Yes.




Are going back to the iPhone thing.

Are you gonna, what do you
think about that announcement

and you're going to upgrade?

Colin: Yeah, I guess we've had a bunch
of tech updates since we last recorded.

I'm rocking the 12.

I think the phone's fine.

But the USB C is tempting.

My physical charger doesn't work.

So I have to use a MagSafe charger.

So like it's, it's on its last legs.

I think I know some people who are
still rocking the eight and the

six, which is amazing that they're
still supported and still work.

Like my grandma still wants the home
button, which I actually just discovered.

I think the SE, iPhone SE
still has a home button.

So, which is good.

Cause I think she would not, she would
figure it out, but I don't think we

need to go down that path with her.

Like she wants the button.

She wants to know when she can,
you know, always press it and

go home and stuff like that.

So I think I'll probably
upgrade eventually.

How about you?

CJ: I upgraded my phone was
like insanely old and broken.

Like the back was shattered.

The front was shattered and yeah,
the battery life was abysmal.

And so it's nice.

I think it's basically the same phone.

The, like the unboxing
and update experience.

Was the best I've ever had with Apple.

Like it was literally just, I pushed
like five buttons and then I have the

exact same, like everything is the same.

All the apps are the same.

I was logged into like
almost everything already.

Yeah, swapping over the
eSIM was super easy.

It's fast.

It's lighter than my old phone.

So I'm really happy about it.

Colin: You probably don't
even have a sim slot.

Do you?

CJ: I don't think there's a SIM slot.

There's like a, there is
some sort of slot, but.

I don't know what it's for.

Colin: Yeah, because they're I mean
They're all unlocked eSIMs now Which

if you travel internationally the
eSIMs are just like huge unlock.

Have you used that

CJ: No.

Colin: countries?

CJ: No.

Colin: Yeah, I guess we're kind of just
rambling here today, but There's a,

there's a few apps where you can just
buy, like it used to be, if you're like

going to Italy or going to Portugal,
you'd have to like go find a SIM

card at the airport or gas station.

And now you can just be like, I'm
going to be in Portugal, download

a SIM card for Portugal, and
it just shows up on your phone.

And when you're there, you're online.

So, you know, you got to be able to
use, you know, transport or whatever

you have your phone ready to go.

CJ: That's super cool.

Yeah, I usually just leave it off and
try to get Wi Fi wherever I can go.

Colin: Yeah, there's that too.

CJ: yeah.

But yeah, I like it so far.

I think I don't know.

We'll see.

We'll see how it goes.

It's a phone.



What is what do we got going on here?

Oh, I guess once, yeah.

We talked a little bit about
this a while ago, but kind of an

interesting business model, right?


Colin: Yeah, you want to
tee this up for everybody?

CJ: sure.


So 37 signals launched once.


And the idea is that instead of the,
like having these SAS sort of offerings

where you have to kind of like.

Always host and provide access to
something and go give ongoing support.

Instead, you kind of just give someone
the code, they get to see it and buy

it for one amount, one time fixed
price, and then they own the code.

And yeah, it is definitely like a lifetime
trying to get like the lifetime value

upfront instead of over the course of.

Many months, but it's definitely
flipping kind of the SAS, the concept

of SAS on its head, because now you're,
you no longer have to deal with things

like churn and cost of acquisition.

And I don't know, there's like a
bunch of like stuff that goes into

running a SAS that you kind of get
to leave behind you, but I don't

know, it's definitely very different.

Colin: Yeah, it'll be interesting because
they have, I mean, over 10 years of,

I mean, 15 plus years of SaaS data.

So, I'd be curious to
see what the pricing is.

I think everyone's, like, up in arms
with, like, SaaS is recurring and

you can predict, like, once you hit
a good flywheel, you can predict

what you're going to be making.

And churn could kill you, but also
reasonably, once you really hit product

market fit, like, you're not, Going to
lose so much that you can't estimate

hiring and paying yourself and things
like that how much of this do you think is

like 37 signals just like doing something
very Out there to get attention though.

That's kind of what it feels like It's
like they like kind of created and

popularized sass and then they're like
we're gonna go the other direction

CJ: isn't it?


I feel like they are good at being loud
about the stuff that they're doing.

Because if you think about it, like
there are a lot of things that work

like this already, like the tailwind
UI stuff, that's not a SAS thing you

pay one time and you get access to the
templates and the kits and the whatever.

Another example is I think in terms
of community mega maker was like a one

time thing when I signed up, you just
pay one time you get in, it's a big

chunk up front, but like, then you're
in another example would be like these,

the the starter templates for jumpstart
pro that's like a one time thing you pay

money and then you get you get access
to the code and yeah, I think there's

Colin: Do you get updates?

Do you

CJ: do get updates.

I don't know what all like the, the
licensing and stuff looks like, but yeah,

you, you kind of like get access to the
GitHub repo and then you can continue sort

of backporting and getting those updates.

I don't know.

I'm sure that I feel like 37
signals in the base camp product.

They've, they've also done this like crazy
thing where they rewrite the entire thing.

They like rewrite the entire
code base every so often.

I don't know if it's every year, every
several years, but every time they

launched a new one, that would have
been an opportunity to be like, okay,

we launched a brand new, like, you know,
version seven or whatever of base camp.

Now you can buy that and
download and install it.

The other one that comes to mind is
ScreenFlow, like this, this, the video

editing software I use, they just give
you a version and you can have all

of the, the minor versions of that.

Like you can buy ScreenFlow 10 and
get all the minor patches or whatever,

or the patches in the minors.

But if you want ScreenFlow 11, which I
think they release once a year, if you

want the next one, you got to like pony up
for another year's worth of a license or

Colin: This is like going back to
the Adobe model before subscriptions.


And I, I get it like Adobe
paying as much as we do.

I don't pay for it anymore.

But when I used to use all those
tools, it feels like a lot.

But then if you're, like, if you're
a creative professional, it's like 50

bucks a month for everything makes sense
and you don't have to worry about it.

You don't have to worry about upgrading.

I know that it doesn't work
for hardware, hardware, right?

So pebble is the thing
that comes to mind for me.

It's like you bought it once and
they were really popular, but

they got all their money at once
and they had to pay for hardware.

And then everyone wants the software
updates and then the service went away

and people can now self hosts rebel.

Which is like a DIY
version of the software.

But I use a whoop band and
like, I pay monthly for that.

And I'm kind of happy to just because
I know it's not going to go anywhere.

I guess like Apple watches, you
buy them once, but Apple's making

lots of money on your AirPods
and everything else that you buy,

CJ: And usually like for Apple,
you have to have the the iPhone to

go with it for it to make sense.

And then, so it's kind of just like
an add on or expansion revenue.

Another one that comes to
mind is Peloton, right?

Like you have a big upfront
cost to buy the bike.

And then you also have a recurring cost.

And so they've kind of like split it.

So I don't imagine wanting to like
rent the bike and, but I do feel

fine, like paying the monthly fee for
the, to get access to the classes.

So yeah, it's, they're kind of
like selling two different things

there, but yeah, I don't know.

It's interesting.

I think one thing that I really
like about the idea is that.

For me, one of the hardest things
to swallow with building a SAS and

charging a recurring subscription is
that you kind of are signing up for a

commitment to those users that you're
going to stick around and you're going to

support them, especially if they start.

Buying annual subscriptions.

When I built that that little tool a
while ago, the that little SAS product

that did Facebook integration, I had
some people sign up on, on annual

memberships and I didn't even like.

Like keep the thing for a year.

Like I built it and I had it for
like nine months and I sold it off to

someone else and then like they ran
with it, but there were customers that

signed up for a year and I like wasn't
even around after, after I sold it.

And so it, it does,
you feel, I don't know.

I felt a lot of pressure, like, okay,
if someone signs up and pays for a year,

you gotta like support them for the year.

Obviously there's ways around that,
but the buy once and you get some

code that's seems pretty attractive
from the business side, at least.

Colin: and they haven't
announced what products they're

going to do this with, right?

Like, are they going to do a CRM?

And when you think about what it
costs to have Basecamp or whatever,

I don't know if we don't know, right?

They just put out this statement.

But like, I don't think people should
expect that it's going to be 200, right?

If it's business software for small
businesses, it's not Salesforce, but it's

The new base camp or high rise or whatever
it is that they're going to do again,

is it 20, 000 and you own it forever?

And now business is just like, Oh yeah,
we're going to invest in this thing.

And we own the code and we're
going to get the updates.

And you can reasonably expect that if
enough people buy that at 20, 000, you're,

you've got a really strong business.

And you come up with that number based
on like how long the average customer.

You know, sticks around times, whatever
you would have charged for a monthly SAS.

And, you know, like you said, get
rid of churn and some of these

other things that you have to do.

And pulling all the revenue
forward is also huge.

Like you can hire, you can plan around
having that versus like with SAS, you

don't know when people are going to leave.

CJ: even with a SaaS, like you have
to try to calculate the lifetime

value of the customer and then

Colin: while you're while you're
moving like you're on a train

CJ: Yeah,

Colin: to figure out how long the train
track is and you're like, well, we

don't really know We're just gonna keep
putting more railing in front of us and

hope the train doesn't go off a cliff

CJ: Totally.



I don't know.

It's interesting.

We'll see how it goes, but
I would encourage people to

just think about it, I guess.

So are, I think you were, you
were doing some Terraform stuff.

At work, right?

Was that like part of the
calendaring thing or something

Colin: Just playing with it.

We use some terraform templates
for like Doing well, what do we

do it for mostly for Google Cloud?

Orchestration stuff.

But yeah, I guess in this same vein
is, are you kind of referring to the

HashiCorp changes and stuff that they've

CJ: Yeah.



Colin: Yeah, I guess this is a little
bit different than the once model but

it's similar to relying on your tools.

And so HashiCorp is, I think they
already have rolled out the BSL, the

business software license and they're
moving away from a Mozilla license.

And so I just kind of wanted
to throw this in here as, as

an aside to so many companies.

Building and relying on your
tooling, whether it's software or

open source code and how that looks.

Because I, like, I'd be curious,
what is the licensing for the

code that you buy for once, right?

I'm assuming you don't get to,
it's going to be like some sort of

proprietary license, most likely.


You're not going to be able to
make, well, I mean, you will be

able to make changes to it, but
can you distribute those changes?

Can you then sell plugins to this
software and stuff like that?

That will be interesting to see.

The BSL was kind of contentious
in the community because they

just didn't feel as open.

From my perspective, it seems like they
did it to prevent like Amazon from just

taking the code and saying, we now have.

Our own version of Terraform
using all the stuff that HashiCorp

and all of the contributors did.

But now there's this initiative
from the Linux Foundation and

a bunch of contributors called
OpenTofu which is an open Terraform

alternative, backwards compatible
and like kind of neutral leadership.

CJ: Cool.

Yeah, all all of the infrastructure
stuff is just so terrifying

to me and like I don't know.

It's just so fiddly and just kind of like,
intimidates me a lot and I find that kind

of work very Frustrating, like working
with NGINX or working with like setting up

a Terraform thing and getting it deployed.

And I'm like, just give me my Heroku or
like, you know, just like, I just want

like a nice tidy little sandbox for
sell or whatever that I can deploy to.

And I don't have to worry about, you
know, certain services and their versions

and their box sizes and the whatever,
you know, and fallback conditions and

certificates and all this other business.


Colin: this is the stuff
that AI can take from us.

Please, please take this away.

And ChatGBT is actually pretty good at
Terraform templates, like, because they're

so role based, and I'd be curious to see
if they've gotten better since the, the

backdated The kind of date line has moved
forward is that now all the new data

that's in there should be able to help,
but like, you can give it the structure

and it'll be like, well, that doesn't
have access to that, or like, I'll give

it the error message and the terraform.

And it'll be like, yeah, you
totally missed this piece in this

piece, because like in the case of
Google Cloud, it also knows about

the Google Cloud APIs and Docs.

And so it's able to just say like,
yeah, you totally missed this, like.

Permission ACL or whatever.

That's usually what it is.

It's like permissions all the way down.

CJ: Yeah.


Are you, when you say when you give it to
chat, GBT, is that like in, you're talking

about like in your editor with Copilot
recently, or are you just like pasting it

in or kind of like what's your workflow?

Colin: I actually don't
have copilot in my VS code.

I need to figure like
we use coder at work.

So we have like virtual
instances and stuff.

I know I can figure it out.

I just haven't.

Done it yet.

And then, so I, sometimes I'll
just pop open chat GPT and paste in

anything that's like not sensitive.

I'll just do like, this is what
it looks like to deploy a box

to GCP, regardless of who you

CJ: Mm

Colin: And then I also have my
own personal GCP account that I'll

like go do it myself on my own
box, just to make sure it's like

actually does what I want it to do.

And then I'll replicate it at work.

CJ: Nice.

Yeah, I find myself kind of jumping
between the editor and the browser,

like the chat GPT browser and
just kind of like messing around.

But I have also noticed, I don't know if
it's just me hallucinating that now, but

like, I feel like it's getting better.

Like the autocomplete from co pilot,
it has been just so freaking good the

last couple of weeks, or I'm like, man,
I don't know if it's part of the, maybe

it was the change related to, Thank you.

The cutoff or something,
but it feels so good.

Now, like, I don't know, maybe I'm
also just doing a lot of stuff that

is repetitive and conventional and
not like too far off the beaten path.

And so

Colin: I'll have to look at it again
because I've mostly been writing

markdown So not as much like I'm
like, I don't want you to try to

tell me what I'm about to write

CJ: Yeah.

Colin: we just Kind of speaking of
things that we're working on this week.

We just launched documentation around
being able to Have premium apps in

discord so you can have an app and then
you can charge subscriptions for your

app And it's all stripe under the hood,
but you as a developer don't need to

touch stripe so we do all the payouts and
all that kind of stuff So that's still

very new and only available in the u.

s but that was like my first big
documentation project was just documenting

like What are the endpoints and how
do you use this thing and what are the

best practices and stuff like that.

So, chat GPT is not going to be super
helpful with something like that.

At least not yet.

CJ: Yeah.

Like you've, you've got to be the one
who is creating the original content

that will answer all future questions
by chat about that sounds awesome.

So like yeah, anyone building apps
on discord can now collect money for

Colin: A little bit opposite of
the one time purchase model, but

if you want to build a SaaS on
top of Discord, you can do it.

CJ: All right.

Is there, do you have like.

Business ideas that you could share
or like app ideas that you could

share with the audience that are
like, Oh, people would probably

pay for this if you built it.

Colin: Oh man, yeah, I mean, we kind
of take that stance with most things

like we would rather the community
build the apps than us build them.

So if it's something that you've
used in Slack and you don't see

it in Discord It's probably a
good chance that it's a good one.

I think the most popular one That's like
kind of more of like a business case.

This is called ticket tool and
they will turn they'll like do

ticket syncing and like case
management type stuff and discord.

So I know they're using the
new premium app stuff, but yeah

CJ: Awesome.


I would imagine there's going to be
a billion AI things that are like,

look at your discord channel and
then try to predict the answers to

questions from customers or whatever.

Colin: I mean you guys used it at stripe
you guys use discord for support but

not in like a bot or ai type of way.

It was very Human generated but
could be could be interesting.

There's a lot of answers in
that discord that could help

CJ: And in IRC history, cause you
can go back to like the beginning

of Stripe time in the IRC logs and
see like every question ever asked

and answer ever answered in the
public forum and use that to train.

In fact, I tried this like 2019 ish and
I had no idea what I was doing, so it

didn't work, but you could theoretically.

Colin: in ai days.

CJ: Yeah.

Yeah, you can get there.

You can get there for sure.

So your calendaring app, is that
going to be the new hit app?

The new hit premium app on discord.

Colin: I have not touched that in I guess
it feels like months, but a few weeks

now So we'll see that's still very much.

Close to the chest app not available yet,
but we'll get it working first, then i'll

start thinking it's like do you want to
charge a subscription to create events?

In your calendar?

Probably not.

I think you have to, you have to pay
me if you want to book some time.

CJ: Yeah, yeah, I mean, I, I guess
maybe we did a little handoff

then I've been doing a lot of
calendaring stuff lately in our app.

Yeah, we're building out a view
so you can see all the projects

that are upcoming breakdowns by
like, you know, what project type.

So we have certain teams that
can do different kinds of stuff.

If it's interior exteriors, we have
like Gantt charts and all these resource

calendars and all of the like drag and
drops, dragging an event from one day

to another day, or like extending it by
dragging it, all the things that you would

expect from Google calendar are just.

So crazy hard to implement, but full
calendar is this library that we're using.

And so we're using like this react
component and we have a couple

of API endpoints for giving you
the list of events and giving you

the list of properties or like
resources or whatever, and then.

Those end points can be filtered based
on a start and end and then full calendar

just does everything for you so it's
fetching like exactly what it needs and

just so it's a little bit of rendering
a little bit of CSS hacking and Yeah,

it seems to be working pretty well.

So that was pretty pretty fun to build

Colin: Nice.

I was going to ask what you use for
that because Tailwind has really cool

UI for it, but it's no JavaScript.

It's like just the CSS and it's beautiful.

And I was like, oh, I really want this.

But then I was like, do I want
to implement the clicking and

dragging and all this stuff.

No, I don't.

CJ: noop.




Yeah, we use

Colin: out there's a whole
team at Google that does this.

CJ: Not surprised.


We use the, the tailwind UI calendar
view when our calendar was just static.

And then when we were like, okay,
this needs to be, you know, higher

fidelity and more interactive.

Then we're like, okay, what are
some libraries that do this?

So full calendar worked.

And then

Colin: has a Tailwind,
like, theme or something.

That would be cool.

CJ: I don't think so, at least
it's not documented, but they do

have bootstrap and material UI.

It's like, yeah, I think it's
a bit of an older library, but.

Works well, I mean, I think they
could probably Benefit from an

another theme, the tailwind theme,

Colin: that might be easier than me
implementing all the other stuff.

CJ: yeah, it's, it's really not that bad.

And like, there are tons of classes,
so you can kind of say like, Oh,

I want to modify the background
color of the weekends or something.

And so you can you can target like
FC dash day dash sun or whatever.

And that'll like, lets you
get access to all the Sunday.

Day cells or whatever.

And so they have like tons of classes
around that you can just target with CSS.

And then

Colin: little counter to the Tailwind

CJ: it's opposite of tailwind for
sure, but it lets you get like

the same results of like, you
know, styling it how you need to.

Which yeah, works fine.

And then this week has been super
fun, bunch of API and webhook stuff.

And inside of the
jumpstart pro starter kit.

There is a generator for making
these little API wrappers so

that you don't have to install
like full gems for third parties.

So you just say like rails, G API client,
and then, you know, whatever third party.

And I wanted to like extend
that a little bit to make it.

Generate even more.

So I like this week I've been learning
a ton about rails generators and just

trying to like wrap my head around all
the hooks that are built by the rail side

versus the hooks that are built by Thor,
which is the command line interface gem.


So I wanted to like improve that,
the API client generator for us so

that we can move a little bit faster.

And so I made like a little video of that.

It'll be up next, next Friday.

And then also I want to do it
for enums too, because something

that we do a ton in our.

Application is like, we'll put a column
in the database that is an integer,

and then we add the enum field to
the model and then add a couple of

different, you know, enum values.

But then in the form and in a couple other
places, like we have to go in and change

it from being like a number input or a
text input to being like a select dropdown

and like titilize the enum and like do

Colin: it.


CJ: Yeah, exactly.

And so I want to make it so that you
can say like rails G model, and then

instead of giving it a status integer,
I want to give it status like integer

enum or something, or maybe just enum
and then have it generate the mod, like

the, the model and the forms for us with.

The, the defaults.

And so, yeah, it was like deep
diving into the rails code base

this week, just trying to figure
out how, like all that stuff works.

And yeah, it's exciting.

I think like generators and rails
have always been one of those things

that are kind of magical a little bit.

Cause it's just like, how did that happen?

Like it made 20 files for me,
like controllers and tests and

fixtures and all this stuff.

And Yeah.

So it's, it's kind of fun to demystify
that a bit and make our team faster.

And so hopefully we'll upstream
that too, back into jumpstart.

So other people who use it in the future
can make their API wrappers faster.


Colin: Nice.

That's cool.

Yeah, I played with generators a
tiny bit, but they're super powerful.

It's just a lot of templates
and boilerplate and all of that.

CJ: Yeah.

One of the things that's cool too,
about jumpstart, how gosh, I'm

becoming such a jumpstart fan boy is
the Chris has added, I mean, like in

the template itself, it has its own.

Generator customizations, but
there's a bunch of stuff in there

that he kind of shows examples
for certain patterns within rails.

And you're like, Oh,
that's how that works.


Let me just.

Make my own, or let me just
extend that a little bit, or let

me just tweak that a little bit.

And then I feel like it's kind of
like having a, a rails app with

like a little bit there already.

So you can see how other people might
access different features and it kind

of, it's, it's both sort of like a
jumping off point, but also like a.

A learning tool.

Whereas when you just like rails knew
something, you kind of have to understand

a lot about rails to figure out, you know,

Colin: Right.

Which is interesting because Rails,
right, right, Rails was extracted from

the OG Basecamp as like a tool for
building apps and potentially businesses,

whereas Jumpstart's like, yeah, here's
your Rails, but also here's all these

things that like over time we've seen.

Everyone tries to do this.

And does it 10 different ways.

This is a jumpstart way.

Or here's a way you could think about it.

If you like it, use it.

If you don't like it, do it your own way.

And I feel like gems are always another
way to, to customize all that stuff too.

But yeah, that's pretty cool.

CJ: Yeah, it's fun.

I don't know.

Maybe the, the enum generator
thing will be a gem first.

But there isn't like proper support.

There's like full support
for enums in Postgres.

So you can have like an enum
data type in your database table.

And in your database,
like what's it called?

Not, not your like.

Not your SQL, but like the, the language
that you use to change tables and stuff.

I can't remember anyways, when
you're doing like an create table

statement or whatever, you have
to do like a create enum statement

and tell it here's the values.

And then that almost creates kind
of like a mini it's, I kind of think

of it as like a mini table inside of
Postgres that you're joining against

versus just having like the integers
in there mapped to something else.

But one of the things that I'm finding is.

We're using this other gem called blazer,
which is kind of like this BI tool

that lets you write SQL queries and.

I want to add like a chat GPT integration
where you can just use natural language to

ask it questions and it'll send the schema
and give you back SQL that will run.

But the problem is that the SQL
statements don't know about the,

all the enum values because they're
just numbers in the database.

And so like, if you're looking
at, for example, like the

sales status on a project.

It's just going to be a number between
zero and 10 or something, but if you

want to know, Oh, show me all the
projects that are in the one state,

then like, you know, or the lost
state, then you need to know like,

Oh, that's number two or number three.

So like as part of the.

Yeah, as part of the query.

Yeah, you need to do like a bunch of
these, you know, like the SQL statement

will just have like case when, when
it's one, it's like pending when it's

two, it's delivered when it's three,
it's one when it's four, it's hold

or whatever, you know, kind of like
figuring out all the different statuses.

Which isn't as nice as just
being able to say like where the

status equals one as a string.


Colin: inject those enums
in the, like, prompt?


CJ: yeah, so the usually the way
that I construct the prompt right

now, I'm doing it all like manually.

So I'll just paste in parts of
the schema that I know I want

to write a query against into.

The code like, or a chat GPT, and
then I'll also copy parts of the

model that have the enum things.

And then I'll say, okay, this is,
you know, from the model, this is

my schema prepared to write a query.

Then I just say like, okay, show me,
you know, sales week by week, grouped

by project type you know, split out the
revenue this way or that way or whatever.

And so I don't know, I guess I'm.

Kind of convincing myself that
I should have used string values

for enums, but it's what I work.

Colin: That's a, that's another
holy waller for a different day.

CJ: Yes.




Cool Yeah, anything
you're learning this week?

Colin: Kind of go back
to the docs for a second.

I'm playing around with some,
like, text linting, like,

CJ: Oh Nice.

Colin: standardizing How we format our
tables, but also like when you refer

to a certain feature as uppercase
or lowercase, is it consistent?

So I found some blog posts from like
Netlify and some others who do this pretty

well And we're trying to work on a style
guide there because right now we do PRs

against our docs like we allow people to
do PRs against the docs publicly and style

is All over the place, which is fine.

It'd be nice to lint on it and just that
way they can fix it themselves instead of

us, you know, punting it back in a review.

And then it helps

CJ: you do?

Yeah, how do you do?

Like the code samples in the docs.

Colin: right now.

They are just code blocks in Markdown.

Like we have like an MDX.

like component for code.

But yeah, we're looking at eventually
how do we like pull in each of those?

Cause I think we've talked about like,
how do you have the code samples?

We have less code samples
and more like just.

Json responses and stuff in our tutorials
we have some code samples, but we

usually just link out to the github repo
which then have tests and things but

it'd be nice to have tests against the
code samples when we try to do prettier

against our markdown it like Formats the
code and then also formats the markdown.

And then like some of our MDX components,
it does not like it breaks like

collapsible menus and stuff like that.

So we're playing around with that.

And I would love to see us use markdocs.

So that's also on the table, but
kind of just like tooling around

docs, which is really interesting.

There's like ones that are kind of
like grammarly too, where it's like,

this doesn't quite read like it should.

And that's all just for English.

Like, I think it'll be interesting to
see, like, do we translate all the docs?

We, we released like our getting
started guide in eight languages.

But we've been finding the, the
translations are difficult when

you're talking about technical things
and then writing the code and using

English strings and things too, because
they're written in English first, so

CJ: Yeah, is it so I didn't realize that
the public could make changes to the

docs So is there like a docs czar that
kind of oversees all those PRs and tries

to maybe like act as like an editor?

Is that you

Colin: That is that is DevRel
at least it is right now.

So we can talk about this cause we just
did it, but yesterday we had, we just

went through, we had 50 open ones and
we got it down to like 30 something.

Some of them are people trying to
document things that aren't released yet.

So we keep those ones open until
like the team's like, yeah, those

features rolled out and it's done.

We can talk about it.

That does mean like with the premium
app stuff, we just released, like it had

to be done in my version of the docs.

Like I have a fork that's technically
public, but I do it over there.

And then when I'm ready, I merge it in.

So you know, we're not trying to hide it
from the world, but there's no way for

us to have like a branch that's private.

Of the docs right now we could in the
future, but yeah, so we we kind of look

at them Some of them are things that we
just don't agree with and that's we're

having a style guide to point to and some
linting around this will help so that it

doesn't have to be like Sorry, we don't
want your pr but we do want this one.

It'll be more like okay cool This is
technically missing or technically

incorrect and then this the linting will
be on the style take care of most of that

CJ: Yeah, that'd be awesome.

That, yeah, I think maintaining
docs is just really freaking hard.

Like it's, it's, it's like
legit, a very, very challenging

problem, especially because there
isn't a like solid standard for.

The guides and tutorials side of things.

Like everyone's kind of
rolling their own still.

And MDX and Markdoc both provide a
framework, but like they don't provide too

many Things there needs to be like, kind
of like the jumpstart for docs, right.

Or something, right.

Where it gives you the text linter
and the, all the code blocks and code

generation and separate, like API
reference versus you know, a client

and SDK reference versus here's your
guides and here's your tutorials.

And does it have video?

Does it not?

It's like,

Colin: Yeah, well, and you guys
were doing a lot of that at Stripe.

Stainless is trying to do that with SDKs.

CJ: Mm hmm.

Colin: know, there's, there's a lot
of new docs companies popping up.

I remember, like, Readme was like the
doc startup of their time, and they're

still really big and really popular.

But there's now things like
Redocly and some of these

other ones that are coming out.

So it's, it's cool to watch.

CJ: Are you planning to go to
RubyConf in November in San Diego?

Colin: I am not.

Are you?

CJ: I am thinking about it, but
yeah, maybe or like most, most

likely RailsConf in May, but I think
tomorrow or like this week is Rails

world and I'm feeling some FOMO.

I'm feeling some FOMO.

Colin: There's only like
200 people going to that.

So there's a lot of FOMO.

CJ: Yeah, but it's all good.

I wanted to mention before we
close too, that we are hiring.

We're hiring a craft work.

We're hiring a full stack rails engineer
and we're hiring a react native engineers.

So hit me up.

And then also I was thinking about trying
that dynamic ad insertion from transistor

to tell people that we're hiring.

Colin: You'd like to go
for it, would do that.

And then if you haven't plugged it in the,
the Reno developers group yet, I would

CJ: Oh yeah, definitely.

Yeah, for sure.

Great idea.


Yeah, I think that's a wrap.

As always, you can head
over to buildandlearn.

dev to check out all the links
and resources we mentioned.

And yeah, we'll see you online.

Colin: All right.

Bye friends.

View episode details

Creators and Guests

CJ Avilla
CJ Avilla
Developer Advocate @StripeDev. Veteran. 📽 https://t.co/2UI0oEAnFK. Building with Ruby, Rails, JavaScript
Colin Loretz
Colin Loretz
I like to build software and communities. Building software at @orbitmodel 🪐 Coworking at @renocollective 🎙Sharing software learnings on @buildandlearn_


Listen to Build and Learn using one of many popular podcasting apps or directories.

Apple Podcasts Spotify Google Podcasts Overcast Pocket Casts Amazon Music
← Previous · All Episodes · Next →