Episode Transcript
Available transcripts are automatically generated. Complete accuracy is not guaranteed.
Ryan (00:00):
Hey. How's it going? I'm
Ryan Hefner, and this is the All
Play podcast. So, again, it'sbeen a couple weeks since my
last, episode. I'm gonna useThanksgiving falling in there as
an excuse on why I did not getthe an episode up.
Last week, I was up in Ohiohanging out with my family and
having a good time. And stilltrying to keep busy, but, also
(00:26):
didn't bother packing the mic orany of the other stuff. I was
traveling with my daughter, andher and I were having a good
time. So yeah. So I actually hadto go back and listen to the
last episode so to evenunderstand where I was then and
where I am now.
Over the last couple weeks, youknow, I, I announced the fact
that I was working on starterpacks. You can find that at
(00:48):
starter packs dot net. It's thenew project that I started
working on the last coupleweeks, and so far so good. I've
added more features to the siteand, basically, kind of, like,
worked on the whole, like,exploring the starter packs,
(01:08):
kinda worked on getting searchin there, tried to figure out
ways to acquire and basically,like, backfill my, starter packs
catalog a bit more. I thinkright now, we're up to about
let's see here.
Up to a 165,000 starter packsand going. I know that's not all
(01:29):
of them, but, I've also set upways in the site to where
essentially the more that peoplebrowse it and come across
starter packs that aren't in mysystem, those those will get
added as people browse. Sohopefully, as more and more
people use the site, it actuallyjust kind of continues to flesh
out and, build up that catalog.So it is kind of like an all
(01:49):
encompassing reflection of allthe starter packs that exist on
Bluesky . And, yeah.
And actually to my surprise, Ididn't realize how kind of
popular or it was gonna gonnastart to get I mean, it's not
(02:10):
through the roof, but itdefinitely is probably the most
traffic site that at least Iown, that I've worked on. And,
you know, it's it's been livefor about let's see here. I
mean, I guess I I guess I kindahad a early version up, but I
think that was mostly newsletterkinda holding page for a few
(02:31):
weeks there in, early November.But probably had the first
experience up. I'd have to goback to GitHub and see what it
is.
But since the site's been live,about 34, almost 35,000 people
have checked it out, and about93,000 page views. So, it seems
(02:52):
like it's doing the job, andactually Google seems to be
indexing it very fast. I mean,faster than, than I've had any
of my other sites get indexed,which is pretty cool. So with
that, obviously, you know, I'mtrying to make that experience
better, but it's it's nowherenear where I wanted to to be and
that's kind of where I'm at Andat least what I'll be talking
(03:14):
about today is how do you, howdo you get yourself unstuck? And
I wanna say that I'm necessarilystuck.
It's just more of a you know,there's those times when you can
when you're moving forward andyou're feeling confident and you
know you know you have a goodidea of the next move and as it
kinda comes together, it's kindof like lining up with what that
(03:35):
vision is that you have for it.So I feel like during those
times is, like, when I canreally move fast and and get
energized. But as soon asthere's that little point in
time when, you know, you have alittle bit of, like, hesitation
or you start to doubt yourselfor, like, the way that you wanna
(03:58):
implement it, that's where Ifeel like it's just like this
opportunity for, like, you know,like, the resistance to kinda
creep in and and and set upsome, like, artificial
roadblocks in your mind to tryto, prevent you from getting to
that next phase. And I feel likeI'm kind of almost there right
now. I'm trying to trying tojump over as many of these
roadblocks as I can, but itreally comes down to, you know,
(04:23):
I have this kind ofunauthenticated experience.
Obviously, I'm gonna try to makeit better. Actually, I I I I I'm
using Postgres as the DB, andI'm trying to use it. It's full
text search. I think there's anextension or 2 that I can I can
add to Postgres to maybe makethe fuzzy search a little bit
better, but I just don't thinkit's gonna quite get to where I
(04:45):
want it to get it? So I probablywill end up, spinning up, like,
a typesense instance orsomething like that and feeding
all of the data from thedatabase into that types
typesense collection and really,harnessing the power of that to
give better results as well asdo more, like, better ranked
(05:06):
results as far as potentiallythe number of people that are in
the packs, the the popularity ofthe packs, all this other
different kind of stuff that Ican use to kind of help that
kind of explore experience, butI'm not quite there yet.
You know, right now, or at leastwhen I first started, working on
this project, the one the one ofthe bigger things the biggest
(05:29):
thing that I wanted to make surethat I could do was that I had
OAuth figured out. And I puttogether a quick POC, and, you
know, I was able to basically gothrough, you know, set my state.
It'd go out to, Blue Sky. They'dauthenticate, come back, and I
would have a active session. SoI've had that actually almost
(05:52):
since the since, like, day 1 orday 2 of working on the project.
It definitely actually, itwasn't day 2. It it actually
took me a few days to kindafigure it out and find us some
examples of of good working,basically, some examples that
worked to to figure it outbecause I wasn't quite getting
there on just documentationalone. But I was able to get
(06:14):
that working within the 1stcouple days, and then that kind
of put a little, like, you know,alright. Got that. Move on to
the next thing.
So I did that, and now I'm kindacoming back to auth. And I'm
realizing that, you know, since,that first POC, the scope and,
like, the kind of the structureof the app has kind of changed.
(06:37):
So I have the API, which is Ibasically added, which is a nest
a nest s t, nest JS app. I havethe firehose, which is also a
separate nest, service that Ihave running that's basically
just sitting there feeding offof, WebSocket connection, trying
(07:01):
to, ingest as much, starter packinformation as it can right off
the fire hose. And, actually,I'm probably gonna be expanding
that out to, be consuming alittle bit more.
It's just with the fire hosestuff, I mean, it's like if you
don't get it early, you don'tgot it. So you gotta figure out
these ways of being able tocatch up, and that's that's
(07:22):
where, I added some a little bitof logic so that the more people
that visit the site, it'll kindacatch up there. So I have that
going. I I've I've built out thenext, n e x t, site more so that
you can actually browse andbrowse starter packs, browse
profiles. You know, it's likeyou go to a starter pack.
(07:43):
You can see all the people thatare in it. You can go to a
profile, see the starter packsthat that person has created as
well as the people that theyfollow and that follow them. So
I'm really trying to build outthe whole make this like the
ultimate blue sky communityexploring experience. And and,
(08:05):
really, the next step there isyou know, I have most of it. I'm
gonna be adding some more stuff,so I'm gonna have to spin up
some workers that are then nowgonna start going through all
those starter packs, all 165,000of them, and start associating
them to the people that are inthose packs.
I did see that there's, a fewother services now that are
(08:25):
kinda doing something similar.Again, that's why I feel like
there's this urgency to get itout there. Not this necessary,
like, beat anyone, but, youknow, I just wanna try to keep
some momentum around theproject. And so OAuth is the
thing that's really gonna unlockthe things that I can do with
this. So once I have the o auth,you know, it's basically gonna
(08:48):
instantly open up the ability tonot only follow profiles, but
obviously follow all the peoplethat are in the starter packs.
It's gonna allow me to do otherstuff around starter packs. You
know, the, the current editingor adding and removing people to
starter packs is a little bitclunky. I'm hoping that actually
having this, like, really rich,well crafted, explorer
(09:11):
experience, being able to findpeople easy, be able to add or
remove people from starterpacks, make it really easy and
straightforward, right, throughjust, you know, a one click
button ideally, will help, youknow, get people to use starter
packs a little bit more. Andthen, you know, obviously, being
(09:32):
able to surface some of thisstuff that Blue Sky doesn't
surface naturally on the site.So, essentially, me being able
to see all the starter packsthat I'm in and people also
being able to see those from myprofile.
So that's kind of the wholevision. Now where things kinda
get a little bit murky is theway that I have the OAuth stuff
(09:54):
set up is I have, like, 2 callyou know, 2 tables in this
database, and one holds thissession. Now I need to figure
out how can I basically takethat session, map it, not only
to a user, but to an accountbecause I have some future
future stuff that I'm thinkingabout? And, you know, in the
past, the way that I'vestructured out my apps is a user
(10:16):
is really just theauthentication. So it's like the
email address, password, maybe aname, but that doesn't really
apply here.
So I started looking at, well,who does, you know, social
integrations well? So I startedlooking at Laravel and the
socialite package for that.Looking at that, it actually
(10:37):
seems like they just keepextending onto the user model,
and I could be wrong. I need todo some more digging. But
looking at the, the GitHubexample, it looks like they're
just kinda adding, like, aGitHub ID onto the user.
And that's not really the way Iwanna go. I think, I think I
(11:01):
might even end up rethinking myoriginal structure where, you
know, a user has a username, youknow, like a username or email
address and password and maybemake, like, a user, one
canonical thing that then canhave multiple authentication
approaches. So, they could havean email address and a password,
(11:23):
but they could also authenticatevia Blue Sky, and that would
work as well. And those arerelationships maybe to that
user. I think that's similar tohow auth 0 does it where you can
essentially a single person canhave an SMS off a magic token or
an email password.
So I I don't know. I'm I'm kindaplaying there, but at the same
(11:44):
time, I'm not trying tooverthink it. Then that's where
I'm getting a little bit heldup. So I'm I'm gonna make the
public commitment right now thatwithin the next few days, I'm
planning on having thisresolved. I'm gonna get it out
there.
I'm gonna have the followbuttons working, and then I'm
gonna keep jamming, trying toget all the other extra value
(12:08):
ads integrated into the site.But, yeah, that's kind of where
I'm at, and, you know, we'll seehow it goes. I'm hoping it'll be
good. And and, yeah, that'sthat's just where it at. So I'm
trying to get out of my head.
I'm trying to I'm making thispublic commitment right now so
(12:30):
that way I have someaccountability. And anyone who
wants to can call me out in thenext couple of days and be like,
yo. Where's that where's thatOAuth feature on starter packs?
But, if you want to check itout, it's at starter packs.net.
Obviously, OAuth isn't there,but browse around.
I know that the, the search, I'mgonna try to make that a little
(12:52):
bit better. I did try to tooptimize the the pagination and
stuff. It is definitely a littletricky. Like, there's a lot of
updates that are kinda cominginto the catalog of starter
packs. So to make, like, areliable search that, is
getting, like, the properresults page to page, and also
(13:13):
based on the fact that I'm justusing Postgres kind of full text
search, which doesn't seem themost reliable.
Again, I'm gonna try to swapthat out probably at some point,
but it does the job right now.So I'm I'm just gonna use it,
and I can always optimize itlater. But, yeah, check it out.
You can also follow StarterPacks, on Bluesky . It's
(13:35):
@starterpacks.net .
I'll be posting some moreupdates there as I, continue to
work on the the product. And youcan also follow me on
bluesky @ryanhefner.com.Obviously, check out my website
at ryanhefner You know, at theURL, ryanhefner.com, if you
wanna see what I'm up to. Yeah.
(13:56):
I'm gonna leave it there. So,this has been All Play, the All
Play podcast with me, obviously,Ryan Hefner. You can check out
the show and more episodes atallplay.fm, and also allplay.fm
on bluesky. I don't I haven'tbeen using Twitter too much
actually since getting intobluesky, but I am over there
(14:18):
both at ryanhefner and at allplayfm. So, yeah, I'm gonna
leave it there, and I'm gonnaget to coding and trying to get
this OAuth stuff in.
So alright. Have a great one.Later.