A Stream About Streaming — Q&A
with Jason Lengstorf
How does Learn With Jason work? In this Q&A and casual working session, Jason will walk through the process of making Learn With Jason and answer your questions about livestreaming!
Resources & Links
Captions provided by White Coat Captioning (https://whitecoatcaptioning.com/). Communication Access Realtime Translation (CART) is provided in order to facilitate communication accessibility and may not be a totally verbatim record of the proceedings.
Hello, everyone. And welcome to another episode of Learn With Jason. Today on the show we're going to do something a little bit different. We are going to do a Q&A session. So I've been running the show now for a long time. We're going on -- we're approaching episode number 200, actually. We're over 180. This might be 190. We're getting real close. Hey, Chris. Thank you for the sub. Good to see you. I see Brittany subbed before we started. Thank you very much. Oh, a hype train is close. Oh, no. Are we going to start this thing with a hype train? Who else wants a sub? If you sub, you get to drop boops on me. That's a law. I see all sorts of folks. James is here. What's up, everybody? Mike, good to see you all. Thank you all for hanging out. So I've been doing this show for a long time, right. I've been streaming for -- there it is. Ben with the sub. Thank you very much.
Choo-choo, I guess. (Laughter) But yes, please drop all those boops. So Learn With Jason started a few years back. I was trying to figure out ways to be more transparent about the way that I was working, and a way to be a little more consistent with me content creation. So I started doing just livestreams of whatever I could think of. One of the first things I streamed was a prioritization meeting when I was at Gatsby. We were trying to figure out what we were going to work on in the open-source project, so I turned on a live stream. It was terrible. Nobody was interested. I was bored. Like, it was not a good use of Twitch to stream a meeting. But I kind of started thinking, what else could we stream? What else would be good? So we -- I will absolutely explain what the subs and boops mean. Hi, Angie. Good to see you. So I started out by streaming a meeting. Then I streamed myself working one day. That was actually fun. I really enjoyed that. Then I remember I called and was like, hey, do you want to do a stream together? You can show me how to you AWS Amplify, and we'll deploy a Gatsby site on to it. He was into it. He was a sport. And we just got on a Zoom call and turned on Twitch. That was the first episode. Really low tech. We used Zoom. We used Twitch. That was it, nothing else. There were no sound effects, no anything.
Then over time I just liked that format, so I did more. Katie Fujihara was one of my first guests. Emma Bostian came on early on. We just kept making more. I like this format. I like this idea of doing guests. So let's keep doing that. Let's keep doing more. Then I learned about overlays and then I learned about sound effects. So, anyways, here we are two years in. I thought it would be fun to do a little Q&A. I get asked all the time how streaming works, how I do things the way they do it, how I keep the chat organized, what technology I'm using under the hood, my setup. So I wanted to open the floor. Let's make a video. We're going to do this stream, answer your questions, then I'll have a stream I can point to when people ask so that it's not me trying to remember what I said. How do I keep such a stylish beard? The answer is I don't. I have trimmed my beard once since the pandemic started because it got so just terribly out of hand. Here's how bad my beard was. When I looked down, I could feel it brush my chest, and that felt wrong. That felt like too much. (Laughter)
Okay. So I mean, Angie starts with a great question, which is the subs and boops. Let's talk about subs. So one of the things that I really like about Twitch is that Twitch has a very active kind of community vibe. This is one of the reasons that I use Twitch instead of using YouTube or using, you know, really any of the other streaming platforms out there or trying to build my own or something. What Twitch does and what I love about it is it makes the episodes kind of by default co-authorable. So it's not just me up here and it's not just me and my guests. It's the chat. Like, the chat plays as much a role in the show as I do or the guest does. And that's really, really fun. Thank you very much for that sub. I appreciate that. So one of the ways -- Xander. Wow, this is great. I love it. Oh, Luke is doing GIFs. What up?
So, the way subs work is on Twitch you can do subs-only chat. You can give people custom emotes. The boop is a custom emote. It's a thing I designed. I uploaded it to my Twitch profile. Now anybody who subscribes gets to use that emote. So they can put a boop in the chat. Subs, where you at? Put some boops in the chat. What this means is in doing that, they support me as a streamer. It's like five bucks a month. Some of that goes to Twitch. Some of that goes to me. It helps kind of keep the wheels on everything. There's those boops. In addition to that, it gives some extra things. You can see on the screen in the bottom -- what is it, over here, over there? You can see that people have different colors. So, Chris is pink. That's because he's a mod. I believe the blue is for subs. And if I say something, I think I come in as yellow because I'm the streamer. Then white is like hey, what up, you're chatting and it's great to see you here. All these gifted subs. What is up? Thank you very much, Alex. Thank you for gifting those subs. Everybody who just got a sub from Alex, maybe drop some boops in the chat to thank him. I see another sub from Chris. Chris at Lemon podcasting does the Remotely Interesting podcast, which is a podcast I do with my team at Netlify. It's super fun and very casual. It's full of a lot of like silly jokes and occasionally we talk about something relevant. It's a good time.
But yeah, I love that Luke is using the marquee tag. So with the subs, what it does is it helps kind of create this co-authored environment. There are things you can do. You get access to these emotes and this customized experience. That's really, really fun. But what I -- so, what I realized when I started doing this was I started putting in the overlays. Thank you, Chris. I appreciate it. Then when you get into the overlays, suddenly there's this possibility of interactivity. As you've been seeing, there are boops falling from the sky. There's a little submarine in the corner. There are little overlays coming whenever somebody subscribes. You can see my goofy face. There are other sound effects you can do as well. Maybe someone wants to fire up off one or two of those. There's the submarine.
So, there are commands you can run in the chat to control the submarine. Now you are authoring this experience, right. That submarine is moving. You can change that submarine into a dumpster fire. So if you feel like the show is not going the way you want, you can make it a dumpster fire instead. And yeah, look, over here you can see little animated Jace within a growing or shrinking beard. That's something that Cassidy Williams helped me build out of pure CSS. Then we added some commands so we could make the beard grow, the beard shrinks, or you can make the arms flap if you want. And you know, all of this is interactivity that's been built, and it's all built in HTML and CSS. This is a React app. What you're looking at here, the box that I'm in -- hello, I'm in a glass case of emotion -- this is all built in HTML and CSS. And that is actually really, really fun for me. Actually, let me do this. Let me switch over into desktop mode so we can see things.
What I will do is show off some of the stuff and how it actually works. Oh, the videos coming from OBS. That's absolutely true. Yes. Let me show the actual stream scenes here. So these are the scenes. This is a Toast app. Toast is a meta framework for React, except it uses Preact under the hood for building like apps, websites. The Learn With Jason site is a Toast app. The Jason.af is a Toast app. The scenes are a Toast app. I'm a fan. You can see I've hard coded the size on these so it's intended to be exactly the same size as -- did you just freeze on me, computer? What are you doing? What is that? Oh, no, it didn't freeze. It just -- Firefox doesn't work the way I thought it did. Full screen, I thought, would get rid of the address bar but it doesn't. I expect this to be exactly 720p and it's not. That means that things jump around. So the way that this works, and you can see we've got kind of stream-ception here. As y'all are chatting, that chat shows up, right. It's on the page, and you can see like there's the sponsorship listing in the bottom. Actually, while I'm thinking about sponsors and before I get too far. Let me remind you, the show today is being live captioned as are all of our shows. We have Rachel here from White Coat Captioning. That's right on the home page. Head to learnwithjason.dev. You can see the captions happening live. Again, thank you, Rachel, for being here. That's made possible through the support of our sponsors. We have Netlify, Fauna, Auth0, and Hasura all kicking in to make this show more accessible to more people. That really does mean a lot to me.
Remember, you can click on these links when you get there. Go check out the captions. Go check out the sponsors. It's a good deal. It's a good time for all of us. Okay. So, what were we talking about? We were talking about the scenes here.
These are the scenes. Each of these is a unique URL. If we want to go to -- let's go to the interview. If we go to the interview, that's the heads up. Because I'm the guest today, it shows me twice. And each of these things is just a piece of code. So in a recent episode, we built the submarine overlay. So if you're interested in seeing how that actually works -- I got to make this page faster. It loads all of my episodes before we start. So in this episode here, we built the submarine. If you're interested in seeing how the submarine works -- Chris, thank you for the cheer. Oh, my goodness. Wow, we're 10% -- oh, wait. Final level of the hype train. I don't think I've ever finished a hype train. In fact, the only person I've ever seen finish a hype train is Cassidy. So, yeah, four minutes. You want to finish it out? Chris, geez, thank you very much. That's big.
But yeah, so let's -- oh, Chris is the author of Toast by the way. There it is. What up, y'all? Thank you so much. We finished a hype train. That's a first. What a great day! Okay. (Laughter) So you see this overlay. No, this way. That overlay happening over there, where you see the animated GIF come in, the name, and just subscribed. So, that is all controlled by Twitch events. But yeah, it's really, really, really fun. How did I create the thumbnails for the streams? That is all done in Cloudinary. I should show some code. This will be easier than me talking through how it works.
So, let's start with the scenes and take a look at them. And that opened in the wrong monitor, so let's pull this over here. Thank you, thank you, thank you, Xander. You are a gentleman. Thank you for the cheer. What a great day. This is so much fun. Boop it up, y'all. Yes, you can absolutely boop it up. You now have full control. So, let's take a look here at the general setup of this. We have the page wrapper. Then we have this kind of index page. So the index page loads in a router so we can get to /interview, /monologue, the scenes. It loads in React helmet so we can show the title. I feel weird when I don't, so I do. I also use it for loading in the style sheet. Then we bring in Socket Studio. Socket Studio is a thing I've been working on. I eventually want to launch this as a service that other developers can use to stream. What it does is basically gives you some hooks for using different things about your Twitch stream in the stream itself as part of your overlays. Then we bring in content, the lower third, and the overlays. Those all get dropped here. So we have our main overlay. I've got a top bar, which if you look at the top of the screen here, there's that gradient bar. That's actually animated. It's one of the more subtle animations I've ever done. Then in the router, we pull in our content and the overlay so those overlays actually change position a little bit depending on what scene we're in. Sometimes they're bottom left side of the screen, sometimes they're centered, et cetera. The lower third is down below us. If you look, another very subtle animation I've done, if you look at the Learn With Jason logo, which is to me -- yeah, this side. My video is not mirrored so I can never tell which way I'm going to point. Do you see those dots? Those polka dots in the background are actually animated, and I don't know that anyone has ever noticed that I haven't pointed it out to. I don't even want to tell you how long I spent making that work. (Laughter) Yeah, it's a lot.
Okay. So now I've got the overlays. I've got all these things. Then when we get into the content itself, we've got our scenes. So each of these is a route. Then I have the interview, monologue, para programming, et cetera. Inside of these it's just some HTML. This is how -- so, I use some CSS to put my face in the middle. So the one we're looking at right now is the solo. The solo here I have the desktop is a big empty box. I put the video of the desktop in there. I'll talk about how that works in a second. Then I have the box for host videos. So I'm the host. When I para program, we have the guest and me. Those end up being boxes that I set the videos underneath. So a little about how that works. I'm using software called OBS. I'm specifically using the Stream Labs flavor of OBS. It's short for Open Broadcasting Software or Open Broadcasting System, I think. It's a free tool. It's very nice. It's open source. Really, what a cool thing to get for free.
In it, I'm able to -- let me open up OBS on my Mac actually. This might get weird because I don't know what OBS is set up to show right now. Let's switch before I pull this over. Oh, yeah. This is the old one. This is the old Learn With Jason. So this is a version from way back in the day that shows my other desktop. So let's take a look at how this actually works. I've got my screen recording. Oh, remember that transition? That was a fun one. So each of these is a scene. So the scenes you can transition between. That's how the show works. When I start the show, I click over into, you know, webcam only or something. That moves into webcam. So you can't really see this webcam because it's using a different one, but if I change this over to say use my Logitech -- there we go. So then I've got my -- did that not save? Do the thing. Laptop, oh, that's what I did wrong. So here's my video here. Then if I want to do an overlay, I can grab this video, and I can -- how am I going to make this smaller? No, I want you to go out. No? You're not going to let me do that? There we go. That's not even the thing I wanted. This is the one that I wanted to change. Unlock, click. As you can tell, I'm an expert at OBS. So here I'm able to kind of resize this video, and I can move things around and get a sense of what's going on. As I'm moving these around the scene, then I can add other things in here. If I want to add in my display capture, for example, then I can create a new display capture, and I'll choose -- I don't like choosing this one because it's always weird inception. The other one is -- well, let me do this. Let me make this bigger, and then we'll capture my other screens so you can see my heads-up display of what I look at on my other monitor when I'm streaming.
So this then is my streaming display. I'm kind of building this out like so. On a bigger monitor, this is a little easier. Right now I'm kind of making do with my scaled down monitor here. But what I'm able to do then is I can put like -- here's my screen, and my screen sits over here. Then here's my video. Maybe my video wants to go in this corner, and then I'm going to put that on to so I can drag this up and kind of get them in the stack order that I want. As you can see here, this really starts to take shape. It starts to look like a stream. You know, I can add more stuff in here. If I want to add an image or whatever, I could go get -- let's go get an image. I will grab, I don't know, any image. What's a good image? Oh, you know what I just did? I just curated a folder full of memes. So, let me do that.
I'm going to get my media, memes. Let's go in here. Maybe we'll do -- how about -- this one. So we'll take this image, and then we can drop this image right up here. There. So look, we're doing stream design. This is beautiful. What a great stream design. I'm going to win some awards for this. But you can see kind of how this takes shape. We start putting together all the pieces of the stream, and we just layer them up. Then if I wanted to add an overlay, for example, I could do -- let's see, do I have one that's easy to add? I think I have the subscriber overlay. I do, and I think that one reacts to any -- let's see. Did I set this up to work with any command?
No, it's not that. You know what, I don't remember what triggers that one, so I'm not going to try to use it. It's like a work in progress that I've been trying to figure out that Prince is going to come help me with in a few days. But here in OBS, I have all this stuff set up. I have a start streaming and a start recording and a studio mode. If I go into my settings -- and I'm going to do this off screen in case it shows anything. It doesn't. Okay, so check this out. I have the services that I can stream to. I can choose any one of these and pick where I'm going to stream. Then you can choose your server if you want. I haven't ever done that. If you hit this get stream key button, I'm pretty sure that it will go out to Twitch's auth and pull that down for you so you're set up and ready to go. So if you're interested in streaming, you can download OBS. You can set up your webcam and set up your desktop, just like this, like I just did. Then you can hit that start streaming button, and you are a streamer. There's literally nothing else you need to do. As Chris would say, just push the button. It's really nice. I love this general setup. I love the approachability of it.
That's another thing I like about streaming, that you can go as deep down this rabbit hole as you want to. But ultimately, all you really need -- and we don't even need -- you know what, you don't even need a webcam. You can just go live. Like, this could be you. You can go, you know, decide you're going to make something work and just make it work. Get out there and start streaming today. And that's a really powerful way to set things up. All these transitions and things are all -- yeah, they're all doable. You can get there over time, but it's a process, right. It's not the kind of thing you sit down and build out this whole streaming setup. It took me two years to get to the point where I am today, and I just make incremental changes over time. That's really how this goes.
So let's see, let's look at some questions here. This stream about streams deserves its own stream. I agree. Let's see. Are the overlays their own site? They absolutely are their own site. Actually, let me show you how I do that. So I have the LWJ scenes. Then let me pull one of these up. I've got the monologue. Okay. So I'll take this and go into OBS and I will do a browser overlay. Where is it? Browser. Then I'm going to pop this in here, put it at 1280x720. We can control the audio via OBS if we want. I'm going to let it go. You'll notice it sets the background to transparent. So then I drop this in, and there's my browser source. Okay. So then when I turn my webcam on, my webcam -- let me lock all this stuff so I can move things around. Now my webcam is here, and I can just start making things the right size. Like, I would go here and maybe I drag this a little bigger so that it fills the space. Then I move it around a little bit more. Then boom, here I am. I'm now streaming. I'm streaming with my overlay, right. If I go and make changes to this website, I can refresh it and it works. This is kind of the power of how this stuff works. You're not doing magic. You're just layering things together, and you build them up a little bit at a time.
The block is transparent because I didn't set a background color on it. In the browser, it's -- yeah, like, it all works. And could you run this local host? Absolutely. To the best of my knowledge. Like, let's try. Let's see if it works. I'm going to Netlify dev. And we'll see what kind of mess I've made on this branch since the last time I ran it. Oh, in this new world of video calls and Zoom, would something like OBS be useful for presentations instead of just screen sharing? Absolutely it would. I feel like this is something that's really exciting because what you're able to do with OBS is -- so OBS, this software, has a plug-in called virtual webcam. If you do that, you can stream from OBS as a webcam that you can then add as your camera. That means you could show up on Skype calls, on Zoom calls, Webex, whatever you're using. You could do that with -- yeah, like, it'll work. So let's go to the monologue again. Okay. Then if I come back here and I change this to be the monologue and I reload, is it going to work? Yep, there it goes. Okay. So we're running local host. But yeah, this is -- so like, you don't even need to deploy the site. You can just run it locally. You can have your whole streaming setup as a start-up command and then you tear it all down. So this is very, very flexible. You can do a lot with this. Again, because this is a website, we can do all of these fun things. Like, you know, we've got the submarine here. And when we start running this command, it's going to move around. There it goes. It's moving. So this gives us a huge amount of flexibility as coders. We build websites, right. That's what we know how to do. So we don't have to become video experts. We don't have to become broadcast experts. We can just build websites and play with these ideas. That's why I'm so excited about Socket Studio.
I can show you how it works. If I go to the submarine, what Socket Studio lets us do is I can pull in the Twitch chat with a React hook, and then I can pull out the current command, which I've aliased to command. Then I check to see whether the command is pet and whether the pet is one of the ones that we've defined. By the way, this is all open source. If you want to play with this code, it is available. Let me stop this. It's available out at -- that's the wrong -- why are you always opening in the wrong window? Please don't be like that. How about you come over here like you're supposed to.
All right. So we have the scenes up here. If you wanted to add a new pet, you could absolutely do that. If you look in here, these are the images. It's in the static folder. You can go into source, components, submarine, and you can just add a new pet. So any pet you want to be able to put on the screen, definitely keep it G-rated, y'all. We're not doing anything weird out here. You can go open a pull request and co-author the scenes, an interactive scene. Fly a drawing you did around the screen, if you want. That's what I think is so powerful about this. You don't need to get outside of the skills that you already have. You can use the web development skills that you have right now and build these really interactive experiences. It's super fun.
You know, I'm looking at this -- no, look, hold on. Stop moving it. Look, look. If we put that on a hat, I would wear it. I should make a dumpster fire hat. Who's in for a dumpster fire hat? Ben! Look at all these gifts. Thank you so much. What a wonderful person. Can I sponsor a lemon? Yes. Just put a lemon in. You don't even need to sponsor it. I'm in. Okay, dumpster fire hat. I want it. I want a dumpster fire hat. I'm going to make it happen. I will send an email today. Let's see how long it takes me to get it done.
So this is like really, really, really fun. I think there's so much potential with what we can do here. I see things that are -- I killed that scene. That's why it's not working anymore. But the potential I see with this, there's so much that we can do with these overlays. You know, one example is there's a tool out here called OBS.ninja. The way that I bring in guests right now is through Zoom. But this tool here will let you add your camera, and then when you add your camera -- so if I do this and choose, let's go with this one. I don't think I actually need one of these. Let's do the internal mic. So now -- cool, thanks for not remembering any of my settings. Do you not work? There it is. There it goes. All right, cool. So check this out. I've got all this, and when I go to start, now here is a URL. If you put this into another page or you put this into OBS, this is now an actual URL that I can consume. So I'm going to hang up because that's going to fry my computer if I try to stream from like eight places at once. But this is a really, really powerful -- or let me add a link to OBS. This is a really, really useful thing. Yeah, listen to Ximena. You now have permission to add boops. You can add Corgis to the screen. You can do all sorts of things.
But yeah, so this stuff is really, really powerful, and it gives you a lot of flexibility without having to become an expert in other things. It's such a powerful set of technology. At the end of the day, I'm just making websites. I'm playing with website ideas, you know. Even if I want to do something ambitious -- like, check this out. This is one I've been working on. Are you going to work? That's not the one. This one. This is a fun idea that I've been cooking around. Whenever somebody subscribes, I want that to come out. I want this little version of me to walk out on screen surrounded with hearts because it just makes me smile. And I haven't been able to figure that out yet. Hopefully that's what Prince and I are going to figure out on our next stream together. But, you know -- I love the Corgi stampede. It makes me so happy.
Okay. Here's the OBS project. If you want to get started, you can download that today. And it works in all platforms. You can use that wherever. Extra Life banner. I want to take a look at this. This is fun. So here's this Extra Life banner. That's fun. I like this. That's fun stuff. So yeah, definitely, the possibilities here are pretty -- Chrisomator, there's a burning trash box on my cap because the chat wished it to be so. You can use the commands up, down, left, or right. So use an exclamation point and then the word up, down, left, or right. You can change it into a submarine by using the command pet submarine. There it is. Oh, good. Glad you're putting it right back on my face.
There's a demo CodePen on the right. Yes. I mentioned slobs. I use Stream Labs OBS. Slobs, one of my favorite acronyms. The reason I use it, I don't have a good one. I don't really use any of the Stream Labs features. I thought I was going to use a lot of the Stream Labs stuff, and then I just didn't. Do I recommend streaming in 720p over 1080p? I personally do. I stream smaller because -- for a couple reasons. One, I don't think a lot of people are watching streams full size. You know, chat, you can confirm. How many of you are watching the stream full screen right now versus kind of minimized in the Twitch player? And the reason that I stream at 720p and use bigger font sizes, aside from the fact that I'm just getting older and it's hard for me to read small font now, I like the idea that if somebody is watching this in a smaller player, they can still read the code. So full screen is great. You can read a lot. If there's something super detailed, I might zoom out so you can see it all on the screen and pause and full screen it and take it out. Generally speaking, it's done in bigger fonts and for smaller screen sizes because I'm assuming that you're going to watch like 600 pixels wide, not at 1080p. But yeah, that definitely is -- (Laughter) I thought you were serious you were on your watch, Chris. All right, chat. Let's get this thing off my face a little bit. Got to go up for air.
But yeah, so theater mode or full screen on your TV. I have definitely seen the full screen on a TV. That is the most flattering thing, to see Learn With Jason up on a TV like it was a real TV show. Okay. Submarine to the sky! Brad, good question. So Rodecaster versus Go XLR. First of all, huge disclaimer here. Gear is like a deep, deep, endless rabbit hole that can cost you tens of thousands of dollars if you're not careful. So please, please remember you do not need any gear. You can use the camera on your laptop, and you can use the mic on your laptop and still be a good streamer. You do not have to buy gear. So take everything I'm about to say with a big grain of salt because what I'm about to say is very expensive.
What I use is a I have a Sony DSLR. It's the A50-100, I think. Then I have a lens on it. I have a lens with a low F-stop. That's why there's some kind of blur in the background. Actually, you can see how I immediately start to blur if I step out of the depth of field. That's so I get this nice kind of sharp in the front and burred in the back. That adds a nice cinematic effect. That lens itself is as expensive as the camera. That runs into what's called a black magic web presenter. That turns the DSLR into a webcam so I get an HDMI cable that runs out of that. Oh, yeah, you can absolutely use your iPhone as your webcam. That's a great solution. But yes, the DSLR goes into the black magic, which then goes into my computer and shows up as a webcam. That's what I'm using now. It shows up in my list as like the -- I have my laptop camera, then I have the black magic web presenter. So I choose that one.
Then on the mic side -- so this mic is a sure SM7B. It's a super high-quality mic that's super finicky. You have to run that into a pre-amp or what's called a -- I use something called a cloud lifter. What that does is it kind of gives you some signal boost. This mic, it picks up very clean sound, but the sound is low. So you need specialized gain boost. So I use the cloud lifter. Then the cloud lifter runs into something called a DBX-286S. The DBX-286S is a pre-amp. It also has -- it does compression. It does noise limiting. It does de-sing. One of the reasons I did this, and this is probably the most important reason, you can hear my audio is very consistent. And part of that is because I practice like projecting. It's something I've practiced as a speaker, trying to use an outdoor voice all the time. I'm sure people around me love it. But because of the compression, the volume of my voice doesn't actually affect the volume of the output that you're hearing. I can give you a demonstration of this.
So right now I'm speaking at what I would consider my presenter voice. It's louder than it needs to be. I'm sure my partner's in the other room like, shut up. But that's how I speak. If I get louder. If I start using my yelling voice, it doesn't get any louder through the actual stream. I might have maxed the mic out. I don't know if it did any clipping just now. Then check this out. If I go to my whisper voice, my nighttime DJ voice -- hello, all you cats and kittens. Let's talk about websites. You still get -- that sound is the same. It didn't dip way down. That's because of compression. So the reason that it's worth doing is because you get that consistency of volume. You don't get part where is people need to turn the volume up because you're having a, hey, let's have a serious moment, let's really talk about why this is a big deal. Then I get excited about something and I'm yelling and going too loud. I don't want you to have to mess with your volume while you watch this show. So that compression is very important. I know, I'm very sorry about cats and kittens. (Laughter)
Then I actually use what's called a line cleaner. So it's a power conditioner, and that is to make sure that the electricity from my wall is very even so that I don't get hum. Have you ever listened to a microphone and in the background there's this really annoying ambient hum? That's actually because of electricity fluctuations. It causes noise on microphones. So anyway, all of that -- oh, and listen, what LemonPodcasting is saying, that's really smart. You can use OBS to do some of this compression stuff and some of this noise gating. Hardware is going to be more effective than software because software can only take the end signal and manipulate it. Hardware can change the signal. Is it worth the money? Not unless you're making money from it. Like, that's what I would say. If you're doing something where this is professional, it's part of your career, you're doing it for your job or something like that, it makes sense to invest. If you're doing it for fun or you're doing it to try to position yourself to get a job, don't spend too much money on it. There are diminishing returns on how much hardware will make a difference. It really is a rabbit hole because I'm looking at this pile of gear, and I already have a list of other gear that I also wish I had. Because once you start learning about it, you start learning more about it, and then you just get sad and yeah. Or as Chris is saying, it definitely does make it easier for other people. Like when you send in audio for a talk or you send in audio for a podcast like Chris is mentioning, that generally ends up being much easier for them to edit. They don't have background noise to deal with. They don't have clipping or audio fluctuations. They just drop it in and they're good to go. Nobody needs a piece of audio gear. Everybody needs another piece of audio gear. Yeah, exactly that.
Yeah, Joel Hooks and Chris Biscardi have been the best kind of bad influence on me. As a result of knowing them, I didn't have to figure this stuff out. I got to just kind of step into a solid setup, which has been great. You know what, that's fair. People don't typically expect folks to have pro audio gear. That's a pretty unreasonable expectation because the gear that I'm looking at, this is a multi-thousand dollar investment in making audio and video look and sound good. So when I have somebody on the show, I don't care if they're on their Macbook mic. But then it gets embarrassing sometimes. They're on their Macbook like, I could have been using my pro mic this whole time. But I don't want to make somebody feel bad for not having gear.
Anyway, this is definitely -- gear is a deep rabbit hole. It's a very fun rabbit hole. If this is the sort of thing you find interesting, like hardware stuff, and if you're in a position to make investments in it, it really does make a big difference. And it is really fun. I didn't even talk about lights, but as you saw in my webcam, back here is a light. Sorry, there. That is a light. Behind me you can see this. That is a colored LED. That's how I get the blue and purple behind me. Then I have a key light right in front of me here so you can kind of see how my face just got dimmer. I'm covering my key light. Then over here I have another one. This is my accent light. So I have four lights at me right now. My field of view is very finicky because my camera is fixed. Actually, I'm supposed to be standing right here. If I have my belly to my desk, I know that I'm in the right place. Then I start getting animated with my hands. I've knocked over two coffee cups in two weeks, and I'm really worried for the life span of my computer. So I've started getting nervous.
However, if I was willing to, I could get a -- I got like the mid- low-range DSLR. If I get the next level up DSLR, the auto focus works better. The one on this one is tweaky. Like, it'll kind of be focused and then kind of do a boop-boop. I hate that. I just leave it focused at where I should be standing and try to remember to stand there. Need more cameras so I can have free hands view. (Laughter)
Yes, Chris! Yeah, so Chris has the same camera body as me, I think. It's a very -- it's just a very frustrating little twitch that the camera has when it's trying to auto focus that drives me up the wall. So, okay. Let's talk a little bit about -- actually, what do you want to talk about, chat? What questions have I not answered here? Actually, who here streams? Give me -- let's see, the F in the chat is if something goes poorly. Give me a yes in the chat. Brad is a streamer. Bobby Tables, I know you stream. There's Chris. What up? Oh, yeah. That's a good call. Drop your Twitch links. Let's start following each other here. I think there's definitely some good -- there's some really good streamers in this chat already. I'd love to see some folks who are up and coming. Eli asks, do I have a separate streaming computer? I do. When I first started, I did not. That worked for quite a while, but I found a couple problems.
The main problem was that if my computer got below about 20% battery, it started doing like memory protection. So it would gate how powerful things could be. And everything would grind to a halt. I think I could have mitigated that by just plugging things in, but what I noticed was that when I was running OBS and I was running some kind of heavy node process and I'm trying to do development and I've got my webcam running, it just -- like even plugged it, it would ratchet down 1% at a time. That always made me nervous, like I was going to run the wrong overpowering process, and even when plugged in I was going to get below 20 and the stream would chug and die.
I also had a couple streams end because they just stopped working. Like my computer hit some limit that day, it couldn't keep up, and it just crashed and died. That was it. And that was a huge bummer. I did not like that. So I invested in the second computer so that I could split the processing duties. So the way that this works is I have a Windows PC that is what I'm streaming from right now. That Windows PC has my webcam running into it, and it has the desktop of my Mac running into it as like a display source, more or less.
The way that works is I'm using what is called an El Gato capture card. I use the HD60S which is a kind of external device. It's about this big. And I run an HDMI cable through that. That lets me pull it in. The desktop runs in live. So I'm working on my Mac right now, I move things around, and it shows up on my PC about 100 milliseconds later. So that allows me to let the computer, the Mac -- the Mac takes the brunt of the coding work so I can run heavy processes or do big processing things in the background without the fan spinning up to a thousand. Then the PC handles all the streaming work and all those things, which has helped me -- I've noticed it has resulted in fewer networking hiccups. Like, I don't have as many issues where the Twitch stream quality dips all the sudden because I did something network heavy on the coding side. That's been really, really helpful.
So then, let's see. I think I saw a couple other questions here. What does success look like for the stream? Okay. I am in a unique position, I think, where I -- let's see. Let's talk about what success looks like for the stream. For me, success in the stream is we have a good time, everybody who shows up leaves feeling like they were part of something, that they learned something, they had a good time, and the guests feel like they got a platform to talk to more people and show off something they're passionate about.
The stream for me, Learn With Jason for me is -- I have had a very fortunate career. I've been really lucky. I've met wonderful people. I've gotten access. I've had a lot of privilege. As a result, I've been able to get into the position that I'm in today where I've got this amazing job at a company that actually treats people well, and I have -- you know, I've got close to 100 people watching this thing live right now. Because of that, I want to -- what I can do kind of looking forward, I don't want to do much more for me. I'm pretty happy. Like, I make good money, I have a lot of fun, my career is exactly what I want it to be. So I don't need much for me. Now I'm looking at what does it mean to go beyond me. Like what does that look like? So a lot of what I see with Learn With Jason and other work that I do is this opportunity to be a part of the tide that lifts all ships. So how can I find people who are doing -- like I see so many people doing the work, then they just need more people to see it or they need that shot to legitimize what they're doing or someone to take them seriously so they can show off how good they are.
It's important to me to kind of do a mix of what people are aware of already, you know, like we have the shows on stuff that you've definitely heard of before. Then I want to do shows on stuff you haven't heard of before or with creators that are getting started, right, to give people that opportunity. What I really love is when I get to see somebody who I met them when they were at the very, very beginning of their journey, and they come on the show about midway through and later I see they get their dream job or they're doing something that is far beyond what I'm doing, and I just get to be like, that's so cool they got there. If I got to play a tiny, tiny role in that, that means so much.
But yeah, in terms of success for me, I think success is very much on the way it makes me feel. I never feel like I have to do the stream. I feel like I get to do the stream. I never feel like the stream is selling anything. I feel like the stream is showing people what's out there. Those are all important metrics to me. I like the fact that I look forward to this every week. Like I've never been like, oh, got to go do my stream. It's, thank God, today's a stream day. That to me is probably the biggest success metric.
In terms of company things, like if I was going to measure this for a company, if I was spinning this up as part of a department or something, the metrics that I look at are like participation. If you get a thousand people to watch and nobody is in the chat, are they actually watching? Do they care? Are they interested? Are you being approachable? Are you doing something that's worth engaging with? So I'm curious to see like how many people are, you know, putting stuff in the chat. How many people are dropping boops and playing with the submarine pets and making jokes. That, to me, that's the metric that shows things are happening. That's where we're building a community and it feels like we're all kind of in this together. We're making episodes together. That feels like the strongest indication that you're using the medium for what it's for. If you're not interested in engagement, just put it on YouTube. Like, who cares.
How do I get my overlays to listen to Twitch commands? So, the way that Twitch works is Twitch chat is IRC. So you can listen to the IRC and then pull those events out and do things with them. I've built a thing called Socket Studio. You know what, I got to quit OBS. Remember I was saying OBS made my computer chug. My fans are running at like full speed right now. Let me close that. And I'm going to go to Socket Studio preact. What I use is this Socket Studio thing. If you wrap your React app in the Socket Studio provider and drop in -- stream blitz is the old name. I originally called it stream blitz and found out that was already registered. So I switched over to Socket Studio, which is now a business that I have registered and am finalizing the paperwork now.
So you use this API, and then create a client and wrap your app. Then inside of that, you get this hook for Twitch chat. That gives you the chat, any commands that have been run, and the current command. The reason I give you a queue of commands is so you can de-dupe if you wanted. Like if you have a really noisy thing and you only want it to run every 30 seconds, you could keep track of that or something like that. Once you do that, you get these things as data. You can react to them as you want. So, that's really fun. It's a pretty enjoyable way to build things.
Honestly, if you wanted to use this today, you could probably reverse engineer it and try it. It's absolutely alpha software, and it absolutely might break. But it is something that I am intending to get a little more serious about. It seems like something that opens up a whole world of fun and is a little easier than some of the other approaches out there of kind of dealing with IRC raw.
Oh, good jokes. Good jokes. Scanning for questions here. Yeah, Jacob is streaming. Pheubar. Yeah, OBS on Macs is definitely an issue. My fans are up all the way. Yeah, behind the scenes. Thank you for gifting a sub. That's very appreciated. Remember, if you got a sub today, you can drop some boops. Any comments on the Netlify outage? Actually, I will comment on that. First of all, it's a huge bummer. It's also something that is happening because of -- there's a way you can set up sites on Netlify that introduces a single point of failure. If you have an apex domain and you're pointing to the one IP address, that means that you've introduced a single point of failure on your site. There's a reason that we advise against that. You should use Netlify's DNS because that has fail overs. Or if you use C names, we can account for that as well.
But that apex domain address is a Google load balancer. Unfortunately, Google had some issues today. That load balancer is where the outage kind of happened upstream, which means if you were only relying on that IP to get to your Netlify site, then you're stuck until that comes back. The mitigation is in progress. I know it's coming back already for some folks. I haven't looked since the stream started, so we are, you know, 45 minutes or about an hour since I've checked on it. It might be back up by now. But yeah, it's a good reminder to look for those single points of failure. When that guidance is there, like, hey, this is not recommended, there's a reason it's not remmed. That's a good thing to keep in mind, y'all.
Let's see. So how do guests get on the show? Typically speaking, I recruit guests or my previous guests will recommend folks to me. I'm always open for pitches, but I will say I am not -- there are not too many pitches that I've gotten that I've been like super stoked about. A lot of times it's been for something that was either built by somebody else and I'd love to let the creator come on, or it's been something that is just not -- there's kind of like a hyper specificness that happens at certain levels. It's hard to make that relatable. But please feel free to try, but please don't feel offended if you don't get a response. (Laughter) I get a lot of pitches, and I'm very sorry if I don't get back to you. But yeah. Aww, Ximena, this show is the reason you got into Twitch. That really does mean a lot to me.
Would I consider adding live captions when I upload the videos to YouTube? I thought I was doing that. I should go and fix that. Hmm, yeah, I should go figure that out. Yes, the captions are on learnwithjason.dev. They should be uploaded to YouTube, though. If they're not, that means I'm doing it wrong and need to figure that out. So I will go do that.
Can we see how the voice commands are set up? Absolutely you can. It's one of my favorite things. So the way that this works under the hood is if we go to -- actually, we have the code up already. Let's go look here. We've got the effects in this one, and I'm going to make this bigger. So the way that it works is I've got this hook called use sound effect. I built this kind of specifically for my overlays. So the way that use sound effect works is it gets the command out of Twitch. Then it uses a state machine to figure out which effect it should be playing and uses a queue so they queue up. You noticed earlier today when someone adds -- like somebody gifted ten subs. Ben gifted ten subs. Then it played the animation ten times in a row. Instead of playing it ten times all at once, which would have been kind of chaos. That's because it queues. If we look at the machine -- and I just had David Khourshid on the show earlier this week. If you're interested in state machines, that episode is live and a really fun one. We look into state machines and why they're useful. I would definitely recommend checking this out one if you're interested in learning more about state machines.
But the way this works is we have the commands. They start in an idle state, which means nothing is happening. When somebody adds a command to the queue, we head over to loading command assets, which runs a function that loads the assets and then moves over to starting. Starting then waits for the transition duration, which is, I think, a second or half second. Then it moves to the active state. The active state starts the audio playing. Then after the command's duration, which can be set by the command -- I'll show you how these commands are actually defined. Then it moves to the stopping. Stopping waits for the length of the transition, and then it checks to see if there are more queued commands. And when it checks for more queued commands, if there is a new command, it starts the next one. Otherwise, it goes back to the idle state.
So effectively, the way that this works is it's going to listen for commands at all times. This handle queue is how it checks for new commands over and over again. Like if you -- at any state, if you run a command, it will queue it up and put it into the queue so this one catches it and starts the next one. But starting the next command, it gets to the next command and moves over to loading the assets again. If anything goes wrong in this case, it will look to see if it needs to start the next command or it just goes back to nothing so it fails gracefully. I did this just in case there was a way somebody could put an invalid command that would load improperly or if there was a network error that prevented the sound from loading or something like that. So it'll just fail gracefully there.
Then all of those functions that I talked about, those are defined down here as actions and as services. So this is kind of how XState works again. I'm not going to go too deep into that, but the way those are then configured -- and this is the part I think is so exciting -- is if I go to the Learn With Jason website and go to this functions folder, these are my commands. They're all serverless functions. So each of these has an object. I have a thing -- this comes out of stream blitz. It'll eventually come out of Socket Studio. Creating a handler, you send back a name, a description, a handler function, and the handler function has audio, image, and duration. If you supply these things, the audio that plays when you run the command is here. The image that displayed on the screen is here. And how long it runs is here in seconds. So if someone runs the "ahem" command, it'll spend three seconds playing this audio and showing this image, which is really cool. So if I run this, we can see it happen. There's the command. Three seconds later, it'll pull out. See? So this is an abstraction that makes it really, really easy for me to add these commands. Because of the way that Socket Studio is set up with the hook, responding to these is surprisingly easy, where I just get to look at the current command and say, oh, I want to use the function tied to that thing. The use Twitch function -- the TwitchChat is inside of Socket Studio. I like that I typoed this. So, inside of this what use TwitchChat does is it hooks up to the library TMIJS, which takes the IRC and turns it into event objects and determines what kind of thing it is. It pulls out emotes. So if you use an emote, the actual emotes are text. Instead of being the boop, you have the word jlengsboop. But when I get to chat, it's not an image. It's a reference to that emote. So I need to retranslate those back into the emotes using Twitch's CDN and finding the emote image files and all that kind of stuff. So it does a lot of helper things that makes it easier for us to make that work.
So, yeah, you can see that work. Then if you look at this list of commands, there are few in here that aren't commands. Like I have an API. So getting the episodes, that's not a command. But each of these is. So you can run a boop command. You can run the Chris command. You can run the -- flush, I don't think we ever figured out making it work. I think we got this one set up so that it would work, and then I never actually built the part that handles it. (Laughter) But yeah, we've got haxxors and all of these fun things. And if you want to add one, like anybody who wants to can then go and pull a clip from the show, anything that's not protected by copyright. You can pull a clip and submit a serverless function, and you would be able to contribute an effect.
You hackers. You dirty hackers.
That's right, y'all. You can be the dirty hackers that are referenced in that sound effect. But so this is a lot of fun. What I love about this is a decent number of these have been -- actually, I think every single one of these came from interactions with the chat. Somebody said something, and I made a joke, and we turned it into an audio clip and now it's here. Your code is not garbage. We do need -- Xander, that's what we need. We need that to be like a ten-second meditation clip that we can put up as a sound effect. That sounds like a lot of fun. Did I miss any questions while we were talking about that? Let's see. We got about 20 minutes left. If you've got more questions, fire them off now.
I rolled my own alerts versus using something like Streamlabs. I did, and the reason I did is because I'm extremely extra. I wanted to see how it worked, and so I started poking around to see what would happen. Then I got carried away, and here we are. But there's a couple reasons that I did it this way. One, I'm not particularly fond of the Streamlabs approach of boxing everything up and putting it into kind of a constraints base where you have to do a lot of CSS overrides to make things work or to customize things. I also don't particularly love UI based config for this sort of stuff. That's a preference, not a fact. It's just a thing for me personally. I spend so much time working in code, I would prefer to deal with my overlays in code. But yeah, there's a huge amount of -- there's a huge amount of overkill kind of setup here that allows me to do things the way that I like them. Which is part of the reason why I'm trying to turn Socket Studio into something other people can use.
I assume I'm not the only person who wants to do this stuff as web tech and note through UIs or cobbling together different overlay sources in OBS. And for people who are interested in doing that, I want them to have the tools instead of having to build their own extra hooks and stuff like that. Let's see. Can I show us how the alerts work in my code? Can you rephrase that question so that I know which thing you're talking about? So some of the things I actually do still use Streamlabs for. The bit cheering, I haven't built that yet. That's still done through Streamlabs. Let's see. Can I do transitions? I have some transitions.
These transitions are done through OBS. I set up what's called a stinger. This is the only thing that I've ever done in After Effects that was good. You can see it. Did you see that? Did you see that cloudy gradient rainbow? Like, what a -- wow, isn't that cool? I made that. I don't know how. (Laughter) But that has been -- like could I do it in code? 100% yes. Do I know how right now? I do not. I almost feel like the way I would end up doing it is through chat commands, honestly, if I was going to do it. You can trigger anything from those commands, and I can limit them to broadcasters only. So I could run an interview command in the chat that would switch me over to interview mode. And actually, that would even allow me to let mods do it, too, so if I had forgotten to do something, they could fix it on the stream, which would be really fun.
But yeah, so let's see. How do the seamless transitions work? So, the seamless transitions are in OBS itself. I think Chris just did some work on this, and it's really, really slick. It looks really nice. It's so good that it's tempting for me to like go and use it, but I don't want to give up all the flexibility I have with the web-based overlays. I also have to do a bunch of stuff. Like my sponsors come out of a database. My overlays, like the guest names and the show title, that's coming out of a database. So off the Learn With Jason site. That means I don't have to update. If I didn't do all of that stuff, the OBS stuff is pretty dang tempting.
Let's see. That's all part of the Twitch IRC stuff. It comes in. Socket Studio currently gets those events but does not relay them. It relays subscriptions now. That's all just feature work that needs to be done. At the end of the day, you'd be able to just use bits or use cheers or something like that.
Oh, goodness. Actually, Chris' stuff is really cool. Let's do a shout out or see if my shout out command works. Chris Biscardi. If you're not following Chris, you should -- he's in the party Corgi -- oh, my god. I'm so bad at this. Did that one work? There it is. Okay, yeah, go do that. That's just me forgetting how everything I'm talking about works. So that shout out, right, is another command that I think only broadcasters and mods can run. Is it party Corgi? I have a command somewhere that shows the discord. I can't remember what it is. I think I might have broken it. But anyway, there's a Discord that you can go to. Discord.gg/partycorgi. Is that the one? I hope it doesn't need a hyphen. No, that's the right one. Okay. So that's the chat. You can also find the website up here, partycorgi.com. This is a good place to go if you're a streamer or want to learn how to stream. I love Party Corgi. It's got a COC. It's got a really good group of people in there. Everybody is super supportive. It's actively moderated. So it's a very safe space to go and learn and share. In addition to streaming, people are doing content creation or just learning together or playing games. You know, we play Fort Nite in there, Minecraft. So you can go in and hang out. They do quiet co-working. Lots of good places to go and hang out and just be around people who are interested in a huge variety of things.
Yeah, okay. We've got 15 minutes, chat. This is your time. If you've got more questions, you should do that. Let's see. Getting back into streaming program. Discord, AKA the good teams. It'll be interesting to see how that goes. What my Twitch display looks like when I'm live, sure. I can pull this over for a second. Did that work? This is what I'm looking at while y'all are streaming. This is kind of my general set. But yeah, this is how I keep up with what's going on and make sure that I can see the chat and I'm ready in case something goes wrong. I can hop to the ban commands, swing that ban hammer. But I think this is -- yeah, get velvetized. That's how that works. If you want to pitch me to be on the show, you can send a DM or email me. Jason@Lengstorf.com. Again, I absolutely want to hear your pitch, and I really hope it doesn't hurt your feelings if you don't hear back from me because I get a ton of email, now that I've fixed my email. I don't know if y'all noticed, but a few days ago I took my whole email server down for like a week. Tell us about pizza. What do I love? Hmm, I do love pizza. Recently I've been on a pretty passionate Detroit style kind of adventure. There are only two places in Portland that do good Detroit style pizza, but it is very good. You know, I don't have the extreme feelings about pineapple on pizza. I don't love it. I don't order it. But if that's what somebody else orders, like, I'll eat it. It's fine. I don't care.
Let's see. What is a team in Twitch? That's a good question. So a team in Twitch is kind of an arbitrary grouping of Twitch streamers. If you follow a team, you can get -- you can kind of watch a teams channel, and it'll just move between who's live in that team. Like I think I'm part of the live coders team, but I don't really do anything with it. I think some teams are more active than others. I also think that there's a much bigger incentive for teams with like the gaming Twitch community. I haven't seen -- yeah, I haven't seen a big uptick in like teams usage for coders.
The velvetizer. (Laughter) Oh, Ximena, you're dreaming about the velvetizer. Wait until you try it. Detroit is not in Portland. Detroit is in Michigan, which about two-thirds of the way east from where -- I'm on the West Coast of the United States. Detroit is near the Great Lakes. So if you look at a map of the U.S., there's like that big chunk of water in the middle. Detroit is near there. So they are famous for square pizza. Actually, let me pull up a Detroit style pizza. So this is Detroit style pizza. The hallmarks of it are you can see here the edges -- like there's no crust on it. The cheese goes right up to the edge. That's kind of a feature because the cheese gets really crispy there. It's really delicious. Then the other thing is that a lot of times the sauce on a Detroit style pizza gets put on top so the cheese bakes into the crust really well and you almost get a cheese bread, which is really nice. I don't know if Burnham is here, but he has opinions. I'm a big fan. It's almost like a focaccia style. That being said, if I can find a good Neapolitan style pizza. This pizza is so hard to do right that it has a certification process. You have to get this group of inspectors to come and measure that your ovens are the right temperature and you cook pizzas -- these pizzas cook so fast, like in 90 seconds. You have to use the right kind of tomato and the right kind of cheese. It's very, very restrictive. But if you get a chance and you get to go to Naples, there is -- in the book "Eat, Pray, Love," there's a pizzeria that does like the pizza. I haven't read "Eat, Pray, Love," but I think this is the reason love is in the title of the book, because she ate this pizza. It is so dang good.
We went and waited in line for like an hour because, of course, everybody got wind of this because that book was huge and wanted to go to this pizzeria. I think they were famous before, too. But, ooh, it's good. Real good.
What do you think, chat? Do you like this kind of chill stream? I've been contemplating whether these are interesting. I really like doing the guest-based stuff, but I do like this idea of doing a little more chill chat. So you tell me. What do you think? Do you want to see more of this? Do you want to stick to the guests? Let me know in the chat. I like it, both, more Jason. (Laughter) I literally just ate and now I want to eat pizza. So, I wasn't planning on getting pizza today, but I'm definitely doing it now. I think Marisa, my partner is Marisa. She has tamales in the fridge and doesn't have enough for me, so I'm going to order a pizza. Yeah, no, this definitely wouldn't be my all the time. I think at most, I would do this like once a month. I feel like we're going to run out of things to talk about. I can only talk about pizza for four or five hours, tops. So we're going to run out of material here pretty soon.
Marisa is going to be so mad at me for bringing it up. (Laughter) She is. She's going to be furious. Handmade pasta, I love handmade pasta. We learned how to do that. We got a good recipe on like how to do it with the pile of flour, crack an egg into it. So good. So much fun. Pop Pizza, actually, that's the one I was thinking of. If I don't get Pop pizza, what I'm going to get is Ranch PDX. It's an actual focaccia dough. Look at this beautiful pizza. Oh, my goodness. That's a delicious pizza right there. They get this nice crispy bit. And they make this house ranch that is just killer. So -- oh, Andrew, what's up? I didn't even read your user name. (Laughter) Yeah, Andrew is a local. Scotty's, I haven't been there. Should I try that today? All right. We've got adventures. Now I have Googling to do. Roll that beautiful pizza footage. Yes, we should. Scottie's is the truth. Oh, now I want to see pictures of Scottie's pizza. Oooh, okay. I'm seeing good things. All right. Okay. This isn't Detroit style, but maybe today's not a Detroit style day. Can I eat this whole pizza to myself? Probably. Should I? Probably. Okay. All right. (Laughter) I'm going to stop torturing you with food photos.
So instead, let's talk a little bit about what's coming up on the show because I've got some really, really fun stuff coming up. Something I'm excited about, this is builder.io. It's a tool that I haven't used before, but I really like what they're doing. It's kind of like visual e-commerce building to make it a lot more approachable, a little more fun. Like I said, we've got Prince. Coming back. We're going to do the real-time notifications with the Twitch API. Then we've got Cassidy coming back. Now originally, Cassidy and I, when we booked this, Sarah was still at Netlify. Sarah has since moved on. She's going to go do her own thing, which is super exciting. We can't wait to see what she does. But it also means that she's not our boss anymore. Unfortunately, I'm now the boss. So we're either going to -- no, we're going to troll Sarah. I told Sarah this is the equivalent of us flying the flag at half-mast, to kind of like honor the passing of a great moment. Except this is going to probably involve like tacos and poop jokes. (Laughter) So I'm very, very excited about that. There are a few I haven't had a chance to get on the site yet. I'll do that so fast, soon. Maybe today. But then I've got Jennifer Wadella coming. We're going to do forms and Angular. Angular is something I don't do much of. She's one of the best in the business and also just fun to hang out with. Nathaniel Okenwa is coming back. If you haven't seen any episodes, he is hilarious. We're going to play with Twilio. We're going to build a system you can call into and press buttons. We're either going to make it useful or make it intentionally infuriating. Like press one to talk to a person. Then you press one, it'll be like, just kidding, you don't want to talk to a person. Would you like to hear more options? Then you don't get a choice. Like that's the kind of IVR. Then we're bringing on Shaundai Person. We're going to learn about functional React with styled components. If you've been working on class components and you're interested in functional react. We'll look at that. We'll also look at doing CSS and JS. Really excited about that. Like I said, more coming up we haven't had a chance to get on the site yet. But stay tuned because that's going to be really, really fun.
As always, this show has been captioned. We've had Rachel here all day putting up with my chatter. Thank you very much, Rachel. I appreciate you, and I'm very sorry for how you just had to spend your last 90 minutes. That has been made possible by White Coat Captioning and our sponsors. So we've had -- wow, look at that bug. Look at this. This always happens. When I refresh the page, it goes away. I guess until it doesn't. I don't know what it is. I think it's a green sock thing and I don't know enough about it to fix it. I'll get there eventually. But that's been made possible by our sponsors. We have Netlify, Fauna, Auth0, and Hasura all kicking in to make this show more accessible to cover the cost of live captioning and keep the wheels on in general. I appreciate it very much. It means a lot to me. Make sure you head to the home page of the site, which is where these captions live. And you'll also be able to click on any one of these logos to learn more about these sponsors.
With that being said, y'all, I think it's about time to call this thing done. Who should I raid? I usually raid the same people. So chat, tell me who I should go raid. And remember, this audience is mostly web devs and absolutely an inclusive community. So keep those criteria in mind when you suggest people. Anyone? Where we at? No one? Anybody live? Anybody going live right now? We can all just follow you over to start your stream. Toe frog? I don't know Toe Frog. Let's go raid Toe Frog. Let's do it. It's going to be fun. We are going over right now. Everybody get ready. Thank you so much for hanging out. And we'll see you next time.