· 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.
So,
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.
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.
com.
Did you see that come out?
CJ: that was launched.
Yeah.
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.
Totally.
Totally.
Yeah.
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.
So.
Yeah.
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?
Like
Colin: Yeah, you want to
tee this up for everybody?
CJ: sure.
Yeah.
So 37 signals launched once.
com.
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?
Yeah.
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.
Right.
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.
Totally.
Yeah.
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.
Yeah.
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.
Right.
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.
So,
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.
Okay.
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.
Yeah.
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.
Noop.
Noop.
Noop.
Yeah, we use
Colin: out there's a whole
team at Google that does this.
CJ: Not surprised.
Yeah.
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.
And.
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.
Yeah.
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.
So
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.
Cool.
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.
So
Colin: inject those enums
in the, like, prompt?
Automatically?
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.
Yes.
Yes.
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.
Cool.
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.
Listen to Build and Learn using one of many popular podcasting apps or directories.