about the episode
about the guests
Brian Douglas: Welcome to another installment of Jamstack Radio. On the line we've got James Hush and Christian Stuff. Christian, do you want to say hello? What do you do at Daily?
Christian Stuff: Yeah, hi. I'm Staff Engineer at Daily, working mostly on React and TypeScript stuff.
Brian: Cool. And James, what's your role at Daily?
James Hush: At Daily I'm a Solutions Engineer, so while Christian builds Daily, I help customers build their stuff. If I run into any problems, I copy and paste the question to Christian so I'm glad he's here with me in case you ask me any questions I don't know the answer to.
Brian: Very cool. I guess we probably should just start with what is Daily? Because I kind of jumped in. I'm familiar with Daily, I've actually built stuff with Daily. I don't think I mentioned that in our back and forth email to set this up. But I'm familiar, and happy to get the listeners familiar as well.
James: How I like to think of Daily is, remember jQuery back in the early 2000s before people started hating it? And it smoothed out all the issues between browsers and let you make really cool web experiences and everything like that. Daily is kind of like that for WebRTC. So all the hard stuff about WebRTC, getting the mic and cam consistency, browser inconsistencies between mobile Safari and Chrome, and all the infrastructure stuff, we handle and that allows developers who have experience doing awesome frontend experiences to build cool applications without having to worry about all the edge cases that cause video calls to be painful.
Brian: Cool. I've mentioned I'm familiar with jQuery and I love the... Actually, that's kind of where I got my professional career started. I'd been a copy and paster prior to that, but first full time job I did jQuery. You could Google away and find the docs and find a solution, and as I mentioned, I leveraged Daily for a side project at GitHub, of all places.
The folks that built Copilot, there was another team that would build new projects every six weeks and one of them was livestreaming inside of GitHub. It never saw the light of day, but I built a companion tool that I thought would be pretty cool just to chat around PRs, and I used Daily as that sort of engagement to spin up a really quick chat window for folks to have audio conversations and video if you must, about code review.
Fun little side project, didn't really get anywhere with it, someone else should build that and make tons of money as a startup founder.
James: And it's those fun little ideas that actually are my favorite when I see customers build things that seem like fun little ideas, that I'm like, "This is a cool little side project," but then some take the extra 10 steps and turned into a full fledged business. I think one of my favorite examples of that is we've got a customer called Playback that let's you watch live sports with your friends, and with influencers.
So instead of just having... I should know more about sports because I worked at the NFL, so excuse me for this. I'm going to start saying... Ignore the sports analogies I use here. But instead of having an announcer from a football game, you could have some person who runs a community for football and then you can watch it with your friends, you can bring people on stage, and it's a really cool, fun experience. They're getting more and more traction every month, so I'm pretty stoked on that example.
Brian: Yeah. I love that too. Both of you, how long have you been at Daily? Because the pandemic birthed a couple different new ideas, like obviously Clubhouse was a thing that spun up out of nowhere, and a bunch of live... Twitch became a huge engagement and Zoom became more of a requirement for teams. Then Daily is like that tool to build the tools, so were both of you at Daily during the pandemic? What was that experience?
James: So Christian, you joined Daily before I did so you can talk to that first I think.
Christian: Yeah. So for me actually, the rise of the pandemic was the reason to find a new job and eventually when I found Daily.
So I've been with Daily since the start of the pandemic, which was an interesting ride because you've seen or we've seen businesses arise based off a need to go remote, bring the people back to home or connect them to the offices, connect them to their people and folks.
So it was interesting because the most obvious use cases I've seen firstly was, "Yeah, we need a virtual office." And people built virtual offices using Daily, and then over time as the pandemic changed, I would say that the change of the pandemic actually increased the creativity of the community and they came up with more ideas. Wilder and wider ideas, so that was pretty fun to see.
James: My background, I wasn't working at Daily during the pandemic, but I was working on an online virtual events company called Remo, and that was a good example. What Christian mentioned about pivoting from virtual office, they original were a virtual office platform that started and then they realized that having people sit on a video call for nine hours a day is a really great way to run up your bill, run up your video call infrastructure bill.
They pivoted to online virtual events. But when I was there, that's when we weren't using Daily at the time, we were using a different provider, but I realized, "Oh man, this is a great business." Once you're built on top of a provider, it's more than just like another kind of vendor. You're really a partner with that vendor to make the business happen.
Then when I came over to Daily, we were actually able... I went back and spoke to Remo and we actually got Remo over as a customer, so they've been 100% using Daily now for the last couple of months. All their traffic, so that's one little feather in my cap for that, too.
Brian: Yeah, very cool. I actually started a company last year, 100% remote. It's a world that makes sense, even being based in San Francisco. I'm going to be on chats, I think I've got Team meetings Tuesday, Wednesday, Thursday during the week. Monday to Friday, not so much. But at least portions of team I'm meeting with and we're collaborating and we're interacting through code review and syncs and it's a given, video is now a part of the interaction and I remember back in the day when I first started my career, desk phones were a thing.
Everyone had a phone, had a landline connected, you could call anybody. But it's kind of weird how the shift has been video is the expectation now. I think you get high engagement. I don't know if a lot of folks end up having the fatigue, but as long as you keep it to a limited experience. I'm rambling, but I wanted to ask a question about folks interacting with the platform.
So you'd alluded to, James, about jQuery being the equivalent of interacting and having that sort of ease. From my experience, the SDKs have been pretty amazing to work with. Everything is just there, it works. Can you explain the interaction? How people integrate with your platform?
James: So there's two main routes to go with Daily. You can split it up to more than two, but for the sake of this we'll split it into two. We have Daily Prebuilt and we have the Daily SDK. Daily Prebuilt is like three lines of code, bing, bang, boom and you have a full video call experience in your web browser. That's great for companies that do things like tele health, where it's like 1 to 1 video calls and they really just need a video call experience in their browser, so they want to be able to do things like have hand raises, emoji reactions, be able to mute people, be able to mute video, absolutely basic stuff there.
A lot of customers, they'll start with Daily Prebuilt, and either they'll stay with it, they realize, "Actually, you know what? We can just change the colors around and focus on other features on our product." But a lot of times they'll start with Daily Prebuilt and eventually want to build their own completely custom UI experience, and that's where the Daily SDK comes in.
Now, what that let's you do is anything you can do with divs and HTML and CSS with a video tag, you can do with the Daily SDK. So if you want to have bubbles bounce around on the screen while having a video call, you can build that. If you want to make a cool, fun, virtual event experience where people are walking from table to table, you can do that.
Then if you want to keep going from beyond that, we have SDKs for iOS, for Android, for Flutter, and then a few other platforms I can't remember off the top of my head. But basically anything you want to put a video call in to, we have an SDK for that or we will have a way to help you do that, if you come give us a call.
Brian: Cool. I guess I knew about the easy drop in the script and you have video on your platform. I guess coming at it from an engineer, I just went directly to the SDK so it makes sense for me. But it also makes sense for folks who maybe don't want to have the heavy lift of maintaining that and keeping the integration working. Just copy and paste the script and you're good to go.
But I want to also take a step back and talk about the sort of admin of WebRTC, because this thing has been around, this technology has been around for quite some time. Can we talk about how that unlocks the capabilities of what Daily is doing? Perhaps, Christian, you want to talk about your experience in building this out?
Christian: Yeah. So I would call WebRTC the thing if we want to keep with the jQuery analogy. WebRTC is the base foundation that Daily is built on, right? And being an open, standardized, but still under development, open API, standard API. It has its flaws, it has its own issues, depending on your use case. So the idea of Daily is really, okay, there are tutorials on how to setup a peer-to-peer web call from one web browser through another, which works fine and it's really just a couple of lines of code and then you realize, okay, actually I want three people in there and then I want four people in there.
Once you want to add a fifth person, you will notice that your browser crashes or your downlink-uplink is going completely nuts and bonkers and crazy. Then you start realizing, okay, there is some scalability issues to it and you have to think different about it. That's where Daily or providers like Daily come into it. There is this mode where, yes, we can connect people directly, machine to machine.
But at some point in time for the sake of scalability, we need to put something in between there and this is where our infrastructure comes into play, where we can connect people from all around the world, 100K of people in just one call. It just works.
TM. So that's the base idea. In order to achieve that, it's not necessarily only WebRTC technology any more. There are added things like web sockets and media servers and pipelines and AWS configurations, and whatnot. Tons of people working on tons of different technologies, all together, to making this dream an actual reality.
James: To add onto the whole WebRTC side--
I think if all you want is a one to one video call with two people in the exact same room, both on the latest version of Chrome and brand new MacBooks, you could probably build that yourself. But obviously for every other normal use case where you want to deal with things like potential firewall issues, you want to scale past two people on the call, that's where you start really running into edge cases.
I have a good example with a customer that I spoke to three to four months ago. I remember we were talking about, "Ah, we just want to build our whole... We just want to own our WebRTC implementation because we're worried about costs and we want to have full control over everything." Then I followed up with an email and said, "Okay. Well, here's the things you're going to have to worry about."
Then three, if you want to have more than two people on the call and you want to start messing around with simulcast settings and everything, that's going to be another thing you'll have to handle. Then finally, four, if you want to make sure your video calls are actually working, so in other words you want logs and you want to process the logs, you want to search the logs, you want to interpret the logs, you want to make dashboards for the logs.
That's a whole other, new project for your team of four engineers that they're going to have to code as well. So let me know. Then there was radio silence for about two months, and then just actually last week the customer emailed me back. He said, "James, you were right. We're ready to move over." I was like, "Okay, cool." So I jumped on the call and the CEO introduced me to their engineers.
It was like, "Hey, so and so, this is James. Every single problem we've had this week, he told me about two months ago. I didn't listen to him then, so now we're going to listen to him now." That's an example where a lot of times if you just do the how to tutorial on WebRTC and you set up that initial call, you're like, "Okay. Well, I got pretty far in like six hours. Probably a week away from a full solution." And five days in you realize, "Okay, nevermind. This was a whole journey of 1,000 paper cuts I never imagined.
Brian: Well, it's the classic build versus buy. It's also you don't know what you don't know. Before we jumped on this call I asked both of you where you were calling from, and you're calling from Taipei and you're calling from Germany, Christian, and I'm in San Francisco. Just that one simple problem of having people on different CDNs or different networks.
That's also an age old problem with this, "Hey, we're just going to have to wait for someone to catch up and rebuffer." With the one to one experience, definitely approachable. I had mentioned this idea that I built when I was at GitHub, it worked out of the box, but then I had a lot more questions and a lot more pushback on the approach that I'd have to probably go call you, James, and be like, "Hey, I've got the half built solution. How does this thing become fully baked?"
I think that's the benefit you get when you leverage these services, but also leveraging the services with the team of experts who care about the problem. Honestly, more than I do. I just want to get the result. I don't want to be the expert at WebRTC, and I'd rather go experience a conference talk or watch a YouTube video and catch up. But I definitely don't want to build my entire startup around the idea of video.
James: Yeah, I don't recommend to anyone because the reason why I joined Daily is I felt a lot of these pain points at my previous company, the online virtual events company where there was so many other things. At the time I was leading the engineering team, and there were so many other projects that we had to think about, besides just the video part.
Just the video, even though that seems like the whole value add for an online virtual events company, was really only 10% of everything else we had to worry about. And so I remember at the time there was this provider we were using at the time, they didn't have virtual backgrounds built in. That's a great example.
There's no virtual background API inside Chrome. You have to do your own virtual background implementation.
I remember we had an engineer work on that for almost two months and he finally had something kind of working, and every time it ran... I had the latest MacBook at the time, a few years ago, the fan would just spin and the background was really sketchy. That was two months of engineering effort to build it.
I remember doing the interview at Daily and the first thing I checked was if they have virtual background. I saw it, and I'm like, "Okay. Cool. These guys know what they're doing." No human being should ever have to build this ever again. It's such a frustrating, disappointing project.
Brian: Yeah. It really goes to show. I was joking tongue in cheek about I don't want my startup to be focused around video, because it's a classic thing where you're either small and scrappy or you have a little extra resources to do a Friday Hackday project. But very quickly that becomes the Friday Hackday Full Focus. At my time at GitHub, there were tons of projects that were really cool engineering side projects.
Funny enough, GitHub Pages being one of those ones that were back in the day, a thing that someone did and it became part of the core product. Core product, like it's structured today. What I'm getting at is very easy to say, "Okay, I'm going to tackle this problem. It's going to work." Then you become the person that supports it for years to come and I experienced a Microsoft acquisition where we just took stock of everything that was built at GitHub that never saw the light of day.
You saw one by one, things just got axed and cut because it was so much easier. We had an entire infrastructure for an internal YouTube, which we called GitHubber TV, and you host videos on the platform. We had an engineering sync, an all hands, you host a video, and then you can comment on the video. It was very much in the vein of YouTube.
To my surprise, the thing that killed it, even though it was a daily driver for folks, but instead that team actually left GitHub and rebuilt what now is Rewatch which is now a hosted internal YouTube service and their first customer was GitHub. But what I'm getting at is it made no sense for GitHub to work on that, to keep it live. It was never going to sell, it was never going to provide business value in a way that made sense to have a full team on it. I think that's the same thing with a lot of the experiments in livestreaming.
I remember another thing we built, which again should've been a Daily thing, was we were building this behemoth of Azure deployed WebRTC wide streaming hosting platform which I alluded to earlier. At the end of the day, GitHub didn't want to be in the business of maintaining video infrastructure so the project never saw the light of day. But it's a better thing.
If you're thinking about building that and you're into your product, perhaps reach out to these guys, talk to Daily. I want to ask the question, where do folks get started? You've mentioned the two paths, what's step one for folks that are listening who're like, "Hey, that's a problem I want to solve, how do I do it at Daily?"
James: I'm very, very happy with our docs page. Our docs pages are amazing. I sound biased because I worked there, but without our docs page I would not be able to answer 90% of customer questions myself because I am in those docs pages more than anyone else. To get started, definitely head to Daily.co, so Daily dot C-O. From there you'll be able to see some different sample projects, we have getting started guides for every single platform.
If you're a React user, we have a library called Daily React and a bunch of sample projects that Christian helped build, and that's always a fun one too. You can see the React sample projects on that too. If you're using React, I'd definitely, definitely, definitely recommend using Daily React, it's like coding for kids.
Brian: You're speaking my language.
James: Yeah, it's great. It makes my job 100 times easier when I'm running a customer using React so I can use Daily react and solve their problems in three lines of code, which is always fun. Then from there, if you have any questions, we also have a message board called Peer Connection. Anything WebRTC thing, doesn't even have to be Daily questions, just any kind of WebRTC questions. We've been growing that for the better part of a year now, and so we've got a nice little community of WebRTC nerds on there ready to answer any sort of question.
Brian: Cool. How long has the Daily React thing been around? Because I think my engagement with Daily was around 2021, probably early 2021 when I started building with it. Is that something that was fairly new or has it been around for a bit?
Christian: I would have to check the NPM history, but I think it's roughly a year now. I'd say half a year that we're actively focused on shipping frequently and adding features, and keeping a maintenance pulse on it. But it was actually one of those not necessarily a side project, but maybe a side result of building Daily Prebuilt because there was enough questions on customers or folks on Daily asking, "Well, is this something we build? Can we make this available to pretty much anyone?"
This is the idea of Daily React being an entry point for React developers who don't actually want to care about any of the WebRTC stuff, and don't need to know anything about the WebRTC stuff because when Daily React itself is built on top of Daily JS, Daily JS being our client SDK. It's like a simplification layer on top of WebRTC and you can imagine Daily React being another simplification layer on top of Daily JS, so simplification to the power of two.
Brian: Excellent. I'm here for it because a lot of my side projects are React based. I didn't actually even explain or I didn't share the repo that I did with the Daily app, which still exists. We called it Pizza Party. The project that I work on is called OpenSauce.pizza and the idea is that you'd be able to start a party, a Daily chat inside of a GitHub PR and we'd return a link to then go jump over there and have the conversation.
So we tried it a few times in my small community at the time, and I think I actually want to pick that up again and try it again now that things like the Daily React SDK exists and see if I can try it again. It seems like I need to build this thing. It belongs in the world, and if anyone wants to work on that with me, it'll probably be open sourced.
Christian: I love it.
Brian: Cool. Well, thanks for having a conversation about Daily. I do want to transition us to picks. So folks, if you haven't got it yet you just go build something at Daily and probably tweet at them or drop it in their forum, which you said was Peer Connect was the forum?
Christian: Peer Connection.
Brian: Peer Connection, all right. Well, check it out in the show notes. We'll have it there. With that being said, we're going to transition us to Jam Picks. These are things that we're jamming on, could be music, tech, food, all of the above. Just things that keep us going throughout the day. If you don't mind, I'll go first. I've got one that I just got into yesterday, actually. I've been using the same office chair, which was a gaming chair, for, man, since like 2017, 2018.
It broke on me, one of the legs literally just snapped. It was the weirdest thing. But also I've been working out, so a lot of weight to throw around over here. But what I'm getting at is chair broke, and I've been working with a broken chair for probably the better part of six months. Finally decided to get a new chair, so I had a coworker...
Actually, one of the frontend devs that worked at my first job used a kneeling chair, and I've got a standing desk, I've got a proper Herman Miller chair, but I was like, "I'm going to try this kneeling chair because I'm older, an elder millennial." I've got to protect the back and stay healthy, and I actually love this thing. There's no back to the chair. Basically you sit as if you're kneeling at the desk, but then your back is straight and in good posture.
I start my day with the regular chair, and then once I get into deep work I get into the kneeling chair and I feel like I'm focused the entire time. By midday I'm using the standing desk and I'm back in the kneeling chair. I think it's got my brain operating almost like I'm in the matrix and I can see bullet time or something like that. Anyway, I feel like it's given me really good focus. Have any of you tried the kneeling chair before?
James: I have not. I just googled kneeling chair as you were speaking, and I see the pictures and I'm like, "This is definitely a San Francisco invention, for sure, and I definitely want one now."
Brian: It's worth a try. You can get a cheap one from Amazon or whatever wholesaler out there. Yeah, it's worth a try. I remember like 10, 15 years ago, it was the exercise balls, everyone was sitting on those because they stretch the core. I actually suited that back in the day too, but eventually those things popped. But this thing will never pop on you, and it's a good transition when you know you're going to have to put in some hours at the desk and standing is a thing that you can go back and forth to. But going from standing to kneeling, I think it's a better transition than sitting in a chair all day.
James: That's true, because when I got in my chair I stopped standing as much because I realized sitting is superior to standing.
Brian: This is true. But then it's like you put in your 12 hour day and you're like, "What do I do with my life? My body does not deserve this." So I highly recommend checking it out, it's worth a kneel for sure. I did have one more pick, actually, which is a thing we shipped last week at Open Sauce. The name, the repo is called Pizza, basically.
OpenSauce/Pizza and the idea there is that we have been building insights in open source projects and we had a couple of customers that we did this for their projects to find out things like new contributors and et cetera. We wanted to build a way that we could innovate faster, but also extend the experience that we can do to the command line. It's a bunch of Go code that basically takes Git commits and turns them into insights.
It's usable for anything GitHub or outside of GitHub, so a lot of folks don't use... Well, most people use GitHub but there are folks who don't use GitHub, but then there's also folks who do self hosted enterprise servers. The idea is that this will be the same experience that we provide for our web platform on the command line.
I recommend checking it out because we also have a companion project called the Pizza CLI where there's a whole brand where you can bake repos and then turn that baked repo into insights. So if you want to track repeat contributors, first time contributors, that's what we're doing first. We'll do some other insights, but open source because we want to get more feedback from folks in the community on what sort of data they're looking to get out of their contributors.
James: I just googled OpenSauce.Pizza, and you have a really solid marketing page for this too.
Brian: Yeah. We've been working on it actually about a year at this point, full time. Folks who listen to the podcast are aware of the product, so if you guys are interested, hit me up, I'll send you over the CLI so you can demo it. Well, that's it for me for picks. James, do you have any picks that you wanted to share with the audience?
James: I think the first one that comes to mind is I've been learning Chinese on and off for a couple of years, which sounds like a flex but it's really a hard requirement when you live in Taiwan, to be able to order food and read your mail, which I still can't do yet. I can order food at least. I've tried every single language learning app, I've done all the language learning different platforms for video.
We actually have a couple of customers who do language learning platforms too, and probably my pick would be an app called Anki. It's a spaced repetition flashcard software and you can get it on desktop for free, or you can get it on iPhone. iPhone, it's like $20 or something like that. You can make these custom flashcards to help you learn different vocabulary.
I do it mostly for language learning, but I also found a custom deck of cards someone made for cognitive biases. I found a custom deck for cognitive biases so I've been going through that every day. Learning about a different cognitive bias and then memorizing them to try and make myself stop doing them. I realized how many of these biases I was doing, especially one of them where you have the tendency to sell stocks that appreciate, and keep stocks that go down. I'm like, "Ah, you're right, cognitive bias deck. That is definitely a bias I have." So that's been fun, a little hobby I've been doing the last couple of years.
Brian: That's pretty cool. Yeah, if you have the link to the deck, send it over or drop it in the show notes. I'd love to actually take a look at that for myself.
James: Yeah. Anki itself, it's open source and so a lot of engineers have got their hands on it, and so the UI looks like a bunch of engineers made it because that's what happened. But the amount of plugins and customizations you can do to it is pretty crazy.
Brian: Very cool. Christian, do you have any picks for the audience?
Christian: Yeah. I have two. In the last let's say two or three years, I've been diving more and more into woodworking. This is maybe not a pick, per se, but maybe a recommendation. If you ever want to get into wood or making furniture or building stuff, I can highly recommend getting proper tools right off the bat. Don't save money on cheap tools or try to get some used good brands.
I'm not sure about what's really good in the US, but for me it's definitely Bosch Professional, the blue ones. It's the ones the professional workers use, highly recommended. Second pick, just recently I've been in Amsterdam and I was pretty stoked by a small shop that sells peanut butter and it's called the Pindakaaswinkel, and I came home with four gigantic jars of differently flavored peanut butter, but the Dutch way. I think we only have one jar left by now, and it's really just three weeks ago.
Brian: Wow. That's a lot of peanut butter. What's your premier way to eat peanut butter?
Christian: On sliced bread.
Brian: Okay. Toasted, or just straight raw?
Christian: It depends. Toast bread, obviously toasted, I love to combine it with strawberry jam.
Brian: Okay. There we go, an American classic.
James: I got a follow up pick for that, the opposite of that is PB2 Peanut Butter. Powdered peanut butter, have you guys messed with powdered peanut butter before?
James: This is such a biohacking, gym bro thing. But the problem with peanut butter is there's too much fat in it, so that's where all the calories are but there's still a good amount of protein. So you can get these boxes of powdered peanut butter and mix it in with protein shakes or whatever.
Same protein, still tastes like peanut butter, but less than half the calories. So that's another pick. I think the best ideal would be to get some of the Christian peanut butter and then the powdered stuff, and alternate. Then you'd average out the calories.
Brian: Excellent. I mean, powdered peanut butter, I'd never have thought but it makes a lot of sense. I'll do a sourdough loaf, because San Francisco sourdough, and I'll do peanut butter on that for breakfast. That's heavenly because you get the nice taste of the bread, the fresh loaf, but also it's a good snack in the middle of the day or lunch if you're working too much. Well, also, Christian, I was going to ask you mentioned woodworking but what are you building?
Christian: So currently I'm building some kind of a garden shed, playhouse, combination-thing. It might become an outside office for me, but we'll see.
Brian: Excellent. Well, I'll have to find you on Twitter and you'll keep us updated with the progress. But with that being said, folks who are looking to build, check out Daily, build WebRTC into your platform, into your business, but just don't do it from scratch. Use their SDKs.
James: Don't do it from scratch.
Brian: Yes. So with that being said, keep spreading the jam.
Content from the Library
Demuxed Ep. #16, Real-Time Video with Kwindla Hultman Kramer of Daily.co
In episode 16 of Demuxed, Matt, Phil, and Steve are joined by Kwindla Hultman Kramer of Daily.co to discuss real-time video,...
Demuxed Ep. #15, Low-Latency HLS, Pt. 2
In episode 15 of Demuxed, Matt and Phil continue the conversation on Low-Latency HLS, focusing specifically on unpacking Apple’s...