006 — Embracing the Thrash
Hey. How's it going? This is Ryan Hefner, and this is the All Play podcast. I feel like at the beginning of these, I always end up leading off with, I'm at a crossroads or something weird like that. And, actually, this episode is kinda no different.
Ryan:I think the underlying cause of why I'm at these crossroads is I'm in this negative one to 0 phase where I'm just kinda thrashing a lot of ideas. Or I just have a lot ideas in my head, and I'm trying to figure out which ones I wanna commit to. I don't really have a lot of time to commit to these ideas. You know, I'm juggling a couple different, client contracts. I, you know, recently, I'm releasing this podcast and also kinda just still doing some of the general cleanup and and tweaks to the the exist you know, the All Play FM site.
Ryan:And and basically, you know, some of the ideas that I was or at least the project that I was originally thinking was gonna be the the first one to go out. And and to be honest, there's I could there's probably, like, 3 or 4 or 5 different ones that I have been kind of, like, competing for space in my brain. A lot of them are general utilities that I would just like to use. Some of them are just kind of explorations. A lot of them have to do with just kinda open web stuff.
Ryan:Some of them might just end up even just being, you know, purely open source, just like an open source library kinda util thing. Not really a 100% sure where everything's at. But the first one that I was thinking was gonna be up, like, a product, more of a product. I really wanted you know, I my naive understanding of, like, event sourcing and how I think that works as well as how I plan on having that be applied to that project. So I think it'd be really beneficial to embrace event sourcing and that whole model and, you know, various projections and all this other stuff.
Ryan:I guess my knowledge just isn't really there yet on it, and I'm still kinda incubating and learning that stuff to apply, well, you know, to that product or project. And so I'm trying to get comfortable with just letting that sit in the background and let my gears chew on that for a while. And there's a whole slew of other stuff that, you know, I'm also thinking about. You know, I'll probably do a oh, actually, screw it. I'll just gonna do it in this episode because I'm only 3 minutes in.
Ryan:I'm gonna try to knock this out real fast. So I'd say there's a few core things that I just think are gonna be beneficial or useful for these projects that I'm gonna be undertaking. And also, I guess, maybe just more of, like, a ethos or not ethos. I guess where my head's at as far as, like, what what I wanna be building. So I'm definitely all in on just web for the most part.
Ryan:I mean, I'm I'd be totally cool to do, you know, like a React Native thing or something, but I really wanna embrace the web for as much as I can. So and I I really want to just I want more progressive web apps. I wanna use more progressive web apps. I've actually been using, like, a lot of Safari Snippets and apps like that, just adding them to my dock. And I actually find that sometimes those just work better than any of the other apps, at least at least in the Mac space, like, compared to, like, the apps that are, available within the Mac store depending on obviously, depending on the app.
Ryan:But really love progressive web apps, so I would love to lean in and build a few good ones that I would like to use as well as just maybe even build some I've obviously figured out what libraries are out there that I can utilize to best support and build really good ones as well as maybe contribute a few of my own little things to help help proliferate that that ecosystem or or proliferation of of progressive web apps. I guess along those lines, also being able to just embrace, like, push notifications via the web and progressive web apps. I think there's a lot of you know, obviously, the push notifications can also have a little bit of a bad rap. They can be annoying, but I also think there's, like, times when they it could be super useful to get a little push, especially if you're trying to be reminded about something that you wanna do or you just wanna stay up. What's going on?
Ryan:So, you know, web push notifications or, you know, push notifications that originate from a web based thing as opposed to, like, a native app. I've also really been big into local first. I, you know, I've been listening to The Muse podcast, and, they also have, there's another new one, like, called, like, local first dot f m. And I think local first is huge. I know from my time living in New York, being on the subway, or even just, you know, you're at an airport or you're at a place with, like, funky Wi Fi or on a plane or something, to be able to still access, something, especially like a website, and have that work ish, you know, is pretty cool.
Ryan:Obviously, it depends on the app and it depends on the site. But, I think the I think it's just a really interesting space. I love the concept. I think apps like Linear and stuff who are embracing it, they're definitely seeing amazing performance stuff. That also kinda goes into some of my other, interests is obviously performance.
Ryan:But the idea that you could have things be local first and, maybe either reduce the strain on the API or or or not have to be so reliant on response times and and, you know, like request life cycles and all this other stuff. Super into that. Obviously, like I touched on earlier, event sourcing, and I think both in some of the the client work that I've been working on as well as just my own personal interest in it, I think there's just so much value there to have this kind of running audit trail of stuff that's happening. It also means that you can be a little bit looser, I guess, maybe with your your schema. You know, if you just end up having these events come in and then those kinda get aggregated or combined or you know?
Ryan:I don't know. I think that I think that there's something there where you focus on the actions, you focus on the data that's around those actions, and then you can kind of mix and match and and and compose those things how you want depending on your app's needs without not without having to necessarily come up with those grand visions at the beginning. So you could kinda focus more on some of the core fundamentals or just some of the base stuff and then let the let those kind of propagate out, and take different forms and shapes throughout the rest of the app. So definitely into that. And then, I've also been interested in WASM and and some of the stuff going on there and just like, you know, like web assembly.
Ryan:And, again, somewhat in lines of performance. Some also just I don't know. Kinda cool to geek out on it. For one of the projects that I was working on, we're doing a lot of we're taking advantage of, like, some human pose estimation, and we're running that within, like, a React app. And so we are really trying to tweak the performance on that and trying to get it to run at, like, you know, 60 FPS.
Ryan:And amazingly, at at certain times, we were able to get that to run at, like, a 120 FPS. Of course, that was, like, Chrome, like, a specific MacBook Pro plugged in and all this other stuff. But that's all running on that was all running on the main thread. I think it'd be really interesting to see what what you could achieve by having stuff run on other threads or obviously with WebAssembly, and different things there. So I'm there's, you know, there's service workers.
Ryan:There's also their stuff. So my head's all over the place. I'm thrashing around, and I'm trying to embrace that. And I think I have the project that I'm gonna be, at least going all in on for now, and I'm gonna let some of those other things sit in the background while, while I continue to explore things like progressive web apps, push notifications, and and just, actually, just the stack in general. So I'm still sticking with what I was kinda going over on the, default to Staction episode where it's a NX repo, nestjs for the API, NX clients for the site and the app, And, yeah, we'll see where it goes from there.
Ryan:But, embracing the thrash, trying to figure out what's going on, letting me some of these other ideas, you know, run on a background thread. And as I think as I continue to to push through on some of this other stuff, those will either become more clear or get more abstracted or just fall away, and we'll see where that goes. But, alright. I'm at my time. I'm over time.
Ryan:I will get into what I'm gonna be building in the next episode, so stay tuned. You can follow me on Twitter at Ryan Hefner. Check out my website, ryanhefner.com. You can also follow the, the podcast at allplayfm on Twitter. Check it out on the website, allplay.fm.
Ryan:Obviously, Spotify, Apple Podcasts, all that other stuff. If you're liking it, give it a rating. If you're not liking it, don't. Just kidding. Or just DM me and let me know what's up.
Ryan:But, yeah, I'm Ryan Hefner. Have a great one. Later.