· 40:52
CJ: Welcome to build and learn.
My name is CJ.
Colin: And I'm Colin and today we
are catching up on some things that
we've been working on, some things
that we've been learning recently.
Good to see you again, CJ.
CJ: Yeah.
Likewise.
Likewise.
We're just talking about
Zencaster here and I use the Opal
camera as like my main webcam.
And over the past couple of weeks, it's
been doing this really annoying thing
where every time I start a new call, I
have to unplug it and plug it back in.
And someone told me that there was like a
firmware update that bricked their camera.
And so now I'm just like terrified
to do any updates or anything, but.
yeah, it's I don't know.
what, what webcam do you use?
Colin: That is rough.
yeah, so right now I'm actually using
a 12 year old webcam because, I have a
scarlet solo that's running my XLR mic
and it cannot be plugged into the Mac
while also plugging in a cam link for my,
cause I usually use a Sony, what is this?
A Sony A1000 or something like that.
A, it's one of those like
a point and shoot cameras.
It's not like a full DSLR
and, totally feel you there.
Like I have a MacBook pro that should
be able to handle all this stuff.
I have one of the CalDigit hubs,
which I bought because I was told
that it will handle all this stuff.
And, USB gets a little weird
when you go through powered and
unpowered hubs and all of this.
And there's another tool that I've
got the Elgato stream deck that
is sitting here and I think it's
bricked like when I plug it in and
I ran some like terminal commands, it
shows up, but it doesn't show up as.
A stream deck.
It just shows up as like this
very specific hardware number.
And so I reached out to support.
Cause I was like, I
don't know what happened.
there's no factory reset button.
There's no, it doesn't
show up in my machine.
And I don't, I think this is like
a thing I've been thinking about a
lot lately is I have a lot of old
tech that I don't have easy ways
of disposing in a responsible way.
And I don't want the stream deck to just
become a part of that like I actually
want to use it And I don't want to go
buy another one and then have this one
that's sitting here bricked if it can be
fixed so i've been trying to lean into
the fixing things that I have and making
use of them versus buying new things,
but I definitely have a drawer of things
with batteries in them and old, Old
fitness bands and old Android phones.
And I have a windows phone and a
Facebook phone, all these things
that don't even work anymore.
because they were like failed projects.
CJ: The graveyard of electronics.
There's just like a drawer that's
got the label on it, like cell
phone graveyard or something.
Colin: Yeah.
You probably have the same problem,
but I have More cables than I
know what to do with as well.
And so I'm trying to figure out, like,
how many USBC cables do you really need?
How many, cables, as soon as you get
rid of it, you're going to realize
it was like a proprietary cable that
you needed for some specific thing.
but just having less of those things.
And we've been trying to figure out, can
we do like a repair slash e waste, like
recycling event at the coworking space?
Just because I know this is like
something a lot of people have.
I also don't necessarily want
to fix everyone's things, but.
There's some things where we can be like,
Oh yeah, that's definitely dead on arrival
and let's recycle it in a good way.
and unfortunately, like most of the
ways of doing that in Reno have closed.
So it's an interesting thing
where it's we want to be more.
environmentally conscious and aware
and yet it's not made easy to do that.
So
CJ: Yeah.
It's interesting because I feel like
it is, the path of least resistance
is just throw it in the trash
and like it ends up in a landfill
and causes all kinds of issues.
And to do any sort of responsible.
Disposal of any
electronics is such a pain.
I think Best Buy at some time,
at some point had a program
where you could throw stuff away.
They had an e waste thing, but I know like
Colin: them and Target do.
that might be an option for us.
CJ: nice.
We had a local, our local dump
here in Bedford, New Hampshire
has a community e waste day.
It's once I want to say it's like once
a month or something a lot of people
here don't have their trash picked up.
There's like private companies, like
third parties, you can hire to come pick
your trash up, but most people just bring
their own trash to the transfer center.
And so it's a little bit
different where like we have.
A community run dump where you go and
there's a lion's club sponsored bin where
you can put your clean plastic bags.
And there's a, place where you can put all
your yard waste and there's a place where
you can put, your food scraps and they do
certain things with the food scrap stuff.
it's I don't know.
I liked that when we got here,
it was, definitely different
from coming from big cities where
there's just waste management,
Colin: it's more intentional it sounds
like too, like you know where it's
going to end up versus A lot of that
stuff just ends up in the same trash
can we have single stream here and you
know The argument is that most of the
recycling that gets doesn't get recycled
It ends up in a landfill somewhere or
sold to another country and then becomes
their problem Which is the weirdest
thing I think we made out of Recycling.
CJ: Yeah.
we were one of the topics that we had on
the slate today was to talk about money,
but we're thinking maybe we'll just tease
an episode and tell you that in a future
episode, we will be talking about money.
We want to just share, our own
experience and our own thoughts
around how we're using money.
but if you have ideas about what specific
money topics you might be interested in
hearing, please hit us up, let us know so
that we can talk about those on the show.
So stay tuned for that,
Colin: I think framing the money thing
into the build and learn, like with a
build and learn lens will be interesting
too, because I think you and I both
talked about wanting to bootstrap things.
We've worked at Startups that are
venture backed we've worked in now
I can now say that I've also now I'm
in a larger startup like later stage
startup where, money in stocks and
benefits and all the things that go along
with those are they're all different.
And freelancing and start small
stage startups and tech stars
and YC startups, all these
different things are so different.
And so I think we, it'll be interesting
to talk about like how some of that's
been different over the years for us too.
And, I don't know if we mentioned
it on the show, but I used to do it
podcasts about getting out of debt.
And so we can definitely touch on that
in that episode too, when we get there.
looking forward to that, but, promise that
the show is not going to become like a.
whatever CJ and Colin want to talk
about today, we are still trying to
frame it under the, build and learn.
And, that is going to encompass
things that touch us as software
developers, but also as we start
to just develop our careers even
more, like where does that take us?
And, and definitely curious what
you're wondering about if you're
listening to this, so let us know.
CJ: Yeah, it's a, I think it's like
when we talk about money in personal
finances and we talk, even when we
talk about weight loss or we've talked
about your sort of like running stuff
and we've talked about vacationing and
taking breaks, like all of this is.
Also definitely related to personal
development and you're building your
own life that you want to experience.
And a lot of it comes back to like
our careers as software developers
and engineers, but we're doing it so
that we can have these awesome lives.
Colin: I think we often put a lot of
that off like an early career, right?
We figure we can catch up later
and it's like catching up on
health, extremely difficult.
Catching up on money and things
like that also can be a challenge.
yeah, I think there's a lot that we can.
either worn against, but also not
necessarily give it financial advice.
this worked for us.
This didn't work for us.
Things we would do.
I actually think about this a lot
when I think about could I ever go
back to consulting and freelancing?
And I don't know, I don't know if I
could, I would do it very differently,
which might be a whole other episode.
And then I was just listening to the
latest episode of Build Your Sass from,
and Justin Jackson was interviewing
Paul Jarvis, or they were doing a
catch up, much like we are, just
because they hadn't talked in a while.
and that got me rethinking again
about this whole idea of the
episode was like gaining freedom
by building an indie business.
And it's still something that's swirling
around in my head, all the time.
And it plays a lot into money.
So maybe we'll save that
for that episode as well.
CJ: Yeah, it's interesting too.
I saw Jason Charns, from
the remote Ruby podcast.
He just tweeted, I've been
building my side project for six
years and I just am so tired.
Like I just want it to work.
And man, everyone in the comments was
resonating so hard with that because
I think a lot of people, especially
in tech are dreaming about having
an indie side hustle that, takes
over and gives them independence.
And that might be fun to get into.
Also, it'd be cool to have
Jason come on the show.
,
Colin: me more about this
weight loss challenge
CJ: Oh yeah.
Okay.
I almost skipped over it, but
yeah, so I broke my ankle.
We've talked about this on the show.
now it was probably like 20 months
ago or something and it's still
sore, but, I was looking at my
fitness pal and just like my general
weight and I gained over 20 pounds.
After I broke my ankle and it was
just like hung around since then.
And I am trying to get like more
intentional about losing that extra
weight, for a bunch of reasons.
but yeah, mainly it's just I want to be at
a healthy weight and feel, feel like I'm.
Able to run around and jump and, jump
out of the back of the truck when
I'm going to the dump or whatever.
And just not have my knees, like
given out things, just like playing
with the kids and also being able to
sleep better and things like that.
So this weight loss challenge was,
it's actually organized by someone
that's in a Peloton dads group.
So it's like a super
niche inside of a niche.
It's like dads who want to lose
weight, who are also into Peloton,
who are also like on this one,
like Facebook group or whatever.
But, the way that it's set
up, I think is really good.
And the way that it was presented is.
pretty powerful.
there's these statistics about how
likely you are to actually accomplish
something depending on, a bunch of
factors related to accountability.
So if you just have an idea, you're
maybe 5% likely to do something.
If you say, if you tell someone you're
going to do something, you're maybe 10%.
If you have a plan, you like jumps to 40%
and then if you have a specific plan that
you're going to do something by a specific
date and you have someone who's going to
hold you accountable, then you're like
95% likely to achieve some, some goal.
And the program is in, it's done
in eight week sessions or eight
week cohorts and everyone comes up
with smart goals in the beginning.
those are, specific, measurable,
attainable, realistic, and time bound.
And, you've got to say, I'm going
to lose this much weight by eating
the, this many calories per day and.
Exercising at least five days a
week and whatever, come up with the
five different rules for yourself.
And then you're put into these
little small groups where you have
a thread, a text thread with other.
Dad's from the group and every
single day you're sending each other.
This is like a picture of
what I'm eating right now.
And then, a snapshot of your,
like my fitness pal diary with
here's the food that I ate today.
And, I'm over or, Oh, I'm under.
And it's been really cool to like,
just get the support and accountability
from these other people who are going
through the same thing and, making
suggestions like, Oh, Hey, I would like.
go from two tortillas to one tortilla,
or like I would, try, swapping out
your milk in your latte to this other
milk or whatever, like just like little
kind of things that people, are able
to help you out with, and so I've,
I don't know, I'm pumped about it.
Right now I am 245 pounds and so we can
check in, we can check in eight weeks
and you can hold me accountable too.
So I'm trying to lose
15 pounds so we'll see
Colin: it's out there on the show now.
CJ: yeah, so we'll see,
Colin: I really liked that from,
we've done a lot of work with like
atomic habits from James clear and.
It's a good book.
I think like the, if you're interested in
this kind of stuff, like listening to an
interview with him on a podcast, like the
ground up show has a really good podcast,
with him, where it's just very inspiring.
And one of my favorite quotes
by him is you do not rise
to the level of your goals.
You fall to the level of your systems
is that you have this system, right?
Of people that you're checking in
with, they are checking in with you.
You all agree that you're
going to share to that.
channel and it helps.
And I think a lot of people
try to get through these goals
with like by sheer willpower.
And at the end of the day after
all the work and all the meetings
and all the things you got to do
and you're all the life things like
your willpower is pretty tapped.
And then it's easy to, be like, Oh, I
have this goal, but I want to do that.
And so having a system in place
where you cannot fall below
that level is super powerful.
And, Yeah, that's awesome and
happy to help hold you accountable.
I think for me, I've always
struggled with like consistency.
Like I'll do my running or I'll
start, doing kettlebells or something,
but then I like completely fall
off the wagon or hurt myself or get
obsessed with some other fascination.
and that 1% every, better every day
type of thing, adds up over time.
CJ: totally, yeah.
Is there something that you're working
on right now or are you, you're
in like the resetting phase or do
you have anything on the horizon,
whether it's fitness or otherwise?
Colin: for me it's just wanting to get a
better sense of like, when I'm done with
work, turning off the screens, not then
going home, and then sitting in front of
the second screen, and falling into like
video games and things, hikes, spikes.
running, whatever it is, just
getting out a little bit more.
So no specific goal or anything right now,
but, just, I think like my last job, I
was just, and it was not the work's fault.
It was me and pressure I put
on myself, but I didn't really
have a, my brain never stopped.
So I was always, because we were.
So remote and distributed
like all around the world.
Like I would wake up to
all these notifications.
I go to bed with the other team
waking up and it was like, I never
felt like I was stopping work.
Um, and changing jobs and then focusing
on making sure that five, six o'clock,
whatever, depending on what I did
that day, it's time to go outside.
Time to go do something.
CJ: Yeah, absolutely.
I think in the last episode you talked
about the discord app that you're building
on cloudflare workers for Google calendar.
Is this the same one that
you're working on now?
Colin: it is.
Yeah.
So I've been playing with the calendar
API Learning that all the different
things that cloudflare workers can do
they're very similar to lambdas aws
lambdas but I find myself like now
i'm now that i'm doing google calendar
I think we I don't know if we talked
about this on show or post show last
week But like i'm working on how to get
reminders for when you have a meeting
like we're recording this podcast.
I want to get A DM like a minute or
two before the meeting to say like
meeting with CJ or podcast time.
And there's a bunch involved there
with talking to the API, storing the
upcoming events, making sure that
none of those events have changed.
If you like subscribing to webhooks for
creating, editing and deleting events.
and then having some sort of
cron that goes and checks every
minute to see if there's like an
event happening in two minutes.
But you also don't want to send
a notification more than once.
So there's a whole bunch of stuff
there that like, I feel like I'm
building a calendar app, even though
I'm syncing with a calendar app.
So it's been interesting.
CJ: Yeah.
We were talking about how that, like that
problem is actually pretty common, right?
there's an event that's coming up,
whether that's a booking, like an
Airbnb booking or that you need to send
guests communication before, during
and after the booking or a paint Job,
like we're dealing with a craft work
where like the paint jobs coming up
and we want to send people certain like
nurture emails up into, up to the day
that we start painting in this case.
It's a, I think in your case,
it's much more granular.
And so like the room for error is smaller
because you want to send it like, boom,
like two minutes right before the thing
starts, whereas ours might be like
hours before and, or even days before.
And do you have a sense for
the direction that you're.
Solving, like how you're gonna
solve it, what you're storing and
Colin: well, the thing that's interesting.
I was like, oh, I need to
store all these events.
And I'm like, I actually only
need to store today's events.
Because I don't really
care about tomorrow.
Because I can't I'm not going
to alert on tomorrow yet.
And so I think and I need to write
this out first, but I think I'm going
to have like, when you first off
you subscribe to The calendars, you
actually do get new events, but you
don't automatically, you didn't have
to go get all the existing events.
So I show you the
existing events for today.
Anyway, I also want to subscribe to event
changes in case any of them are canceled,
move, whatever changes happen, right?
If a meeting moves to right now,
then we'll probably miss that one.
But Oh, like those edge cases, I'm
not going to try to catch necessarily.
But I don't think it should
be much of an issue there.
The thing that's interesting is
for me, coming from I've worked
with lambdas before and I like
the way Cloudflare workers work.
You have a server that has
got like a really small route.
You can have multiple routes to it,
but you can't run, like you have to
run a different worker to do your cron.
And so you have to create like a queue
that all of these are connected to.
And so then one worker can.
Send a message on the queue, then
the other worker can go process it.
Or you can have another worker that's
just croning to do the checking to
see if you need to tell anybody.
And then you need to have a
database or like a key value
store between all of these.
And so right now I've got, I'm using
Cloudflare's KV store for who you are
and who you are connected to in Google.
And then I'm using Postgres.
right now I'm using this really cool new.
Company called neon dot tech.
and they've got an integration of
cloudflare, which is how I found them.
But it's like a It's a postgres
serverless postgres design for
Distributed serverless apps.
and so it's really cool to see like
Innovation still happening in this world
where, I used to love Heroku and how
easy it was to, throw a database onto it.
But surprisingly, you don't
see anyone recommending Heroku
for anything these days, right?
You don't see in the dev docs,
like, how to spin up a Heroku
app with a Heroku database.
It's here's CloudFlare, here's
Fly, here's Render, here's
literally everything but Heroku.
So I think that's a sad state
of the world, especially from
how we're like the two of us.
I know we, we grew alongside
of Heroku for so long.
CJ: I think, it's sad.
I still have some old stuff on
Heroku, but all the new stuff seems
to be running pretty well for me,
at least on Vercel and render.
So fingers crossed.
Yeah.
We'll keep, using that, but
neon tech detect that sounds,
is it similar to super base or
Colin: so like super base is more for,
if I understand correctly, like more
like a Firebase, this is just Postgres.
So you can, you run this issue when
you're doing serverless where you might
have lots of instances of a worker
connected into a Postgres and you run
into connect too many connections.
So you have to do connection pooling.
There's like all of these things
where it's I just wanted to build
this little Google calendar app
and I am now dealing with, at.
I'm also preemptively thinking
about lots of people using it.
So a little bit of preemptive scaling
here, but you can't have lots and
lots of workers connecting to a
Postgres without connection pooling
and thinking about that, even if it's.
for a second to go check.
And even right now, I'm like, okay, if
you ask what events do you have today,
I'm just going to go talk to Google
and return what events you have today.
I'm not going to go store that
and try to keep that in sync.
I only am storing events
for notifications.
I would love if Google could tell me
that an event is happening, but then you
run into also like you might miss it.
You might.
You know get it on accident.
There's a bunch of reasons probably why
they don't do that The cool thing that I
like about neon though is that they have
this idea where you create one database
and you can branch it So it's probably
similar to having a dev and a staging
and a production But like I have one
database that has a dev branch a staging
branch and a production branch and they
all have different connection URLs and
you can have, I don't know technically
if it's the same database under the
hood or what's going on there, but it
makes it really easy to like branch
in a situation, create a new timeline
and then revert over to it, backup,
restore to that branch, things like
that as a database too, which is cool.
CJ: That's cool.
Yeah.
Planet scale.
So we use planet scale, as the
backing for our next JS site.
And it also has that branching
feature, which was new to me.
It was like the first time I'd seen that.
yeah, I think planet
scale is my SQL though.
It's not Postgres and I love Postgres, so
I am definitely intrigued by, This neon.
tech, I'm sad to see that they
don't have rails on their guides.
They have Prisma, Django, Go, Hasura.
They have Laravel and Next.
js and they don't have rails.
They need a rails guide here.
Come on neon.
But,
Colin: I think I understand why someone
would not necessarily pick rails like
in a world for very much like most of
the serverless stuff is not in rails.
That's probably why.
CJ: So it sounds like the problem
that I always wondered about too, with
serverless and these edge functions
was like, at some point you have to
go back and talk to the database.
So maybe neon is abstracting over that
and making it so that you can have.
A database closer to,
Colin: Yeah, that part I'm
not thinking about too much.
I'm using the KV store, the key
value store for the, who you
are, because I need it to be
everywhere and fast and accessible.
The Postgres, because it's mostly
going to be in backgrounds,
I'm not as worried about it.
It's going to be like background
workers for storing tomorrow's events.
Like I think, I'm sure there'll be some
sort of flaw in this, but I was thinking
like a midnight cron, which is challenging
because time zones, but like a nighttime
cron for each user at their nighttime,
or however, that's going to be that just
checks to see if they have any upcoming
events that we don't already know about.
That's the thing where it's some
of the events are coming in through
a webhook because they got put on
your calendar at the end of the day.
And then some of them aren't.
going to be, or maybe I'll throw
them away if I, if they're not for
today, I have to figure that out.
Cause I guess something gets put
on your calendar and two weeks from
now, I don't really want to store it.
until two weeks from now.
so yeah, calendars, they're fun.
CJ: calendaring and
dates are just so tough.
Like it's, it sounds like a
fun little project though.
that, is probably exploding out to
be way more than a little project.
Colin: A little bit.
Yeah.
it's helping me to learn
some of the Discord stuff.
And then I'm viewing it on
Cloudflare because it's one
of the vendors that we do use.
Like I can't go use Versal or some
of these things without like vendor.
I just don't think it's even possible.
So I think we can do things on Google,
GCP pretty easily, but we have more of a
push towards doing things on CloudFlare.
It's easier to deploy to and try
not to run VMs and things like that.
and Google, we can talk about
it later, but like Google Cloud
run is like an alternative on
Google, which is pretty cool too.
but yeah, we actually don't use AWS.
We probably do for something, but
CJ: Yeah, sounds familiar.
There's once you get to these big co
tech companies, there's always like
lists of approved vendors that have gone
through, all of the vetting processes
and contract review and whatever, to
make sure that everything's cool where
man at a startup, it's pretty nice.
We get to just pick and choose
whatever we want to work or work with.
and
Colin: You're like, who's going
to give us the best, the most
credits and the best deal?
And what can we move away from if
we needed to easily and all of that?
CJ: Yeah.
I think it's, it's totally public now.
I can't remember if we've mentioned
it on, on the podcast, but we did get
into YC and through Y Combinator, we
get we've, I don't know, we've been
given so many free credits and things
to different services that have been
really helpful because it gives you
like, a chance to experiment with
stuff and like really push its limits.
Colin: It's nice to not take the
money that YC gives you and then
just spend it on services, right?
It's that money can go towards
the team and you get free credits
to at least get to try to get to
product market fit on credits.
CJ: Yeah.
Yeah.
And yeah, I was like, man, for the
startups who are not in accelerators,
this is, I feel like it's quite a leg up.
honestly, like the, all the credits
and stuff you get as part of
the accelerator and the network
connections, they, I don't know,
Colin: Yeah, it's pretty crazy.
Yeah, we got a lot in tech stars.
Microsoft actually doesn't require you to
be an accelerator for this very reason.
They're just like use Azure.
And I think that's because they want
people to use Azure more than anything.
They're like, if you're a startup,
if you can show us your LLC or
your incorporation docs, like cool,
we'll give you a lot of credits.
Because if you grow and successful,
you're probably not going to
get off that cloud, which is.
A good gamble for them.
It's like the first
taste free type of thing.
CJ: Yeah, I feel like Microsoft does
that all the way down the stack.
They like give away so much
free stuff to like schools too.
It's
Colin: Bundling is yeah.
They're like, oh, we got to
teach you access in college and
spreadsheets in Excel and Google doc.
and then Google's no, no schools.
We're going to give you
all of our stuff for free.
CJ: Yeah.
Yeah, so Logan just got a, a PC.
so he's been building and designing like
all these custom gaming PC components,
and then he was gifted one and just
yesterday, so he's been like switching
back between his Mac and his PC and
like starting to feel the frustration of
Oh, it's command, not control for, copy
and paste and little things like that.
And it's funny cause on the PC he's
using Bing and he's using all like
the built in stuff, which is just.
So different than what he's
used to on the Mac and,
Colin: it's a lot of context
switching, tool switching.
CJ: Yes.
Yes.
But, I like making sure that he's
getting exposure to all that stuff,
but, so we've been working on
building out this, it's like inventory
management, project management, CRM tool.
It's basically like a giant crud app
right now where you can create these
paint projects and you can create
locations and you can, upload images
of the rooms that are going to be
painted or the exteriors that are going
to be painted, cabinets, et cetera.
And because there's so many little forms
that you need when you're building out
a project, I wanted to, improve the
usability by adding some like quick ad
features with modals where you could like,
Oh, let me click this link and it'll pop
up in a modal that lets me like quick add
a location or, add a room while I'm trying
to build out an estimate or whatever.
And so as I was doing that, I was
like, Oh, I think I want to use turbo.
so like hot wire and like turbo
streams and turbo frames and all this
stuff to try to make this happen.
And so I was like, let me
go try to get into this.
And there's a couple of
interesting bugs that I think
a lot of people will run into.
Colin: And
this is all Rails stuff for
CJ: yeah, yeah, like you can use
hotwire outside of rails, but
it's, yeah, I think it might be
Colin: It came from
CJ: in some places, but
yeah, came from rails.
The idea is that you can build more
interactive apps, but you have like full.
Client server interaction.
And you build it, you like, you
basically build the application as
if it's like a dumb server rendered
app, but it uses web sockets, like
it like upgrades to web sockets when
it can do smart things on the client.
So The easiest example is if you click
a link, it, will fetch the resulting
page and then do a diff on the
result and inject only the parts that
changed, when you clicked that link.
The, like longer story is that
you can build sort of multiplayer.
Experiences like you might see in Google
docs where there's like lots of people
in there typing at the same time using,
these things called turbo streams.
And the idea is that or the way that,
the jumpstart generators work, cause
I'm using jumpstart pro as the base
for this is that in every single model,
there's three after commit hooks.
So if you create update or delete
something, then it will broadcast out.
Pre pens or deletes or
whatever removed from the page.
So like just by default,
it feels multiplayer.
So if you're looking at like a list of
projects and someone else in another
state creates a project, like boom,
it'll pop onto your screen as a project.
And that all just comes
out of the box for you.
and so I thought I was being clever
in with these quick ads where it's
like, Oh, I want to add a room.
So I'll pop the modal and then when you
submit, it will, it's going to submit
with turbo streams and then I'm going to
broadcast and update so that it updates
like a dropdown in like the bottom form so
that it shows the newly added thing that
was quick added and what was happening
was like everyone's select boxes.
We're all getting updated
because I wasn't targeting or
like scoping down the broadcast.
So like by default, oftentimes you'll see
like turbo stream from, and then a string.
And that's like the unique string.
That's like the channel or like the room
that the web sockets are listening on.
And so I was just saying Oh,
on every single page, we're
all going to listen to the same
channels for that page, basically.
And so when anyone was making changes,
it was updating everyone else's stuff,
which became a, it was like quite
funny, Oh, we were in the middle of
this giant migration and we had to
basically just pump the brakes for
everybody, okay, nobody touch anything
because right now we're all like adding
items to each other's pages and stuff.
And, yeah, so the crux of the.
Problem was that like, when you are
broadcasting, you want to broadcast
with the, an ID that makes it so that
it's scoped to that specific page.
So for instance, if I am on an estimate
page where I'm adding a room that is
related to that estimate, then when
I broadcast, I only want to broadcast
like for that estimate underscore ID,
instead of just estimates or whatever.
And then that way it won't
end up on everybody's pages.
Turbo has been super fun to learn.
I think I'm late to the party for sure,
but it is, yeah, I'm sure a lot of
people have run into that same bug, but.
Colin: This is one of those
Oh, it works on my machine
CJ: Yes.
It's like you don't encounter it until
you're in like these multiplayer modes.
Colin: Yeah.
You're like, Oh, it added it to the list.
I guess we're done here.
Let's
CJ: yeah,
Colin: in.
And
amazing.
CJ: So that was fun.
But, yeah, turbo and turbo frames
and turbo streams and, I dunno.
all of that has been
really fun to play with.
And also it just worked so
seamlessly with stimulus.
I think I wrote three lines
of JavaScript and got like all
these crazy modals working,
Colin: And that's the
inspiration behind it, right?
Is that normally you'd have to do a
bunch of react, manage a bunch of state,
have a bunch of APIs just to do that.
And I see the appeal of
each with like react.
You can have this like really crazy,
fine tuned user experience and do
exactly what you want and when, and then
sometimes you just need to build an app.
And I'm running into this right
now at the coworking space.
We've been using this software for.
years that used to be like conference
room booking and it had an iPad app
so you could see like the conference
rooms booked or not and you could book
it and they just decided to go from
like you can have as many people in
your office to having 15 people in
your office at our very expensive plan.
And they've been slowly moving
upstream to like enterprise.
Like they work with the biggest companies
in the world to help them now with who's
coming into the office, who's got what
desk, who's got which conference room.
And we only needed it
for conference rooms.
And it pains me to pay for it because
it's great software, but now we're paying
a lot for one piece of what it does.
And now with this update.
We like have to get off and now
I'm deciding, do I build this?
Do, and which parts do I build?
It's a lot of the calendars stuff that we
just talked about, which is also scary.
do I just build an app that just.
Turns red and green based on the
availability of the calendar.
Cause right.
Thankfully, like we use Google calendar
for both the rooms, but I'm trying
to decide, do I do a quick little
rails app and like turbo stream,
like just broadcasts, like available,
not available, not available.
They don't need to book
the room on the iPad.
Like I'll, I think it could just be like
a website on an iPad and we'd be fine.
So interesting.
This is one of those, because I write
code, I can get myself in trouble.
Cause it's should I build this?
CJ: Right.
What are we talking about?
Like in terms of monthly
price for something like that?
Colin: So this is where it's not a
lot in the grand scheme of things.
I think it's like 1, 500 for the year.
So actually no, it's more than that.
It's 150 a month.
CJ: Yeah.
Okay.
Colin: so it feels like a lot because
I will say like coworking spaces.
I have, I don't think we've talked
about it on this show, but I've
thought about building coworking space.
Management software and it is, it's
something that Jelly Switch and
Dave Paola, who is our past episode,
past, past guests has talked about.
It's a bad business to be in.
I'm assuming that's the same thing that
happened with the people we used to use
is that it's the margins are so low.
Coworking spaces work as a business if
they can break even, but there aren't.
going to be upgrading and doing like
expansion revenue and all this stuff.
You have to go upstream to the
office management for bigger
offices or yoga studios or
CrossFit gyms or things like that.
We talked about this with Mike because
he did do coworking space software and I
actually met with him and he recommended
do not go like they . Cause it was just
very, every coworking space is different.
Every subscription is different.
Every business model is different and
they usually are non technical people.
Running them.
And so I'm probably in the minority
of like software developer running
a coworking space who also wants
to write their own software.
And, of course, mine's going to be
better than all the ones out there, but
in real world, it probably won't be.
so yeah, I dunno, it's not the biggest
thing, but honestly, I still can't
find just an app that will show.
red or green state based on
calendar, but I have asked
chat GPT to help me with this.
And it's, I think it'll make it
like a day or a weekend project
instead of a multi week project.
So
CJ: Nice.
Okay.
if, yeah, if you are already paying that
much, an interesting nugget that I got
from one of the recent episodes of build
your sass, Justin was like, Oh, not enough
people are saying that you could just go
downstream and just charge less money.
And if you could get a room booking
thing, that's 20 bucks a month per iPad
or whatever that needs to connect to it.
Or I don't know, like how you
would do it, but figure out some
interesting pricing and then.
Build your thing on the side and
then have some other coworking
space pay for it or whatever.
it seems like a problem that a
lot of people might have, right?
Colin: Yeah, and I think shy still
listens to this, but hi shy, if you're
listening, but he, I used to work with
him at orbit and he built like a, it
was called overbooked, which we'll throw
it in the show notes and it's in, it's
an elixir, with Phoenix, I believe.
And it's really cool.
Like it, it actually has most of the
room booking and checking to see if
the room's available and all of that.
It needs the API to like.
display, whether or not the room is
available on an iPad type of thing.
so I'm thinking about just forking that
and adding the Google calendar sync to
it, cause it's an open source project
and shy spent some fun time working
on that and getting it, working on it.
I've never used Elixir or Phoenix.
That's the problem there.
It's Do I want to learn a new language?
I actually do want to learn Elixir,
but, am I going to get my project
done if I also need to learn Elixir?
So that's the balance of
the build and the learn.
But, yeah, I agree on that
other front of just, maybe I
don't build co working software.
Maybe I just build conference room booking
available, not available.
but
CJ: Hot or not.
And by hot, you mean it's booked.
Yeah.
Colin: Can't use the room.
green is go.
CJ: Is it, so would you build like
a mobile app for, like for iPad or
would you just use like the browser?
Colin: I've gotten, yeah.
I could do it in a quick react app
that just lives in the browser.
the alternative I was thinking about
is like doing react, turbo native, do a
rails app that can be shipped to Android.
And it says depends like if I just
need it for us, I'm going to go
the quickest way if I was going
to build it as something I sell.
With accompanying apps, it'd
probably be like Rails or React
Native or something like that.
So TurboNative, React Native, cause I
don't want to support Kotlin, Swift,
CJ: Yeah.
Is there like a no code solution here
where you have the iPad and you put it
like in caffeine mode or whatever and
you just have it on the Google Calendar
page that's this is the page that you're
gonna see and it's like the actual
calendar for the day of who has what time?
Colin: Yeah, we might be able to do that.
We used to have whiteboards.
I will say that did not work well.
Um, cause people would just write
in that they have it, even though
someone booked it on the calendar
and it's we need it to refresh that
people are there and it's like at the
end of the day, this is almost like.
The Google calendar thing I had,
I don't care about tomorrow.
We only care about today.
So it's just show the
list of events for today.
And if you want to get on there, then
maybe we do like a type form that
adds your event to the calendar or
and then put a QR code on the door,
actually at WeWork, I was shocked,
like for as big as WeWork is and as
much money as they've burned, they
just have a QR code on their doors.
They don't have iPads.
CJ: Wow.
Colin: Yeah, calendars.
that's the theme of my life right now.
CJ: Yeah.
They're tough.
They're super tough.
Colin: But yeah.
I guess we're both building and
learning about turbo streams and
calendars and booking jobs, And with
discord, we, we run into this
thing where we want to be able
to like stream developer events,
but we can't show our code.
but the stuff that I'm
working on is completely open.
the Google calendar app,
I'm not using internal code.
I'm using the same APIs that
developers have access to.
so I'm wondering, and I'll have
to talk to my team about this.
So hello, if anyone's listening,
but, just figuring out, if I want
to be that kind of dev rel, I think
that's, we're trying to figure out,
do I want to be more public facing?
Do I want to do streams?
Do I want to work on this live?
What are the pros and cons to that stuff?
Will people show up,
those kinds of things.
Cause some of these calendar things
I could see being some entertaining,
like calendar wrangling live, and just.
hanging out with the community.
we do these events that, one of our
community managers runs where it's like
code and chat where the devs, building
bots and apps just hanging out, but it's
more like a lo fi, body doubling type
of thing where it's like accountability.
Like we started the episode with more than
we're not going to show you how to do it.
We're all just hanging out, just
talking about what we're working
on and hopefully working on stuff.
So digital coworking.
So
CJ: I like that.
Yeah.
It'd be interesting to see, I
think all those directions are fun.
So whatever, yeah, whatever you
land on, it'll be interesting.
All right.
let's wrap it there.
As always, you can head
over to build and learn.
dev to check out all
the links and resources.
We'll put all the fun
things in there about neon.
tech and all the other
things that we talked about.
And, yeah, I think that's a wrap.
Colin: Awesome.
And we don't do this often, but
if you enjoy the show, think about
giving it a review or giving it a star
rating so other people can find it.
we are back this episode,
we'll keep them coming.
So thanks all.
CJ: Bye friends.
Listen to Build and Learn using one of many popular podcasting apps or directories.