All Episodes

December 5, 2024 14 mins

So, what do you do when you start to run into walls, or slow downs, on the project you’re working on? I feel like I am at, or approaching one of those slow downs, and am trying to get ahead of it.

Since my last update when I announced Starter Packs, I have been busy continuing to build the logged out experience of the site. Focusing on gathering as many references as possible to the Starter Packs on Bluesky, and coming up with ways to make the firehose consumption more resilient, while baking in some features into the site that will allow me to capture more Starter Packs instances as people explore the site. So far things have been going great, but I am feeling the resistance creeping in and I am trying to resist it.

Where I am at now is that I pretty much has the explore experience dialed in. You can search for Starter Packs, along with Profiles, on the site, and freely explore packs and the people in them, along with being able to explore profiles, the Starter Packs they have created, along with the people they follow, and those who follow them. All in all, I am pretty stoked with where the site has come over a couple of weeks of working on it, and still pretty excited on where I can take it, but I am kind of slowing down a bit due to hesitancy on a few things, and I am not liking it.

Where I am slowing down is on the integration of OAuth’ing into the site to allow for authenticated actions to be performed, like following everyone in a Starter Pack, or following individual profiles. In the early days of the project, I created a quick (which actually turned into a multi-day) proof of concept of getting the ATProto OAuth setup working, but I haven’t really touched it since. Fortunately, it looks like it still works, but now I am trying to pair it with my own account handling and authentication and I don’t feel like I have crafted a setup that I am fully confident in, which has made me lose a bit of steam.

So, with that said, I am publicly committing to getting OAuth integrated into the site, and having all the following functionality added in over the next couple of days, so I can at least get it out there and then evaluate what I like, or don’t like, about the setup and then adjust. My concern about launching something I am not confident in is due to the higher than normal amount of traffic the site is getting, and I really don’t want to roll something out that ultimately ends up breaking, but I guess I will just have to cross that bridge when it comes.

For now, I am committed on getting the OAuth out, expanding the actions that people can perform while authenticated, and continuing to build some of the features behind the scenes that I would ultimately want to charge people a subscription for, but more on that at a later time.

To check out the current status of the site, check out https://www.starterpacks.net. You can follow along for updates on both the Starter Packs Bluesky account, @starterpacks.net, along with my personal account on Bluesky, @ryanhefner.com. Let me know what you think, and if there are any other features you would like to see added to the site and I will try to work those in.

To follow along, you can find me at ryanhefner.com, follow me on Bluesky @ryanhefner.com and keep up with the show on allplay.fm and @allplay.fm.

Help yourself, while supporting the show, by trying some of the services that I use, and highly recommend:
Transistor FM
Fathom Analytics

Mark as Played
Transcript

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.
Advertise With Us

Popular Podcasts

Stuff You Should Know
24/7 News: The Latest

24/7 News: The Latest

The latest news in 4 minutes updated every hour, every day.

Crime Junkie

Crime Junkie

Does hearing about a true crime case always leave you scouring the internet for the truth behind the story? Dive into your next mystery with Crime Junkie. Every Monday, join your host Ashley Flowers as she unravels all the details of infamous and underreported true crime cases with her best friend Brit Prawat. From cold cases to missing persons and heroes in our community who seek justice, Crime Junkie is your destination for theories and stories you won’t hear anywhere else. Whether you're a seasoned true crime enthusiast or new to the genre, you'll find yourself on the edge of your seat awaiting a new episode every Monday. If you can never get enough true crime... Congratulations, you’ve found your people. Follow to join a community of Crime Junkies! Crime Junkie is presented by audiochuck Media Company.

Music, radio and podcasts, all free. Listen online or download the iHeart App.

Connect

© 2025 iHeartMedia, Inc.