Eliot Hertenstein 0:16 Okay, this is going to be an exciting one. 0:18 We're going to be talking about product development with quite an auspicious crew here. 0:22 We've got Elliott from Expo. 0:25 We've got Reid from Skylight Social. 0:28 We've got Eli from Streamplace, and then we've got Paul Frazee from Bluesky. 0:35 So I'm going to let them take it away. Paul Frazee 0:41 All right. 0:42 Welcome. Eli Mallon 0:43 Oh, yeah, we do need the mic. Paul Frazee 0:46 All right. Eli Mallon 0:47 Welcome, everyone. 0:48 Thank you so much for being here. 0:50 Just to start, I would love to have you guys introduce yourselves, a little bit about yourself, what you're working on. 0:55 And we'll go from there. Paul Frazee 0:59 Hey, there we go. 1:00 There we go. Reed Harmeyer 1:01 Well, hi everybody. Paul Frazee 1:01 I'm Paul Fraze. 1:02 I'm the CTO at Bluesky. 1:05 I think the specific reason I'm on the panel is because back when Bluesky was very small, I was the lead engineer on building the Bluesky application, which I did with Expo and React Native. 1:18 And I'll just go ahead and spoiler alert, wouldn't have been able to do it without the help of Expo and React Native. 1:24 So I'm here to share that. 1:26 Story. Reed Harmeyer 1:29 My name is Elam Allen. 1:30 I'm the founder and CEO of Streamplace. 1:33 If you're watching this remotely right now, that's that thing. 1:38 And I also, from, from the start, we have built Streamplace using Expo and React Native WebRTC and some other technologies that we will get into. Speaker E 1:55 And I'm Reid, the CTO of Skylight Social, and we built Skylight on Expo. 2:00 I've been using React Native since like 2017, and when we thought about how to build this video app, we were like, okay, well, we're gonna start with React Native. 2:11 And then luckily for us, the video component itself was already a library that Expo was offering, so we were able to get like a working prototype in 2 days and kind of release it before TikTok had gotten banned last January. Eli Mallon 2:28 Cool. 2:29 So Paul, just to start with you, you mentioned Expo made a lot of stuff possible. 2:33 And so I wanted to start— this is to the whole panel, but what has Expo specifically made possible? 2:38 What has App Proto made possible? 2:39 I guess Bluesky's built on it, but how have they kind of combined in building up Bluesky, especially in the early days? Paul Frazee 2:45 Yeah. 2:47 Should we assume that people know what Expo is? Speaker E 2:49 I can— Paul Frazee 2:49 Oh, yes. Eli Mallon 2:50 OK. 2:51 Maybe I'm happy to give a very quick intro. 2:53 Expo is a way to build cross-platform mobile apps. 2:56 We're the main way of building mobile apps with JavaScript or TypeScript, and then they run on both iOS and Android. Paul Frazee 3:02 Yeah. 3:04 Well, and so for us kicking off, we had 12 people maybe when we were first writing the Blue Sky. 3:12 Actually, not even that. 3:13 I think we were maybe at like— 6 when we were first building the application. 3:17 And the reality is that when you have a codebase that is an application, for every codebase you have is a different product, more or less. 3:26 So if you're trying to write for both, you know, 3 platforms really, iOS, Android, and web, if you're building 3 different codebases, you basically have 3 different products with their own teams that are maintaining their own roadmaps, their own issue trackers, and things like that. 3:40 And you're kind of just working with each other on the concepts that you're going to implement on each one of them. 3:47 You see this sometimes, actually, when you switch between apps. 3:50 Like, I think Twitter for a long time had a pretty different— like, you would get into the Android one and be like, oh, it's kind of different, actually. 3:57 That's interesting. 3:58 Because it's a different product. 4:00 It's a different team. 4:02 So that was just not viable for us. 4:05 It was just me doing frontend for a long time. 4:07 And then as the complexity of the product continued to grow and more features came in, challenge of the idea of having multiple code bases became even less viable, even though we were getting more help. 4:17 So having one code base to target all three of the platforms using technologies that we were already familiar with certainly helped as well. 4:25 TypeScript and React and essentially CSS, kind of a CSS variant, really helped us hit the timelines that we needed. 4:34 And it's no joke. 4:36 You can't ship just iOS or just web or just Android. 4:41 It's very, very limiting to do that. 4:44 And people expect to have the platform be available in all three places. 4:47 So I don't think we would have been able to accomplish the rollout that we needed to do and hit our business objectives if we weren't using Expo and React Native. Eli Mallon 4:55 Yeah. 4:56 And so Eli, same question to you, although I'm curious also for Streamplace, which is obviously dealing with video. 5:00 How is that working with Expo and shipping to multiple platforms? Reed Harmeyer 5:04 Yeah, yeah. 5:05 I mean, the first part of the answer is the same, right? 5:07 So building any kind of Twitch competitor, we very much needed an iOS, an Android, app and a website as quickly as humanly possible. 5:16 And I just don't think there's— maybe there's other frameworks that would argue with it, but I think Expo is the most credible way to try and do all of those things. 5:25 The other piece for us, part of StreamPlays' strategy as a company is that live video infrastructure and software is very, very difficult, one of the harder things you can do in technology. 5:38 And a lot of the other teams in the atmosphere aren't very excited about taking that on. 5:43 So from the beginning, we've really, really wanted as much of our code as possible needs to live in libraries that are accessible to other applications that they can access. 5:54 And so that eventually means, unfortunately, because Expo is not the only framework in the world, that does eventually mean we need to— and we have in various stages of development, we have sort of like React Native/web library, that's the main one. 6:08 And then we've got like a Flutter library in development, we've got a native Swift OS library in development, we'll probably do something for Android at some point. 6:14 But in terms of getting the biggest slice of the pie that we could as quickly as possible. 6:22 Building that with Expo and React Native and building that library made a lot of sense. 6:28 Unique challenges of dealing with video. 6:31 I would say that for us in particular, if you're watching the livestream now and it's working, which it seems to mostly be doing so, We— I attribute that mostly to WebRTC playback. 6:47 That's the technology we built on. 6:48 It's the same technology that's used to power Google Meet. 6:51 And if you've had a conversation in a web browser with somebody, it was built on WebRTC. 6:57 It's very good at, for example, if something goes wrong, recovers because it's trying to play back the video as quickly as possible. 7:04 That's been a pain, even with as much help as we can get from the frameworks and stuff. 7:11 We've had to get something like picture-in-picture playback working. 7:15 So when you navigate out of the app, you still have it up there in the corner. 7:18 We needed to use forked versions of different WebRTC libraries, do our own native builds, building all of this in an open source way that theoretically other people could build. 7:28 So that means something we don't use from Expo is like the— I'm blanking on the name— the like cloud build. Speaker E 7:33 Yes. Eli Mallon 7:34 Yeah. Reed Harmeyer 7:35 Because we need to be able to build all of everything ourselves in a Docker container. 7:39 So yeah, yeah, I would say like once we Once we got it all wired up, it worked pretty well. 7:43 But definitely the build process was a big challenge. Eli Mallon 7:46 Yeah. 7:47 And then Reed, you're also dealing with video in a different format. 7:51 So I'm curious how you've dealt with that in similar and different ways. Speaker E 7:54 Yeah, I'm lucky that I think it wasn't that long before that you guys released a new Expo video package. 8:00 And that helped me out a lot, obviously, because it did allow me to start with Expo Go. 8:09 And like, you're able to build these native modules in Expo. 8:11 It's kind of the most important part of it, that you can go to the native side instead of the JavaScript, JavaScript side whenever you actually need it. 8:19 So you're kind of never limited on what you can do. 8:23 But Expo Go is kind of like the preset group of modules, and it just allowed us to focus on the things that like the users were caring about, because we kind of immediately had a lot of people who were like interested in using our app or using our app. 8:39 We had about 150,000 users in the first 3 months. 8:43 And so there wasn't a lot of time to work on anything except for things that the users were actively like in our comments about. 8:52 And because of Expo, it was basically like we just got to work on like those specific behaviors. 8:58 Somebody would report a bug, and because we could do over-the-air updates, which are like JavaScript-only updates, we could fix it like immediately. 9:06 And then comment back, and then just move on to the next thing, and just do that over and over and over again. 9:11 Versus if it was a Swift app, we would have had to go through a whole App Store deployment of several days before they ever got feedback. 9:19 And they would have just given up on us, basically, in those 3 days. 9:24 So yeah, that's been my experience. Eli Mallon 9:26 That makes sense. 9:27 And then, so Paul, I'm curious. 9:28 You mentioned earlier, like, you have to build for a bunch of different platforms. 9:32 And like, now in the kind of mobile space, it's really easy to iterate on web. 9:35 And kind of before Expo, there wasn't an easy way to iterate on mobile. 9:38 But I'm curious why even target mobile in the first place. 9:41 Like, why is mobile kind of important to Bluesky as a platform? Paul Frazee 9:45 Well, the web mobile experience in a web browser is pretty good. 9:53 But there's a lot of interaction patterns that you just can't accomplish. 9:59 One hopes that PWAs will someday— yeah, yeah. 10:04 It seems to get jammed up. 10:05 And it seems to be some kind of politics between Apple, I think, and Google. 10:09 Like, Google really wants it. 10:10 Because they're sold on web tech, right? 10:11 So I think it's Apple that's kind of jamming it up. 10:14 But the gestural interfaces are very much the expectation with mobile. 10:20 And I'm doing a mobile web application right now. 10:23 And I had to stop and go, I can only tap. 10:28 How do I design this? 10:30 This is very interesting. 10:32 Found some stuff, but it's a little weird. 10:34 I also can't do vibrations. 10:35 So there's no haptic feedback, which is the worst. 10:37 When you press on a button and it doesn't give you a little— Reed Harmeyer 10:39 oh, gosh. Paul Frazee 10:39 So you get a little bit crippled. 10:42 Well, whenever— because the web is— Apple has been pretty opinionated about like the web should be for web documents, essentially. 10:47 It's just not their application's runtime. 10:49 And so you've got to go native for that reason. 10:51 That's reason number 1, is the usability of the application. 10:54 Reason number 2 is that people look inside of the App Store to find the apps. 10:57 That's just how it works. 10:59 If you're not there, then you don't exist. 11:02 And I think that's pretty much it. 11:04 You want to have a good experience. 11:05 People aren't going to accept less. 11:07 There are still some people— I mean, the only people that really hardcore on the web are the big, real big nerds. 11:12 So you kind of have to meet people where they're at. 11:14 And that's native. Eli Mallon 11:16 Yeah. 11:17 And so then same question for you, Eli. 11:18 Why is native kind of mobile apps— why is that important for String Place? Reed Harmeyer 11:22 Yeah, I would say it's just sort of table stakes to be taken seriously in terms of releasing something. 11:28 The other piece, of course, is we want to be able to stream from phones. 11:35 And I think that you wouldn't be taken seriously as a streaming platform if you didn't have that capability. 11:42 And so that was, yeah, very, very necessary to go to mobile. 11:45 It hasn't always been— the difficulty of building this in sort of a library fashion for other mobile apps has been a particular challenge. 11:54 I don't know if there's a good— there's a funny story on like the interaction between Skylight was one of the first apps to integrate Streamplace live streaming. 12:04 And we accidentally did a thing where when you log into Streamplace, one of the first things we do is create a place.stream.chat.profile record because it just shows what chat color that you have. 12:18 And of course that makes perfect sense when you log into Streamplace. 12:20 Then we integrated into Skylight and I didn't realize I had kind of put that in the library code instead of the app code. 12:25 So as soon as you booted Skylight, you got a place.stream.chat.profile record even if you hadn't interacted with like the Streamplace features within Skylight, which made us seem sort of aping off Skylight's popularity a little bit. 12:37 All of a sudden we were like the second most popular We were like the most popular non-Blue Sky lexicon in the atmosphere because of that integration, which I guess felt good but wasn't really legitimate. 12:49 So yeah, in that context, like figuring out— but I think, you know, as much as like the atmosphere stuff has been built to be interoperable, some of the norms around that kind of like what does make sense there, right? 13:01 Like probably if you're going to go tap into chat and participate in it, then it would be appropriate for us to create that record. 13:07 And we just like don't really have community norms around that kind of thing yet. 13:09 So I don't know. 13:11 Your question a little bit, but that was a unique challenge. Paul Frazee 13:13 Interesting. Speaker E 13:15 That was a really funny story. 13:17 I'm guessing you're asking the same question. Eli Mallon 13:18 Yeah, yeah, yeah, basically. Speaker E 13:19 I want to add to Eli's story because what it initially started as was he thought he was being attacked, like by a DDoS attack. 13:27 It was like, no, I just added your library to our codebase. 13:35 But it was really important for us, probably even more so than these guys, because the gesture of swiping through TikTok is so specific. 13:42 And it would have been possible doing the web. 13:44 I tried like on day 3 to like try to do it and it was like the way that Safari works is like you have to go click something to start playing a video. 13:53 They won't even let you kind of do this thing that TikTok does. 13:57 So we don't even really have like that much of a web app. 14:01 It's just all mobile for us. Eli Mallon 14:03 I see. 14:03 And then just to follow up on that, like what was scaling like for you with X? 14:07 Because you mentioned I think Bluesky also had this a bit just like going from kind of your user growth was so crazy and was Expo part of enabling you to scale in that way? Speaker E 14:16 Yeah, I think so because it was— we just were able to be so client-focused because they had kind of like built all this infrastructure in a way that we could use it. 14:25 We could really just focus on like the client and trying to reach parity on that side and client-based solutions. 14:31 But then also when we did need like server code, there was like EAS hosting and it was like we could just throw it in the same codebase. 14:37 There wasn't a whole separate thing. 14:40 For us. Eli Mallon 14:40 Yeah. 14:41 And so then I'm also curious just as a kind of state of the ecosystem, like if there's anything that you guys want to just think is really cool that you've seen in either that proto world or the expo world that you want to shout out or just are kind of excited to build with? Paul Frazee 14:54 Oh, well, I mean, my talk in what, 15 minutes is like nonstop shoutouts. 14:59 So you can't give away my talk. Eli Mallon 15:01 I don't want to spoil your talk. Paul Frazee 15:03 Yeah, yeah, yeah. 15:06 So actually, I am going to pass because I don't want to— OK, fair enough. Reed Harmeyer 15:09 So this is becoming part of the app proto world, but Media over QUIC is the sort of next generation way that we are going to replace both sort of traditional HLS-based video playback on the internet, especially for live streams, as well as WebRTC. 15:28 And yeah, it's just like all of the different arrows that we used to use all of these different protocols for are moving toward Media over QUIC. 15:35 As well as two Cisco engineers recently put out a paper explaining how you would do app proto relay data over Media over QUIC, which totally blew up StreamPlace's technical roadmap, 'cause I'm like, oh, I thought we would do MOC someday, and it was like, oh, that'll be like a fun optimization, but now it's like, oh, this is the only protocol we would ever need for everything. 15:57 The app proto data, media data, we can just like speak one language across absolutely everything. 16:02 So yeah, every time I talk to anyone from Expo, I'm like, please Expo Media over QUIC. 16:07 The existence of that library is going to make my life so much easier. 16:10 And also, it'd be good for people's battery life and everything. 16:13 But mostly me, it'd be good. Eli Mallon 16:15 We'll work on it. Reed Harmeyer 16:16 Yeah. Paul Frazee 16:16 Yeah. Speaker E 16:18 I'll say on the Expo side, the Liquid Glass stuff that you guys have, to just be able to get that and it's not super hard to configure. 16:27 You can get the accessory view stuff. 16:29 That's really nice to be able to provide the high fidelity experience for— iOS apps and stuff like that. Eli Mallon 16:35 So I'm curious also just to kind of for the whole panel, like at Proto Conference, is there a kind of weird or interesting way that you're using the protocol that maybe isn't exactly as it was designed but like works really well for your specific use case? 16:48 I have a feeling Eli might have some specific— Reed Harmeyer 16:50 That was the question that I should have told that story in response to. 16:54 I have another one though, which is so I found myself— this is a little bit of a preview of my VOD talk. 17:02 In an hour or two, but I found myself in a situation where— so, you know, you've got one Streamplace architecture, you've got one server that's ingesting the live stream and signing all of the segments that come in, and then I needed to start archiving them and making it available across lots of different servers, especially so you can provide what live stream engineers call DVR, right? 17:24 So you can seek back from the live stream and go see what happened a couple minutes ago. 17:28 So in order to make that happen, I needed to sync that data from the origin server to a bunch of other servers. 17:35 And I realized what I had was like all of these little blobs and I needed to have a sync protocol that could go from one server to another and make sure that they both got an up-to-date state. 17:49 And I started coding something and I'm like, wait a minute, this is an app proto repository. 17:53 That's exactly what I'm doing. 17:54 So, so that's That will be in the VOD talk. 17:57 That's kind of how we're doing that. 17:59 I have turned it off for relays because you get a new segment every second. 18:03 We would get throttled by the entire atmosphere if we released that out. 18:07 So currently that's like a new peer-to-peer at Proto thing that I'm going to be talking about in a little bit. 18:11 But, yeah, yeah. 18:13 But it all— because it's the same primitives, it all does still work. 18:16 So if you're a third-party app that wants to integrate with Streamplace, you can subscribe to the firehose on the Streamplay stream, and you use all the existing @proto libraries that you're already using for everything else. 18:29 So yeah, yeah, interesting fit. 18:31 I'm not sure how many things like that there are in the atmosphere right now, but we're going to see what happens if we do @proto but really, really fast. Eli Mallon 18:39 Cool. 18:40 Reed, I don't know if you have any of that. Reed Harmeyer 18:41 Yeah, I got a good one. Speaker E 18:44 So I think this is kind of, I think, related to Rudy's talk earlier that I believe these apps will kind of move somewhere between like a bespoke social app, but also with a bunch of extended secondary features to be kind of like a browser too. 19:00 That's what we kind of saw from Skylights users, that it was like there really wasn't any reason not to show all the other stuff that's going on. 19:10 And it was actually really powerful for getting— for delivering a core user experience where it's like, hey, look, this might be a video-first app, but there's actually these posts. 19:19 And they might be related to the stuff that you liked watching as a video. 19:24 And so I think— and this kind of then relates to Expo— that if we're all kind of doing the same things, we can have these libraries. 19:31 And we all end up with these slightly different versions of browsers and stuff. 19:35 And that's probably what the future looks like. 19:37 Cool. Eli Mallon 19:38 I don't know if you have anything weird ways— Paul Frazee 19:40 Using the protocol in unexpected ways? Eli Mallon 19:42 You're kind of linked to the protocol. Paul Frazee 19:45 Yeah, we had an unfair advantage on that. 19:48 We actually— I mean, I guess I can use— the answer is not really. 19:51 Um, there— but two things do come to mind. 19:53 One of them is that I didn't think bridging to ActivityPub would work. 19:56 I told Ryan, like, don't even try it. 19:59 And, uh, he proved me wrong, like, big time. 20:03 That works shockingly well. 20:04 Um, so I suppose that in a way is a bit of an abuse of it, especially the, you know, like the automatic kind of mirroring of the accounts and the infrastructure. 20:11 I kind of still can't believe that worked. 20:14 Um, yeah. Speaker E 20:18 Woo! Paul Frazee 20:19 What was the other thing I was going to say? 20:21 I think I lost it. 20:22 So that's it. Eli Mallon 20:24 Yeah. 20:25 And then on that same note, I'm curious for all of you guys if there's anything that you could snap your fingers now and just ignore all of the technical complexity and implementation, if there's something you'd like to be in the app protocol. Paul Frazee 20:37 Oh, that's an easy— I don't want to spoil your talk. 20:38 That one won't spoil my talk. 20:40 No, it's the permission data system. 20:42 Yeah, I think everybody's on the same page with that. 20:45 I mean, the good news is that now it's a dedicated work stream. 20:49 Daniel published his kind of informal version of the proposal that we're making. 20:53 And there's a number of different proposals also from the community that have been getting shared. 20:57 So we're going to be able to come out of the conference and start to side by side all of them and drive towards actually having permission data. 21:02 And so I've been saying like, okay, by the middle of the year, let's try to have this thing actually in production and getting to go. 21:08 And I guess we'll get to look back on the video next year and see if I was right or not. 21:13 But that's roughly, if I could snap my fingers now, I would have it. 21:17 'Cause I think that's the last kind of really big fundamental piece to the technology before we can just start to build any kind of application we want. 21:24 So I'm very excited for that. 21:25 Cool. Reed Harmeyer 21:27 I'm doing good at answering your questions one too early, because I would say it's the Expo media over quick thing. 21:33 Something else I'll throw out— there's obviously always— I don't have the solution yet, but there's obviously always tons of room in taming OAuth complexity. 21:42 That's one of the most difficult things for people to implement. 21:48 In particular for us, there have been 3 Streamplace front ends created by third-party developers since the beginning of this conference 2 days ago, which I don't know if that's not like a good review of our front end if people are like, "I gotta make my own." But it's awesome that it's possible. 22:08 And but it's a really weird interaction because when you log into Streamplace itself, we do server-side OAuth and have, you know, access to your key, which is important for live streaming because we update stuff in your repository without you being there taking actions, right? 22:25 Like when you have a live stream going, it updates the timestamps on it and all of that is automated. 22:32 I have no idea yet what the relationship between that and like these third-party applications look like. 22:37 Are they going to OAuth to Streamplace and then to something else and through this other frontend and like add another layer in there? 22:45 Is there some way to do these automated interactions when you log in with the other app and you're streaming in. 22:51 I don't know. 22:51 So, like, that's— yeah, lots of complexity there that, like, we just need to figure out stories around all that stuff. Eli Mallon 22:56 Yeah. Speaker E 22:58 I'd say from my side, the thing that I'd like to add to the protocol other than the permission data would be if we could basically bring, like, our AI with our data to these applications to have a kind of, like, an agent that you own So, it's not Meta's intelligence or personalization system recommending you videos. 23:19 It's your own, like, paid-for cloud or whatever subscription. 23:25 And I think in particular for us, we kind of figured out that one of the limitations we were going to hit is how much personalization we could actually do for Skylight. 23:36 And it would have made a pretty significant difference if we could have relied on the users themselves to kind cause that personalization to happen to their app. Eli Mallon 23:47 Yeah, cool. 23:48 And then one final question, I guess. 23:50 I think there are a lot of people maybe watching who have seen the app proto but haven't really experimented with it. 23:56 And I think there is a bunch of technologies like Expo that make it easier. 23:59 But do you guys have any pieces of advice for developers who've looked at it but haven't yet played around with it, or maybe just something that the app proto makes super easy that's exciting? Paul Frazee 24:08 OK, yeah. 24:08 Well, I've got a little bit of a canned line that I'll they'll hit you with on that. 24:11 So, like, I would say that Expo and App Proto, the similarity between them is that they're both web heads invading other things, right? 24:20 So, like, Expo is taking web technology and invading native application development and making it so you have one shared thing. 24:26 And I think that the App Protocol is the same story. 24:29 It's the mentality and ethos of web application developers, people that believe in the open web, applying that to the server side of things. 24:37 The other commonality is that they both do a lot for you. 24:40 They kind of help you get to where you want to go faster. 24:43 And I think that as Expo has matured a little bit longer than App Proto has, as App Proto gets even more mature, it's going to feel even more kind of like backend as a service as a protocol in a way where you're getting accounts for free, you're getting access to the network by default, and increasingly hopefully helping with cold start, being able to tap into existing activity networks and things like that. 25:08 Yeah, I guess the tip would be check the docs and ask the agents because they are getting hooked in. Eli Mallon 25:15 Cool. 25:16 Last question. Reed Harmeyer 25:17 Yeah, something I think is that Proto is super good for that I think is underutilized right now is real-time applications where you get immediate, you know, the UI re-renders as soon as data comes in. 25:32 Streamplace chat When I first wired it up, I thought, I was like, let's do it. 25:36 This will be funny. 25:37 This will be like a little hacky way we'll do it. 25:38 What I'm going to do is just make a chat message and then push it to the user's PDS. 25:42 And then it goes all the way from that PDS to the relay to the Streamplace app view. 25:48 And then there's another WebSocket that goes all the way back to the browser. 25:51 And we're going to see like, oh, it'll be funny. 25:52 It'll be like so slow, but it'll be like kind of like chat that's working. 25:55 And it's just great. 25:56 It just kicks ass. 25:58 Like it's so fast. 25:59 It's like the finality in that, like, you know, we do the standard reactive rendering thing where you type in— we like render it in the UI as soon as you type it in. 26:10 But even if I didn't do that, the round trip from browser, Streamplace, PDS, Relay, Streamplace, browser is— it's like a second. 26:22 It's like so fast and it feels like a totally responsive application. 26:26 Yeah. 26:27 And I don't think— maybe the missing piece there is like there's not necessarily like a way for— a standardized way for an app view and a browser to communicate. 26:37 So maybe that's like a barrier to people to get started with it. 26:41 But like literally just like make the records JSON and send them down the WebSocket and it works super, super well. Eli Mallon 26:47 Cool. Paul Frazee 26:48 Yeah. Speaker E 26:49 And I'd say that as a React developer, as like my background, I got I like learned about @proto from Dan Abramov giving a talk and kind of recognizing the same principles that I loved about React were like kind of represented, like the composition pattern of how you can have data from these different lexicons and they all come together. 27:08 And yeah, I think it's just kind of like those same good concepts applied to the backend. Eli Mallon 27:13 Fantastic. 27:14 Okay, well, I think we're out of time, but thank you guys all so much for being here, and thank you all for coming Thank you for coming. Eliot Hertenstein 27:37 Okay, stick around. 27:38 Paul's going to give a state of the atmosphere here in just a couple of minutes. 27:42 Boris is going to be here to introduce. 27:44 And so, So yeah, hang on to your seats and we'll be up in just a few minutes. 27:50 Thanks. Paul Frazee 28:12 That would be great. 28:23 It's about half. Reed Harmeyer 28:26 Yeah. Paul Frazee 28:30 Hey, good to see you. 28:32 Thanks. 28:41 Is there any audio coming off of your presentation by chance? 28:48 No. 28:49 Just a pure video copy? Speaker F 28:51 Yeah. Paul Frazee 28:53 Let's just see what happens, I think. 28:55 Yeah, in between Jay coming on and then the presentation. 29:10 Okay, thank you so much. Reed Harmeyer 29:11 You're welcome. 29:13 Oh. 34:51 Hello everyone. Speaker E 35:02 Hello, hello. Speaker F 35:04 Put your hand up if you can hear me. 35:06 Put your hand up if you can hear me. 35:07 Honk like a goose. 35:10 Amazing. Paul Frazee 35:11 Thank you very much. Speaker F 35:11 How has the morning been? Reed Harmeyer 35:15 All right. 35:16 Excellent. Speaker F 35:18 So thank you, Ted, for not throwing anyone under the atmosphere bus that is this talk. 35:28 Paul is going to come up. 35:30 Talk looks interesting. 35:34 Jay is going to have a little something to say. 35:36 And I think you're going to find it pretty interesting. 35:39 Coming up, Paul, CTO of Bluesky. Paul Frazee 35:47 All right, is this guy on? Speaker F 35:49 We good? Paul Frazee 35:50 Okay, well, I hope y'all are ready for some cheerleading here because we got a lot to do here. 35:57 Ah, so first of all, it is so great to be back here for the Atmosphere Conference 2026. 36:02 Thank you to Boris, to Ted, to all the volunteers for such a great conference. 36:07 Yes, give them some applause. 36:14 All right. 36:15 Well, what a year it has been. 36:17 So just one year ago, I was giving this talk, "Where Did We Come From? 36:21 Where Will We Go?" And, well, it was a pretty crazy year in between. 36:27 In a little bit, I'm going to step through my roadmap that I gave in that talk and see how we did. 36:32 Which should be interesting. 36:34 But last year was hypothetical. 36:36 I was looking into the past, I was looking into the future, and this year I'm going to talk about the present because 2026 is the Atmosphere, y'all. 36:44 Atmos-year. 36:45 Atmos-year. 36:50 Get your puns right. 36:52 So there are so many incredible things happening in the ecosystem from Black Sky