013 — Maintenance Modes
Hey. How's it going? This is Ryan Hefner, and this is the All Play podcast. So this week has been a little bit of a lot of ups. Actually, no.
Ryan:Let me take that back. A lot of downs. Not to be a downer, but more downs than ups. Yeah. It's just one been one of those weeks.
Ryan:You know? The, my son ended up getting sick on Friday. That ended up then getting my partner Heather sick, and then my daughter got sick. And eventually, I, you know, succumb to the sickness as well. And this past week has really just been a whole series of just, you know, trying to make trying to, like, get some semblance of life, going and moving and keep keep keep things happening while everyone's, you know, kinda running at a, you know, half speed or whatever.
Ryan:That coupled with, let's say, this past week, you know, I've been just trying to keep, the 2 clients that I have happy. And the two things that I'm working on right now, kind of big, like, overhauls on both apps, to a certain degree with a lot of, you know, kind of like nuance with the way that some stuff needs to work. And so that's really just left little to no time for me to to focus on, you know, the personal stuff that I wanna work on like, you know, transmits and and all that's you know, all that kind of stuff. So, you know, sickness and dealing with, you know, just like a heavy client load and everything else. Kinda just a kind of a downer week.
Ryan:But actually with that said, I think that, you know, I was able to get some stuff done on the personal front. Last week, I had, you know, announced the start of, like, the Transmits podcast, and that was great. You know, I I ended up creating some landing pages on the trans on transmits. Io for that podcast. Started publishing the episodes via Transistor.
Ryan:You know, everything was great. Everything was looking good. I mean, there's still more work that I wanna do over on those pages, and, actually, those will probably end up flowing back in, to the all play site. And who knows? Maybe even to my personal, my personal site as well, just to start kinda, I don't know, piggybacking on on all this content and text and transcriptions and everything else.
Ryan:But, one thing I I guess I didn't realize when I was originally when I had originally built the all play site was I was using the transistor, FM API. And I guess there's a little some nuances to that when you're using it. So when I'm like, you can request a show by the show ID. But actually, when you request episodes, I may maybe I just didn't I have to go back and check the API out. But, I don't think there's a way that you can actually specify the show that you want the episodes for.
Ryan:Maybe I should actually, don't take my word on that. I'll have to go back and look at it. But needless to say, when I had built that site, I was not, filtering the episodes by, the show ID. So when I started publishing the trans transmits podcast, basically, those episodes started to show up on All Play FM. And actually, though, the way that I had implemented, that was probably all wrong because transistor, I I guess, they really it doesn't seem like they want you to use the API for, like, site building.
Ryan:At least at least based on the the new, like, rate limiting stuff that they ended up rolling out, which I'm not sure if it was in direct response to, me publishing that All Play site or not, but it seemed to kind of pair up. Everything was building fine, previously to me kind of, you know, publishing and and building and testing out the site before I, you know, eventually publish it, which I was hitting that API a lot and doing a lot of local builds and deploying it to Vercel, and they were doing a lot of, hitting of the API. And then all of a sudden, and not to say it's, like, egregious, amounts of API hits. I mean, basically, every page calls the API once, maybe twice, And that's just during the build. And, you know, at the time when I had originally built the the website, I think, you know, there's only 4 episodes.
Ryan:So you're talking maybe, like, 8 hits to the API for those 4 episode pages, plus the podcast page, plus the index page, plus, I mean, I guess, site map. And then I was, pre, like, static compiling the, pages that I use for the open graph images. So, I mean, I guess, maybe 20 something API things during the course of, like, a couple minute build. Doesn't seem too crazy, but there was a point where, basically, the builds were failing because I was getting rate limited. So I had to put some sleeps in there while all that stuff was building.
Ryan:And so, basically, what I ended up doing this week is when I when I published the Transmits podcast, I was like, okay. I'll just actually consume the RSS feed. And, you know, there's some niceties, but there's also some drawbacks to do to doing that. So by consuming the transistor API, I was able to basically, request the show, and then the show would give me all the various podcast player show endpoints. So, essentially, like, I could grab that show object, and I could grab the Apple Podcast URL.
Ryan:I could grab the Spotify URL, Overcast, Pocket Cast, you know, whatever I want to end up rendering on the website. Because that's not available in the RSS feed, I basically just had to create, you know, a static, you know, little local thing to read so I could render that component and link out to those shows, which is not a big deal. I mean, those things aren't gonna be changing, you know, like episodes being added to the, site. So not a big deal. So at least the hindsight being 2020, I did build the transmits API integration using the RSS stuff.
Ryan:Then this past week, because the episodes are cross posting on Allplay, I ended up basically, like, consolidating some of that logic into a little library and then using that for the All Play site. I'm probably gonna actually just, like, bundle that up and publish that so I can use it on both sites, independently. I might publish that under transmits just to get something out onto the GitHub so I can start, using that to, you know, draw traffic there and maybe get some stars or whatever. But, so, you know, kind of a little maintenance week. And then the other thing that's been kind of annoying, you know, speaking of trying to, you know, build stuff that you can use across a bunch of different things is I have I have this kind of service that I wrote a long time ago when I was doing, when I made, this other site that I run called package stats.
Ryan:So it's pkgstats.com. And package stats is essentially like a npm explorer with, like, an emphasis on the stats around a package. So you could basically, like, search for, for instance, when I was looking for RSS parsers or XML parsers and all that kind of kind of stuff, I use package stats. It pulls back pretty much all the results in, like, an infinite scrolling list, and it surfaces all the download metrics and stuff. So it's it's kind of like a a faster way to explore npm.
Ryan:And, you know, unfortunately, downloads do kind of, you know, hint at quality. So a quick way of being able to find, like, good packages or at least the popular packages that people seem to use. So popularity typically means hopefully well supported and less buggy, and hopefully the interface on them is good and all that good stuff. But, so yeah. So I had originally built link cards to support that site because I want knew that I wanted to have these kind of, like, dynamic graph open graph images.
Ryan:But the thing is, link cards has been basically being DDoSed since, like, February, and I even have it sitting in front of, I I eventually ended up throwing Cloudflare in front of it. I put some very aggressive rate limiting rules on it, and still somehow whatever this, like it's like a application denial attack where essentially it's just kind of just throwing a bunch of, like, bad request at it. But because it's just Digital Ocean, like, $5 VPS box, the thing just is getting hammered. So this I'm kind of it's, again, part of my maintenance week. I'm just gonna peel off the www and throw that onto Vercel, and then I'm gonna try to figure out a way to, like, subdomain the actual app and, obviously, the API and all the other stuff that's doing the open graph image generation and see if I can get that service back up and running so I can have some good open graph images because I use it for basically all the all the sites that I do.
Ryan:And and one might be asking you, yeah, I know Vercel has the o OG thing. I don't know. I kinda just like using the one tool that I got. I have, like, easy, you know, copy paste that the control on it's pretty good. Who knows?
Ryan:Maybe I'll check out the Versal OG image thing. But, but yeah. So just a quick little update about what's going on. Trying to get over this cold. I did go for a run today.
Ryan:It seemed to make me feel a little bit better ish. At least I sweated, and hopefully work this thing out. But, but, yeah, that's what's going on. There'll be some more updates on transmit soon, and I'll figure out how I'm gonna intro those dual episodes. This one's just staying on the all play, channel for now.
Ryan:So, yeah, I know. Maintenance weeks. Felt like a the janitor of the Internet, but, you know, getting through. So I'm gonna wrap it there. I'm Ryan Heffner.
Ryan:This is the All Play podcast. You can find me online at ryanhefner.com. Follow me on Twitter @ryanhefner. You can find the show at allplay.fm and on Twitter @allplayfm. Alright.
Ryan:Have a great one. Later.