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.
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.
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.
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.