WEBVTT

1
00:00:00.200 --> 00:00:03.399
<v Speaker 1>Welcome to React Roundup, the podcast where we keep you

2
00:00:03.480 --> 00:00:07.080
<v Speaker 1>updated on all things React related. This show is brought

3
00:00:07.080 --> 00:00:11.080
<v Speaker 1>to you by Void and top End Devs. Unvoid provides

4
00:00:11.160 --> 00:00:14.839
<v Speaker 1>high quality design and software development services on a client

5
00:00:14.880 --> 00:00:20.239
<v Speaker 1>friendly business model. Unlike all other software agencies, Unvoid allows

6
00:00:20.239 --> 00:00:24.120
<v Speaker 1>clients to only pay after the work is delivered and approved.

7
00:00:24.600 --> 00:00:28.079
<v Speaker 1>Visit unvoid dot com to learn more and reach out.

8
00:00:28.199 --> 00:00:30.679
<v Speaker 1>If you know a company that needs more professionals to

9
00:00:30.760 --> 00:00:36.000
<v Speaker 1>help with design and software development, that's u n void

10
00:00:36.479 --> 00:00:39.840
<v Speaker 1>dot com and top end Davs helps you stay up

11
00:00:39.840 --> 00:00:44.320
<v Speaker 1>to date with cutting edge technologies like JavaScript, Ruby, Elixir,

12
00:00:44.520 --> 00:00:48.799
<v Speaker 1>and AI. Visit topandevs dot com to join their AIDV

13
00:00:48.880 --> 00:00:54.159
<v Speaker 1>boot camp, weekly community meetups and access expert tutorials. I'm

14
00:00:54.240 --> 00:00:58.079
<v Speaker 1>Lucas Paganini, founder of Onvoid and host of this podcast.

15
00:00:58.439 --> 00:01:04.359
<v Speaker 1>Thank you for tuning in. Let's jump into the episode.

16
00:01:07.920 --> 00:01:10.359
<v Speaker 2>Welcome to React ground Up. I'm Jack Harrington and I'm

17
00:01:10.400 --> 00:01:13.719
<v Speaker 2>here with my co host TJ Van Tool everybody, and

18
00:01:13.840 --> 00:01:17.280
<v Speaker 2>Page Nadering House. Hello everyone, and today we're talking to

19
00:01:17.400 --> 00:01:18.239
<v Speaker 2>Eric Simons.

20
00:01:18.599 --> 00:01:19.400
<v Speaker 3>Hey, how's it going.

21
00:01:19.560 --> 00:01:22.239
<v Speaker 2>Thank you for having me, Thank you for showing up,

22
00:01:22.319 --> 00:01:24.840
<v Speaker 2>and what do you have to talk about? Today React

23
00:01:24.879 --> 00:01:25.280
<v Speaker 2>ground out.

24
00:01:25.480 --> 00:01:27.640
<v Speaker 4>Well, I think probably probably a couple of things, but

25
00:01:27.640 --> 00:01:30.799
<v Speaker 4>I think probably the most interesting thing is some stuff

26
00:01:30.840 --> 00:01:33.680
<v Speaker 4>that we've been working on with the next js team

27
00:01:33.760 --> 00:01:36.599
<v Speaker 4>and Google Prome team that lets you like run no

28
00:01:36.760 --> 00:01:38.959
<v Speaker 4>JS in your browser, which might sound like a really

29
00:01:38.959 --> 00:01:42.079
<v Speaker 4>weird idea, but it's actually very awesome. I mean, especially

30
00:01:42.120 --> 00:01:45.480
<v Speaker 4>with the kind of the current trend of you know,

31
00:01:45.560 --> 00:01:47.799
<v Speaker 4>React is really kind of you know, blurring the line

32
00:01:47.840 --> 00:01:50.799
<v Speaker 4>between what is server code of what is front and code, right,

33
00:01:51.200 --> 00:01:53.120
<v Speaker 4>and so this actually kind of this allows you to

34
00:01:53.159 --> 00:01:56.000
<v Speaker 4>actually have a much faster and better development and debugging

35
00:01:56.000 --> 00:01:57.000
<v Speaker 4>experience for that, and.

36
00:01:57.000 --> 00:01:57.879
<v Speaker 3>We can kind of dig into that.

37
00:01:57.920 --> 00:02:00.239
<v Speaker 4>But I think that's probably the most interesting thing called

38
00:02:00.280 --> 00:02:02.799
<v Speaker 4>webt containers, the technology we made for it, and so

39
00:02:02.840 --> 00:02:04.359
<v Speaker 4>I don't know, maybe sat on Twitter.

40
00:02:04.120 --> 00:02:06.200
<v Speaker 3>At some point, maybe it didn't, but you know, being

41
00:02:06.280 --> 00:02:07.519
<v Speaker 3>kind of being kind of dig into it.

42
00:02:07.879 --> 00:02:10.879
<v Speaker 2>No, it's super cool. And so you can run next

43
00:02:10.960 --> 00:02:12.639
<v Speaker 2>js in the browser.

44
00:02:13.199 --> 00:02:16.599
<v Speaker 4>Yeah, yeah, and so and it's actually so it's like basically,

45
00:02:17.120 --> 00:02:18.719
<v Speaker 4>well I can kind of back up, I kind of

46
00:02:18.719 --> 00:02:20.759
<v Speaker 4>give the context of why the how we ended up

47
00:02:20.800 --> 00:02:24.000
<v Speaker 4>doing this thing and so for it, so back five

48
00:02:24.120 --> 00:02:27.560
<v Speaker 4>years ago now as of this month. Actually, my co

49
00:02:27.639 --> 00:02:29.960
<v Speaker 4>founder of the company's names Albert. He and I actually

50
00:02:30.039 --> 00:02:31.840
<v Speaker 4>grew up down the street from each other. Literally here,

51
00:02:32.439 --> 00:02:33.840
<v Speaker 4>I guess people can't see the video, but I'm in

52
00:02:33.879 --> 00:02:36.240
<v Speaker 4>Chicago my parents house right now, visiting them. And Albert

53
00:02:36.240 --> 00:02:38.400
<v Speaker 4>grew up like literally ford of houses down his parents

54
00:02:38.400 --> 00:02:40.639
<v Speaker 4>are still there. And so we grew up and you

55
00:02:40.800 --> 00:02:42.520
<v Speaker 4>learned how to go together when we were in high school,

56
00:02:42.560 --> 00:02:44.319
<v Speaker 4>and we ended up going out Stillicon Valley and starting

57
00:02:44.360 --> 00:02:47.199
<v Speaker 4>some companies. But five years ago, I guess about six

58
00:02:47.280 --> 00:02:49.960
<v Speaker 4>years ago, we had the realization that browsers were like

59
00:02:50.240 --> 00:02:53.319
<v Speaker 4>getting really powerful, and at the time, we were actually

60
00:02:53.400 --> 00:02:56.319
<v Speaker 4>teaching people how to do web development, and we kept

61
00:02:56.439 --> 00:02:58.840
<v Speaker 4>running into this problem where like students who were learning

62
00:02:58.879 --> 00:03:01.680
<v Speaker 4>would get stuck on like setting up stuff locally on

63
00:03:01.719 --> 00:03:04.000
<v Speaker 4>their computer, and so we're trying to teach React and

64
00:03:04.039 --> 00:03:06.479
<v Speaker 4>they'd be like, hey, reacts says amount of file launchers.

65
00:03:06.759 --> 00:03:10.080
<v Speaker 4>We're like, that is not React. That is just stuff

66
00:03:10.120 --> 00:03:13.199
<v Speaker 4>that broke on your computer for like no good reason. Right,

67
00:03:13.680 --> 00:03:15.319
<v Speaker 4>So we're like, Okay, well, how do we how do

68
00:03:15.400 --> 00:03:17.240
<v Speaker 4>we solve this problem because like we were, we can't

69
00:03:17.240 --> 00:03:20.120
<v Speaker 4>even teach react, right, And we ended up like having

70
00:03:20.120 --> 00:03:22.520
<v Speaker 4>this realization of you know, all these build tools like

71
00:03:22.599 --> 00:03:26.280
<v Speaker 4>webpack and et cetera are just like they're written in JavaScript, right,

72
00:03:26.639 --> 00:03:29.159
<v Speaker 4>and so theoretically, would it be possible to like copy

73
00:03:29.240 --> 00:03:32.199
<v Speaker 4>pasta webpack and then slap it into a browser tab

74
00:03:32.280 --> 00:03:35.479
<v Speaker 4>and like just kind of have it work right and

75
00:03:35.639 --> 00:03:37.560
<v Speaker 4>and so the answer is, like, it's possible. It's just

76
00:03:37.759 --> 00:03:39.840
<v Speaker 4>it's an incredible amount of work to do that. But

77
00:03:40.199 --> 00:03:42.080
<v Speaker 4>Albert and I have always been suckers for a good challenge,

78
00:03:42.120 --> 00:03:44.400
<v Speaker 4>and so we sat down for six months and built out.

79
00:03:44.599 --> 00:03:46.599
<v Speaker 4>Essentially it's kind of like a code pen plus plus

80
00:03:47.039 --> 00:03:49.400
<v Speaker 4>where it had MPM built into it, it had like

81
00:03:49.479 --> 00:03:51.800
<v Speaker 4>web packloaders, you could you know, do all this cool stuff.

82
00:03:52.120 --> 00:03:53.520
<v Speaker 4>So we launched it and kind of like took off

83
00:03:53.599 --> 00:03:55.960
<v Speaker 4>like a rocket. And so that's stacked with dot com

84
00:03:56.080 --> 00:03:58.360
<v Speaker 4>is effectively it's like it's online ide that actually runs

85
00:03:58.520 --> 00:04:01.439
<v Speaker 4>entirely in your browser. It's not using servers. And so

86
00:04:01.560 --> 00:04:04.639
<v Speaker 4>this is different than things like get up code spaces

87
00:04:05.000 --> 00:04:08.039
<v Speaker 4>or like code sandbox run stuff on servers. If you

88
00:04:08.120 --> 00:04:09.840
<v Speaker 4>ever used those things, you know you might notice they're

89
00:04:09.840 --> 00:04:12.120
<v Speaker 4>like pretty slow. You have to be signed and use them.

90
00:04:12.240 --> 00:04:15.039
<v Speaker 4>That's because they're actually provisioning a server for you to

91
00:04:15.159 --> 00:04:18.240
<v Speaker 4>write your code on, which costs them money, and there's

92
00:04:18.240 --> 00:04:20.399
<v Speaker 4>a lot of latency, et cetera. So usually the experience

93
00:04:20.480 --> 00:04:22.839
<v Speaker 4>is worse than your own local environment than when you're

94
00:04:22.920 --> 00:04:24.800
<v Speaker 4>using what of these online. But anyways, so the short

95
00:04:24.839 --> 00:04:26.040
<v Speaker 4>of it is that we end up figuring out, like

96
00:04:26.399 --> 00:04:30.240
<v Speaker 4>a couple of years ago after having launched that it actually, well,

97
00:04:30.319 --> 00:04:32.240
<v Speaker 4>the web has been progressing at a really rapid rate,

98
00:04:32.600 --> 00:04:35.480
<v Speaker 4>and we realized that it was actually theoretically possible at

99
00:04:35.560 --> 00:04:38.000
<v Speaker 4>least to write a new type of operating system and

100
00:04:38.040 --> 00:04:40.079
<v Speaker 4>web assembly from the ground up where you could actually

101
00:04:40.120 --> 00:04:43.000
<v Speaker 4>run no JAS entirely in the browser, which then opens

102
00:04:43.079 --> 00:04:46.279
<v Speaker 4>up the ability to run next, JSS, fight all these

103
00:04:46.319 --> 00:04:49.000
<v Speaker 4>different tool chains and you can just MPM install them,

104
00:04:49.120 --> 00:04:51.279
<v Speaker 4>MPM run start and it's running all on your computer,

105
00:04:51.399 --> 00:04:54.000
<v Speaker 4>so it actually works offline, et cetera. And so we

106
00:04:54.079 --> 00:04:56.519
<v Speaker 4>actually that's that technology is called web Container, and so

107
00:04:56.600 --> 00:04:58.600
<v Speaker 4>we actually rolled that out back in May, and so

108
00:04:58.680 --> 00:05:01.000
<v Speaker 4>stack with the effect that ma you know, Stack, that's

109
00:05:01.079 --> 00:05:04.360
<v Speaker 4>just like the fastest most secure ID on the planet

110
00:05:04.360 --> 00:05:07.079
<v Speaker 4>because it's all being done inside the browser security sandbox,

111
00:05:07.120 --> 00:05:09.399
<v Speaker 4>et cetera. So that's kind of like that's like probably

112
00:05:09.439 --> 00:05:11.279
<v Speaker 4>information overload, but that's kind of the short of like

113
00:05:11.360 --> 00:05:13.360
<v Speaker 4>kind of how we started off and kind of how

114
00:05:13.399 --> 00:05:15.439
<v Speaker 4>we got here today on stuff or building.

115
00:05:15.639 --> 00:05:17.839
<v Speaker 5>Yeah, I think this is kind of crazy to me

116
00:05:17.959 --> 00:05:20.120
<v Speaker 5>because like it took me a while, and maybe I

117
00:05:20.160 --> 00:05:22.360
<v Speaker 5>can talk through this too because it might help others.

118
00:05:22.439 --> 00:05:24.879
<v Speaker 5>Because when I first saw the announcement, my first thought

119
00:05:24.959 --> 00:05:26.879
<v Speaker 5>was like, oh cool. Then my second thought was like, wait,

120
00:05:26.959 --> 00:05:29.600
<v Speaker 5>what does this do again? Right, because it's it's like

121
00:05:30.079 --> 00:05:33.319
<v Speaker 5>oh because and what made it click for me is,

122
00:05:33.800 --> 00:05:35.800
<v Speaker 5>you know, I write a lot of just like really quick.

123
00:05:36.040 --> 00:05:37.720
<v Speaker 5>The main thing I use note for is like writing

124
00:05:37.839 --> 00:05:40.439
<v Speaker 5>little scripts to do things like I need to mess

125
00:05:40.480 --> 00:05:42.879
<v Speaker 5>with some files or something. But my workflow for that

126
00:05:43.000 --> 00:05:45.279
<v Speaker 5>is while I write some script locally and I run

127
00:05:45.319 --> 00:05:47.839
<v Speaker 5>it locally because Node is a local thing, because that's

128
00:05:47.879 --> 00:05:50.199
<v Speaker 5>how it always like works in my brain. It either

129
00:05:50.399 --> 00:05:52.759
<v Speaker 5>runs in my computer, it runs on some server somewhere,

130
00:05:53.319 --> 00:05:57.000
<v Speaker 5>And the idea of going out to a browser and

131
00:05:57.160 --> 00:06:01.639
<v Speaker 5>writing something with Node and runrunning it is kind of like,

132
00:06:01.959 --> 00:06:04.439
<v Speaker 5>at like the very simplest level, what this sort of

133
00:06:04.480 --> 00:06:07.639
<v Speaker 5>thing makes possible. And that sort of blows my mind

134
00:06:08.040 --> 00:06:11.040
<v Speaker 5>a little bit because I still like the part that

135
00:06:11.120 --> 00:06:13.920
<v Speaker 5>still doesn't totally run in my brain or that I

136
00:06:14.000 --> 00:06:17.240
<v Speaker 5>don't totally compute, is like, how is this possible? Because

137
00:06:17.319 --> 00:06:21.639
<v Speaker 5>node is Node is big, right, Like it's fairly complex,

138
00:06:21.959 --> 00:06:25.120
<v Speaker 5>and so are you somehow like loading that are like

139
00:06:25.240 --> 00:06:28.360
<v Speaker 5>people downloading node when they go to like step flits

140
00:06:28.360 --> 00:06:31.439
<v Speaker 5>dot com site web containers or whatever, or like how

141
00:06:31.600 --> 00:06:34.759
<v Speaker 5>exactly are you like injecting that environment to make it

142
00:06:34.959 --> 00:06:38.360
<v Speaker 5>possible to develop with these this sort of tech.

143
00:06:38.600 --> 00:06:40.639
<v Speaker 3>Yeah, it's a that's a really good question.

144
00:06:40.800 --> 00:06:42.240
<v Speaker 4>And then so to kind of add to the to

145
00:06:42.639 --> 00:06:44.199
<v Speaker 4>and I think I kind of I missed the punchline,

146
00:06:44.199 --> 00:06:47.600
<v Speaker 4>which is actually that running no jass in stacklets dot

147
00:06:47.639 --> 00:06:51.600
<v Speaker 4>com is faster than your local environment. Like execution speeds

148
00:06:51.600 --> 00:06:53.680
<v Speaker 4>are twenty percent faster. When you go to stackts dot

149
00:06:53.720 --> 00:06:55.680
<v Speaker 4>com and like start an extrass project, you can kind

150
00:06:55.680 --> 00:06:58.240
<v Speaker 4>of get you can actually literally see how fast it runs, right,

151
00:06:58.560 --> 00:07:01.160
<v Speaker 4>and the FPM installs are like five faster, And so

152
00:07:01.240 --> 00:07:02.879
<v Speaker 4>it's like, how is that even possible?

153
00:07:02.959 --> 00:07:03.079
<v Speaker 6>Right?

154
00:07:03.120 --> 00:07:04.920
<v Speaker 4>How is it even possible that you could like take

155
00:07:05.000 --> 00:07:06.839
<v Speaker 4>node put it in a browser and it's like faster

156
00:07:07.279 --> 00:07:09.199
<v Speaker 4>inside of your browser than it is outside of your

157
00:07:09.199 --> 00:07:11.519
<v Speaker 4>browser on local And so the answer is actually it

158
00:07:11.600 --> 00:07:13.000
<v Speaker 4>was like, this is kind of the key realization that

159
00:07:13.079 --> 00:07:15.600
<v Speaker 4>we had was that, you know Node, Like, if you

160
00:07:15.680 --> 00:07:18.160
<v Speaker 4>go back to the origins of Node, they pulled V

161
00:07:18.319 --> 00:07:21.279
<v Speaker 4>eight out of Chrome to bring it to local, right,

162
00:07:21.639 --> 00:07:23.959
<v Speaker 4>But Google Chrome and all these other browsers they have

163
00:07:24.040 --> 00:07:26.079
<v Speaker 4>their own jobs pretention, whether it's V eight or spider

164
00:07:26.120 --> 00:07:28.839
<v Speaker 4>Monk or whatever. And so if you can actually write

165
00:07:28.920 --> 00:07:32.680
<v Speaker 4>like a compiling tool chain that can take NOJS from

166
00:07:32.759 --> 00:07:37.000
<v Speaker 4>source rip out va and actually use the existing JavaScript

167
00:07:37.079 --> 00:07:39.720
<v Speaker 4>engine right in your browser, you don't have to drag

168
00:07:39.759 --> 00:07:43.160
<v Speaker 4>along a lot of the gigantic stuff that usually comes

169
00:07:43.160 --> 00:07:45.279
<v Speaker 4>along with that because it's already included. And the other

170
00:07:45.439 --> 00:07:48.519
<v Speaker 4>benefit of that is that your browser is continually updating,

171
00:07:48.600 --> 00:07:50.959
<v Speaker 4>getting faster and more secure while you sleep.

172
00:07:51.199 --> 00:07:54.319
<v Speaker 3>Right local. With Node, they use.

173
00:07:54.199 --> 00:07:57.040
<v Speaker 4>A specific pinned version of V eight with every release

174
00:07:57.120 --> 00:08:00.160
<v Speaker 4>of Node, and so if you're using Node eight, you're

175
00:08:00.240 --> 00:08:02.240
<v Speaker 4>using a version of the eight that is incredibly old

176
00:08:02.279 --> 00:08:04.839
<v Speaker 4>and has lots of security vulnerabilities at this point. But

177
00:08:05.079 --> 00:08:08.439
<v Speaker 4>by actually coupling it, you're with stack blitz, right, your

178
00:08:08.519 --> 00:08:11.439
<v Speaker 4>environment actually gets faster and more secure while you're sleeping.

179
00:08:11.600 --> 00:08:13.079
<v Speaker 4>And so what that actually kind of gives you, right

180
00:08:13.240 --> 00:08:15.040
<v Speaker 4>is like with one copy of V eight. There's actually

181
00:08:15.040 --> 00:08:17.199
<v Speaker 4>a huge inefficiency on local because if you think about

182
00:08:17.240 --> 00:08:19.240
<v Speaker 4>web development, like what does it kind of look like?

183
00:08:19.360 --> 00:08:22.879
<v Speaker 4>Usually you have no JS processes running, webpac or whatever

184
00:08:22.959 --> 00:08:24.680
<v Speaker 4>have you, some end number of let's call it like

185
00:08:24.800 --> 00:08:26.920
<v Speaker 4>five to ten processes that are running.

186
00:08:26.920 --> 00:08:28.439
<v Speaker 3>So that's five to ten copies of the eight.

187
00:08:28.480 --> 00:08:31.800
<v Speaker 4>There you have vs code open, which is Electron, which

188
00:08:31.920 --> 00:08:34.600
<v Speaker 4>is therefore Chrome and has its own copy of the eight,

189
00:08:34.919 --> 00:08:37.879
<v Speaker 4>and then you have Chrome open previewing your web app. Right,

190
00:08:38.440 --> 00:08:40.879
<v Speaker 4>so all in all we're talking about a dozen plus

191
00:08:41.240 --> 00:08:44.960
<v Speaker 4>copies of the eight running, which is hugely inefficient, and

192
00:08:45.039 --> 00:08:47.360
<v Speaker 4>so by actually collapsing it all into save one in

193
00:08:47.399 --> 00:08:49.759
<v Speaker 4>the browser, there's a there's a gigantic performance game you

194
00:08:49.879 --> 00:08:52.200
<v Speaker 4>get from doing that. And so that's actually the main

195
00:08:52.279 --> 00:08:54.799
<v Speaker 4>thing that that allows stack up to be faster than

196
00:08:54.840 --> 00:08:56.879
<v Speaker 4>you than your local machine is that it's using one

197
00:08:56.960 --> 00:09:00.200
<v Speaker 4>copy of V eight instead of dozens kind of all

198
00:09:00.279 --> 00:09:03.240
<v Speaker 4>across these different processes or applications on your computer.

199
00:09:03.799 --> 00:09:07.080
<v Speaker 6>So that is that brings me to a good question

200
00:09:07.240 --> 00:09:10.320
<v Speaker 6>because typically when I'm using node it's because I have

201
00:09:10.559 --> 00:09:13.600
<v Speaker 6>maybe like a create React app front end, a Node

202
00:09:13.679 --> 00:09:17.120
<v Speaker 6>Express server back end. Can I build that in stack

203
00:09:17.200 --> 00:09:20.440
<v Speaker 6>Blitz as well, something that serves up different files and

204
00:09:20.600 --> 00:09:23.919
<v Speaker 6>routes to APIs and does all the typical things that

205
00:09:23.960 --> 00:09:26.360
<v Speaker 6>you'd expect a UI to be able to do.

206
00:09:26.879 --> 00:09:28.600
<v Speaker 3>Oh yeah, absolutely absolutely.

207
00:09:28.720 --> 00:09:31.480
<v Speaker 4>So that's in our first market we're really going after

208
00:09:31.559 --> 00:09:33.759
<v Speaker 4>with this technology is web development, and you can do

209
00:09:33.960 --> 00:09:36.799
<v Speaker 4>all of that. So you can run pre react app

210
00:09:36.919 --> 00:09:39.440
<v Speaker 4>with a separate because if you actually go to stack

211
00:09:39.480 --> 00:09:41.919
<v Speaker 4>lis dot com, you don't because it's running on your computer.

212
00:09:42.120 --> 00:09:44.600
<v Speaker 4>We don't make you log any So you can literally

213
00:09:44.639 --> 00:09:46.879
<v Speaker 4>go there now start an next gs app or start

214
00:09:46.919 --> 00:09:49.080
<v Speaker 4>a graph ql app and you actually see a terminal

215
00:09:49.399 --> 00:09:51.639
<v Speaker 4>that pops ups. You can actually run multiple processes at

216
00:09:51.679 --> 00:09:53.639
<v Speaker 4>the same time, just like you would on local and

217
00:09:53.679 --> 00:09:55.639
<v Speaker 4>so you can be running create React app, Andi graph

218
00:09:55.679 --> 00:09:57.559
<v Speaker 4>Cil server where they're like talking to each other and

219
00:09:57.639 --> 00:10:01.840
<v Speaker 4>everything entirely inside of your brain and so like all

220
00:10:01.919 --> 00:10:04.519
<v Speaker 4>of the sort of common workflows that you would be

221
00:10:04.639 --> 00:10:07.960
<v Speaker 4>doing about development. Absolutely, like that's exactly what this thing

222
00:10:08.080 --> 00:10:08.600
<v Speaker 4>is designed for.

223
00:10:08.919 --> 00:10:11.519
<v Speaker 5>Yeah, it's I mean, this is super fascinating because it's

224
00:10:11.679 --> 00:10:14.759
<v Speaker 5>just it enables a lot of stuff. Because you had

225
00:10:14.799 --> 00:10:16.919
<v Speaker 5>said you'd worked with the next Jass team, if you

226
00:10:17.000 --> 00:10:18.879
<v Speaker 5>talked with them at all, because I could totally see

227
00:10:19.120 --> 00:10:23.679
<v Speaker 5>like embedible demos, like because like right now with next JSS,

228
00:10:23.799 --> 00:10:26.200
<v Speaker 5>if you want to learn how something that has some

229
00:10:26.240 --> 00:10:28.679
<v Speaker 5>sort of server component into it, like server rendering or

230
00:10:28.679 --> 00:10:31.519
<v Speaker 5>something like that, like you can't they can't share a

231
00:10:31.600 --> 00:10:33.960
<v Speaker 5>live example of that, right, Like they could share a

232
00:10:34.000 --> 00:10:37.440
<v Speaker 5>GitHub repo, but the that's always a pain, right to

233
00:10:37.480 --> 00:10:39.559
<v Speaker 5>download a get the hub repo, and like sometimes that

234
00:10:39.679 --> 00:10:42.399
<v Speaker 5>involves some setup. Anytime there's a server, there's some sort

235
00:10:42.399 --> 00:10:45.519
<v Speaker 5>of setup. But like I could totally see just embedded

236
00:10:45.559 --> 00:10:49.399
<v Speaker 5>in their docs like here's here's the stack blitz instance,

237
00:10:49.720 --> 00:10:52.960
<v Speaker 5>here's the like almost like here's your client sites code,

238
00:10:53.000 --> 00:10:55.799
<v Speaker 5>here's your server side code, much like you'd embed like

239
00:10:56.120 --> 00:10:58.360
<v Speaker 5>a code pen that shows how to make a dropdown

240
00:10:58.399 --> 00:10:59.279
<v Speaker 5>work or something like that.

241
00:10:59.679 --> 00:11:02.120
<v Speaker 4>Yeah, yeah, absolutely again and they so I think in

242
00:11:02.200 --> 00:11:04.879
<v Speaker 4>there they've actually adopted this for their kind of the

243
00:11:04.960 --> 00:11:08.080
<v Speaker 4>official examples in the next JS repo and docs whatever

244
00:11:08.159 --> 00:11:10.080
<v Speaker 4>have you. So I think you if you actually browse

245
00:11:10.120 --> 00:11:12.840
<v Speaker 4>to those and get up there's a lot of them.

246
00:11:12.879 --> 00:11:15.080
<v Speaker 4>They have like these open and stackplts buttons where you

247
00:11:15.080 --> 00:11:17.320
<v Speaker 4>can actually pop them open and then you can actually

248
00:11:17.320 --> 00:11:18.240
<v Speaker 4>embed this stuff too.

249
00:11:18.440 --> 00:11:21.799
<v Speaker 3>And so I think that the no JS documentation site.

250
00:11:21.840 --> 00:11:24.519
<v Speaker 4>Actually I think just they've started embedding this, you know,

251
00:11:24.559 --> 00:11:27.679
<v Speaker 4>like stack flitz projects because again, like compared to like

252
00:11:28.000 --> 00:11:31.360
<v Speaker 4>there's these other online things that use vms like rappolit

253
00:11:31.440 --> 00:11:33.720
<v Speaker 4>or Glitch, but sandbox, the problem is that when you

254
00:11:33.799 --> 00:11:36.600
<v Speaker 4>actually embed them, they typically don't let you edit the

255
00:11:36.720 --> 00:11:38.600
<v Speaker 4>code because they don't want to provision a VM for

256
00:11:38.679 --> 00:11:41.080
<v Speaker 4>every person who's just browsing by the page, right because

257
00:11:41.080 --> 00:11:43.720
<v Speaker 4>it's going to be way too expensive. And so with

258
00:11:43.879 --> 00:11:45.759
<v Speaker 4>this model, like we can actually really give this out

259
00:11:45.799 --> 00:11:48.320
<v Speaker 4>for free to everyone, which has been kind of an

260
00:11:48.320 --> 00:11:50.879
<v Speaker 4>important thing from our perspective is that like this is

261
00:11:51.120 --> 00:11:52.759
<v Speaker 4>coming back to the origins of why we did this.

262
00:11:53.480 --> 00:11:55.039
<v Speaker 3>This is a huge upgrade from.

263
00:11:54.879 --> 00:11:57.679
<v Speaker 4>The learning experience, right, and so we don't want this

264
00:11:57.759 --> 00:12:00.320
<v Speaker 4>to be something that is payballed or like you have

265
00:12:00.440 --> 00:12:01.840
<v Speaker 4>a whole bunch of hoops you have to go through

266
00:12:01.919 --> 00:12:03.159
<v Speaker 4>to try and use it. That you should be able

267
00:12:03.159 --> 00:12:04.840
<v Speaker 4>to just be able to be browsing. If I want

268
00:12:04.840 --> 00:12:06.200
<v Speaker 4>to learn no JAS, I should be able to browse

269
00:12:06.240 --> 00:12:09.840
<v Speaker 4>their documentation and have a live environment that's booting inside

270
00:12:09.879 --> 00:12:13.399
<v Speaker 4>of my browser, right like without running into file watcher issues.

271
00:12:13.559 --> 00:12:15.360
<v Speaker 3>Like that's twenty twenty one.

272
00:12:15.480 --> 00:12:18.200
<v Speaker 4>This should be fixed by now, right, So that's that's

273
00:12:18.279 --> 00:12:20.480
<v Speaker 4>actually a really a really key thing that you like.

274
00:12:20.559 --> 00:12:22.960
<v Speaker 4>The learning angle, I think is a huge area where

275
00:12:23.120 --> 00:12:26.799
<v Speaker 4>this technology actually really improves the experience substantially.

276
00:12:27.080 --> 00:12:30.080
<v Speaker 6>I think that that's fantastic. One question that I have

277
00:12:30.320 --> 00:12:32.960
<v Speaker 6>is how how do people like Because I haven't used

278
00:12:33.000 --> 00:12:36.600
<v Speaker 6>it myself, but how do people like the environment set up?

279
00:12:36.639 --> 00:12:39.200
<v Speaker 6>Because I know that everybody who has their vs code

280
00:12:39.240 --> 00:12:42.639
<v Speaker 6>instance has like you know, they're prettier formatting their es

281
00:12:42.840 --> 00:12:46.759
<v Speaker 6>lant setup, their kid ignore, get lens or all the

282
00:12:46.879 --> 00:12:49.240
<v Speaker 6>stuff that they've got plugged in, So how do you

283
00:12:50.279 --> 00:12:53.879
<v Speaker 6>handle that and all the particulars that people like to

284
00:12:54.279 --> 00:12:57.440
<v Speaker 6>kind of tweak and set for their own own development.

285
00:12:57.960 --> 00:13:00.159
<v Speaker 4>No, really, it's a very good question. That's actual what

286
00:13:00.200 --> 00:13:03.240
<v Speaker 4>we're working on now. So basically today we've got kind

287
00:13:03.240 --> 00:13:05.720
<v Speaker 4>of this script down version of vs code. This is

288
00:13:05.759 --> 00:13:07.480
<v Speaker 4>that it we designed to be very fast from the

289
00:13:07.559 --> 00:13:09.480
<v Speaker 4>get go, and this is actually the same editor we've

290
00:13:09.519 --> 00:13:11.759
<v Speaker 4>launched with like five years ago, and so this is

291
00:13:11.799 --> 00:13:13.159
<v Speaker 4>before we had the ability to.

292
00:13:13.279 --> 00:13:16.399
<v Speaker 3>Just execute arbitrary and no JS programs in the browser.

293
00:13:16.639 --> 00:13:19.519
<v Speaker 4>Right now, Actually, what's what's kind of cool is that

294
00:13:20.000 --> 00:13:22.120
<v Speaker 4>if you can run no JS in a browser when

295
00:13:22.120 --> 00:13:24.519
<v Speaker 4>you actually look at bs code and what like what

296
00:13:24.720 --> 00:13:27.759
<v Speaker 4>makes vs code extension Like technically like what is a

297
00:13:27.799 --> 00:13:29.919
<v Speaker 4>bs code extension? They're all actually just no JS pro

298
00:13:30.200 --> 00:13:33.120
<v Speaker 4>And so what we're actually drilling into right now, I

299
00:13:33.159 --> 00:13:35.559
<v Speaker 4>think we're it's looking like cloud this out sometime in

300
00:13:35.600 --> 00:13:38.240
<v Speaker 4>the next quarter, is that you're at we actually able

301
00:13:38.279 --> 00:13:42.039
<v Speaker 4>to run vs code wholesale inside of the browser, including

302
00:13:42.120 --> 00:13:45.559
<v Speaker 4>running just arbitrary extensions. And so so I think the

303
00:13:45.639 --> 00:13:48.000
<v Speaker 4>ultimate solution we see to exactly what you're describing, because

304
00:13:48.000 --> 00:13:51.000
<v Speaker 4>that is totally a really important point for us to nail.

305
00:13:51.000 --> 00:13:52.840
<v Speaker 4>It's like, actually, you'll be able to install all the

306
00:13:52.879 --> 00:13:55.440
<v Speaker 4>same extensions that you use today and configure it exactly

307
00:13:55.519 --> 00:13:57.720
<v Speaker 4>how you want. And what's kind of cool about is like,

308
00:13:57.919 --> 00:14:00.399
<v Speaker 4>because this is it is a cloud networked idea. It's

309
00:14:00.440 --> 00:14:02.840
<v Speaker 4>it's using your brows to do the work. But that

310
00:14:02.919 --> 00:14:05.480
<v Speaker 4>will sink automatically whether you use you're on your iPad

311
00:14:05.639 --> 00:14:08.519
<v Speaker 4>or your laptop at your mom's house or whatever. Right like,

312
00:14:08.679 --> 00:14:10.759
<v Speaker 4>it'll actually just kind of work out of the box

313
00:14:10.840 --> 00:14:13.120
<v Speaker 4>because it's it's just like any other just like Big

314
00:14:13.200 --> 00:14:14.799
<v Speaker 4>More or Google Docs. You know, your setting is just

315
00:14:14.879 --> 00:14:16.639
<v Speaker 4>kind of by the fall, they're going to persist across.

316
00:14:17.080 --> 00:14:19.080
<v Speaker 4>So yes, that's kind of that. That's that's how we're

317
00:14:19.200 --> 00:14:22.200
<v Speaker 4>trying to address that stuff, and it's actually working. It's

318
00:14:22.200 --> 00:14:24.320
<v Speaker 4>actual pretty cool. We actually literally just got vis code

319
00:14:24.399 --> 00:14:26.120
<v Speaker 4>kind of fully mounted, like I think it's like last

320
00:14:26.159 --> 00:14:27.879
<v Speaker 4>week or something on top of web continue.

321
00:14:27.879 --> 00:14:30.639
<v Speaker 3>We haven't announced that yet, but like, but that's like

322
00:14:30.720 --> 00:14:32.039
<v Speaker 3>so sneak sneak peak.

323
00:14:34.600 --> 00:14:37.639
<v Speaker 5>Exactly exactly. That's really cool.

324
00:14:37.679 --> 00:14:41.480
<v Speaker 2>How do you get around the browser security limitations? I mean,

325
00:14:41.519 --> 00:14:44.159
<v Speaker 2>if you're going to open up a port for your

326
00:14:44.279 --> 00:14:46.000
<v Speaker 2>next chain, and how does that actually work?

327
00:14:46.200 --> 00:14:48.360
<v Speaker 4>Yeah, it's so that was actually kind of one of

328
00:14:48.399 --> 00:14:49.919
<v Speaker 4>the key things that we had to figure out is

329
00:14:50.240 --> 00:14:52.159
<v Speaker 4>so to be clear, it actually doesn't break out at

330
00:14:52.159 --> 00:14:54.559
<v Speaker 4>the security sandbox at all, which is actually a big feature,

331
00:14:54.799 --> 00:14:57.799
<v Speaker 4>right because there's actually to just do kind of a

332
00:14:57.879 --> 00:14:59.759
<v Speaker 4>quick as side on that. It's like security is actually

333
00:14:59.759 --> 00:15:02.440
<v Speaker 4>on the big things that we see as the benefit

334
00:15:02.600 --> 00:15:05.279
<v Speaker 4>of this approach, right because what's what's going on in

335
00:15:05.320 --> 00:15:07.960
<v Speaker 4>the market right now is that we actually have nation

336
00:15:08.159 --> 00:15:13.360
<v Speaker 4>states that are attacking US and other companies countries and

337
00:15:13.679 --> 00:15:16.799
<v Speaker 4>actually the weakest link right now because they previously they

338
00:15:16.799 --> 00:15:18.840
<v Speaker 4>would try and brute force into your database or something

339
00:15:18.879 --> 00:15:21.399
<v Speaker 4>like that. But that stuff's gotten pretty secure. The weakest

340
00:15:21.440 --> 00:15:23.679
<v Speaker 4>link now is actually the developers who are writing the

341
00:15:23.799 --> 00:15:28.000
<v Speaker 4>software for your bank's website, right because if you can actually,

342
00:15:28.159 --> 00:15:30.639
<v Speaker 4>if you can actually get them to download a malicious

343
00:15:30.679 --> 00:15:33.840
<v Speaker 4>package and then run that on their computer, then you

344
00:15:33.919 --> 00:15:36.080
<v Speaker 4>have access to everything. So you actually have to brute

345
00:15:36.080 --> 00:15:39.000
<v Speaker 4>force into the into the database whatever you usually had,

346
00:15:39.080 --> 00:15:40.519
<v Speaker 4>you know, get one of the devs to install. You

347
00:15:40.519 --> 00:15:43.159
<v Speaker 4>think about an MPM install, You're talking about thousands of dependencies.

348
00:15:43.200 --> 00:15:45.000
<v Speaker 3>So how hard is it to actually do that?

349
00:15:45.039 --> 00:15:47.320
<v Speaker 4>Well, the answer is not hard, and that's exactly what's

350
00:15:47.320 --> 00:15:49.279
<v Speaker 4>happened with solar ones and all these other things going on.

351
00:15:49.679 --> 00:15:52.919
<v Speaker 4>So but in stacklets, because it's actually not breaking out

352
00:15:52.919 --> 00:15:56.240
<v Speaker 4>of the security sandbox, it actually gives this step function

353
00:15:56.360 --> 00:16:00.399
<v Speaker 4>upgrade security because you can install the worst virus ever MPM,

354
00:16:00.840 --> 00:16:02.919
<v Speaker 4>and is all you have to do is just hit

355
00:16:02.960 --> 00:16:05.519
<v Speaker 4>command W and close your browser tack like they cannot

356
00:16:05.600 --> 00:16:08.360
<v Speaker 4>go and scrape it can't go anywhere, it can't go

357
00:16:08.440 --> 00:16:11.440
<v Speaker 4>and scrape your SSH keys. Because of the browsers built

358
00:16:11.480 --> 00:16:13.720
<v Speaker 4>in network restrictions, you're you're not going to be able

359
00:16:13.759 --> 00:16:17.080
<v Speaker 4>to like upload that to some random endpoint, right, So

360
00:16:17.159 --> 00:16:20.039
<v Speaker 4>it actually gives you a really really amazing security guarantee.

361
00:16:20.039 --> 00:16:22.559
<v Speaker 4>And this is actually stacklets as a business. What we

362
00:16:22.759 --> 00:16:25.440
<v Speaker 4>sell is we actually sell stacklets that runs behind the

363
00:16:25.480 --> 00:16:29.559
<v Speaker 4>firewall at these gigantic banks, fintech, government, healthcare, et cetera,

364
00:16:29.639 --> 00:16:32.000
<v Speaker 4>that are the subject of these sorts of attacks right now,

365
00:16:32.480 --> 00:16:35.000
<v Speaker 4>right and so anyways, so and so like how that's

366
00:16:35.039 --> 00:16:37.000
<v Speaker 4>possible that we don't break out the standbox. And so

367
00:16:37.120 --> 00:16:40.600
<v Speaker 4>for networking specifically, what we actually ended up building was

368
00:16:40.679 --> 00:16:44.799
<v Speaker 4>this TCP networking, virtualized TCP networking stack inside of the

369
00:16:44.879 --> 00:16:47.240
<v Speaker 4>browser where it actually maps the like no.

370
00:16:47.519 --> 00:16:50.679
<v Speaker 3>Just TCP calls to the service worker API.

371
00:16:51.039 --> 00:16:53.639
<v Speaker 4>So like when you actually spin up a server in stacklts,

372
00:16:53.879 --> 00:16:56.080
<v Speaker 4>what's actually going on is that there's this virtualized TCP

373
00:16:56.200 --> 00:16:59.200
<v Speaker 4>network stack that's actually translating that into service work or

374
00:16:59.240 --> 00:17:02.279
<v Speaker 4>requests response, right, and so it actually what's kind of

375
00:17:02.320 --> 00:17:04.880
<v Speaker 4>cool about that again from a security angle, like that

376
00:17:05.119 --> 00:17:08.400
<v Speaker 4>is only accessible to that browser instance. So if I

377
00:17:08.720 --> 00:17:10.799
<v Speaker 4>if you go to stacklets and you start an next

378
00:17:10.880 --> 00:17:13.240
<v Speaker 4>JSS project, you take the URL of the dev server

379
00:17:13.319 --> 00:17:16.039
<v Speaker 4>and put it into like Safari or Firefox, you can't

380
00:17:16.079 --> 00:17:19.759
<v Speaker 4>actually access that server right, And that's another attack factor

381
00:17:19.799 --> 00:17:22.359
<v Speaker 4>where people will actually when they install something on your computer,

382
00:17:22.400 --> 00:17:25.359
<v Speaker 4>they'll actually start scraping your local host URLs to try

383
00:17:25.400 --> 00:17:27.920
<v Speaker 4>and grab crudentials from your development life cycle. And so

384
00:17:28.000 --> 00:17:30.119
<v Speaker 4>that's it's just like another angle of like by running

385
00:17:30.160 --> 00:17:33.160
<v Speaker 4>it in the browser, it's faster, it's more secure, it's

386
00:17:33.200 --> 00:17:36.960
<v Speaker 4>way more affortable. It's just like a much better development experience.

387
00:17:37.400 --> 00:17:39.839
<v Speaker 5>Yeah, yeah, it's funny. I used to work at a

388
00:17:39.960 --> 00:17:43.720
<v Speaker 5>hosting company and we had we we didn't do our

389
00:17:43.759 --> 00:17:48.400
<v Speaker 5>development and our actual machines for those exact same security considerations.

390
00:17:48.440 --> 00:17:52.279
<v Speaker 5>We would ssh into these Linux boxes where all our

391
00:17:52.359 --> 00:17:55.400
<v Speaker 5>development stuff would run, just because it was an isolated layer.

392
00:17:55.839 --> 00:17:59.319
<v Speaker 5>But obviously constantly having s sh into everything is also

393
00:17:59.440 --> 00:18:02.880
<v Speaker 5>not the world's greatest experience. So I could see like

394
00:18:03.519 --> 00:18:06.839
<v Speaker 5>some value of having like a standard sort of environment

395
00:18:06.920 --> 00:18:10.599
<v Speaker 5>built in to get the security benefits and the developmental

396
00:18:10.640 --> 00:18:11.359
<v Speaker 5>benefits as well.

397
00:18:11.559 --> 00:18:13.640
<v Speaker 2>Yeah, when I think about like onboarding to a new

398
00:18:14.240 --> 00:18:16.759
<v Speaker 2>like into a new gig, it's like usually three days

399
00:18:16.839 --> 00:18:18.480
<v Speaker 2>or whatever to like get up on the code base

400
00:18:18.559 --> 00:18:21.480
<v Speaker 2>but also get the development environment set up. And some

401
00:18:21.599 --> 00:18:24.759
<v Speaker 2>folks have used like Docker for dev, which has made

402
00:18:24.799 --> 00:18:27.640
<v Speaker 2>that a lot easier, right because everything's kind of all

403
00:18:27.759 --> 00:18:30.000
<v Speaker 2>the right version of node and all that, and then

404
00:18:30.119 --> 00:18:34.519
<v Speaker 2>this is even that much easier. You literally just go

405
00:18:34.720 --> 00:18:37.160
<v Speaker 2>with your browser and it's good out.

406
00:18:38.079 --> 00:18:40.839
<v Speaker 6>That brings up a question though, if you're doing this

407
00:18:41.000 --> 00:18:46.079
<v Speaker 6>development in stacklitz, is their version control like you could

408
00:18:46.160 --> 00:18:49.319
<v Speaker 6>get in GitHub if you accidentally delete something or is

409
00:18:49.480 --> 00:18:52.839
<v Speaker 6>there or how how do I deploy this if I'm

410
00:18:53.160 --> 00:18:55.799
<v Speaker 6>already accessing it in a browser? How do I change

411
00:18:55.799 --> 00:18:59.720
<v Speaker 6>it from local hosts or whatever the development environment is

412
00:18:59.799 --> 00:19:02.920
<v Speaker 6>to you actually put this out on the rest of

413
00:19:03.000 --> 00:19:03.680
<v Speaker 6>the public web.

414
00:19:04.160 --> 00:19:07.440
<v Speaker 4>Yeah, yeah, so that's we have a minimal get integration

415
00:19:07.680 --> 00:19:09.799
<v Speaker 4>right now. It's like it's very alpha. We have like

416
00:19:09.880 --> 00:19:12.039
<v Speaker 4>a very we have a huge update that's can be

417
00:19:12.119 --> 00:19:14.839
<v Speaker 4>coming out next quarter where it basically because right now

418
00:19:14.839 --> 00:19:16.519
<v Speaker 4>we're kind of in the phase of still solidifying the

419
00:19:16.759 --> 00:19:19.799
<v Speaker 4>core technology, make sure all the frameworks out there kind

420
00:19:19.839 --> 00:19:22.039
<v Speaker 4>of run properly on this thing, and you know, et cetera,

421
00:19:22.079 --> 00:19:24.599
<v Speaker 4>et cetera. And the next step after this is like

422
00:19:25.359 --> 00:19:27.799
<v Speaker 4>allowing you to actually integrate this with your production workflows,

423
00:19:28.039 --> 00:19:30.640
<v Speaker 4>so you'll actually be able to just like open up

424
00:19:30.720 --> 00:19:33.559
<v Speaker 4>a stat right now. Actually, if you on any get

425
00:19:33.680 --> 00:19:35.720
<v Speaker 4>up URL if you just add the word blitz after

426
00:19:35.839 --> 00:19:38.200
<v Speaker 4>get up, so get up blitz dot com slash repo,

427
00:19:38.319 --> 00:19:40.039
<v Speaker 4>it'll you can kind of get an idea of a

428
00:19:40.079 --> 00:19:41.519
<v Speaker 4>little taste of what is going to look like.

429
00:19:41.960 --> 00:19:43.799
<v Speaker 3>But effectively, any git RepA you have.

430
00:19:43.880 --> 00:19:45.720
<v Speaker 4>You're gonna be able to pull it in and mount

431
00:19:45.759 --> 00:19:49.559
<v Speaker 4>it instantly and be doing you know, working and committing

432
00:19:49.640 --> 00:19:52.200
<v Speaker 4>back and reviewing, poll recross and that sort of thing.

433
00:19:52.559 --> 00:19:54.839
<v Speaker 4>And so that's like version controls actually be the really

434
00:19:55.359 --> 00:19:58.240
<v Speaker 4>the most first class integration. And of course with that

435
00:19:58.440 --> 00:20:01.279
<v Speaker 4>you have cis for things like now and other like

436
00:20:01.359 --> 00:20:04.240
<v Speaker 4>hosting providers where you know, it'll whatever tool tools you

437
00:20:04.279 --> 00:20:06.680
<v Speaker 4>have set up for hosting, it'll it'll kind of work.

438
00:20:06.720 --> 00:20:06.839
<v Speaker 3>There.

439
00:20:06.880 --> 00:20:09.160
<v Speaker 4>We even another integration we're going to be doing where

440
00:20:09.319 --> 00:20:11.480
<v Speaker 4>well anyways, that's again in that but like that's I

441
00:20:11.519 --> 00:20:13.599
<v Speaker 4>think the short of kind of how that stuff is

442
00:20:13.640 --> 00:20:14.079
<v Speaker 4>going to work.

443
00:20:14.160 --> 00:20:15.000
<v Speaker 3>And I think what's cool.

444
00:20:15.079 --> 00:20:17.200
<v Speaker 4>So when you kind of talk about that, right, what's

445
00:20:17.279 --> 00:20:20.079
<v Speaker 4>cool about being having this like white conaers be able

446
00:20:20.119 --> 00:20:23.559
<v Speaker 4>to mount any get branch or repo is that you

447
00:20:23.599 --> 00:20:25.960
<v Speaker 4>know on local one of the biggest pain points is

448
00:20:26.039 --> 00:20:27.839
<v Speaker 4>like when when you have like a colleague that's like, hey,

449
00:20:28.039 --> 00:20:29.960
<v Speaker 4>like you check out this branch really quick and like

450
00:20:30.359 --> 00:20:31.960
<v Speaker 4>see if this thing works right, and you're like in

451
00:20:32.000 --> 00:20:33.599
<v Speaker 4>the middle of something, you're like, oh my god, I'm

452
00:20:33.599 --> 00:20:35.079
<v Speaker 4>gonna have to like stash all my changes or I

453
00:20:35.119 --> 00:20:38.200
<v Speaker 4>committed up. It's like this whole thing right with this model,

454
00:20:38.559 --> 00:20:41.240
<v Speaker 4>you can actually crack open a whole nother cop You

455
00:20:41.319 --> 00:20:43.920
<v Speaker 4>can open up dozens of copies of your code base

456
00:20:43.920 --> 00:20:46.319
<v Speaker 4>and be running them at the same time without having

457
00:20:46.359 --> 00:20:48.799
<v Speaker 4>to switch branches locally. So it's kind of like the

458
00:20:48.880 --> 00:20:51.000
<v Speaker 4>seamless workload. It's like, hey, can you check this thing out? Sure,

459
00:20:51.039 --> 00:20:53.359
<v Speaker 4>click a lig boom, your boots up, you check the

460
00:20:53.400 --> 00:20:55.599
<v Speaker 4>thing out. Ball, you can commit to that branch. Meanwhile,

461
00:20:55.640 --> 00:20:57.799
<v Speaker 4>your work over here is still there and you don't

462
00:20:57.839 --> 00:21:00.279
<v Speaker 4>have to switch branches, right, So it just it is

463
00:21:00.319 --> 00:21:02.599
<v Speaker 4>this whole friction point around. You know, on local you

464
00:21:02.640 --> 00:21:05.160
<v Speaker 4>really have to like it's a very manual task, kind

465
00:21:05.200 --> 00:21:08.279
<v Speaker 4>of like making sure your get your your get situation

466
00:21:08.720 --> 00:21:10.920
<v Speaker 4>is clean and like you're not losing work and like

467
00:21:11.000 --> 00:21:12.880
<v Speaker 4>you're when you switch branches, where is that going. It's

468
00:21:12.880 --> 00:21:15.119
<v Speaker 4>like that the whole workflow stuff really gets a lot

469
00:21:15.240 --> 00:21:19.000
<v Speaker 4>easier when you can actually just have in fresh, isolated

470
00:21:19.079 --> 00:21:21.920
<v Speaker 4>environments on demand that they're actually running on your local

471
00:21:21.920 --> 00:21:23.400
<v Speaker 4>computer and not on like some cloud thing.

472
00:21:23.599 --> 00:21:23.759
<v Speaker 3>Right.

473
00:21:24.160 --> 00:21:26.920
<v Speaker 6>Yeah, that's a huge selling point for me actually because

474
00:21:26.920 --> 00:21:28.640
<v Speaker 6>I do this, I have to do this at work

475
00:21:28.759 --> 00:21:31.440
<v Speaker 6>right now if I want to look at somebody's changes,

476
00:21:31.559 --> 00:21:34.839
<v Speaker 6>but at previous places that I have worked, We've set

477
00:21:34.960 --> 00:21:39.680
<v Speaker 6>up these massive Jenkins flows which will when somebody pushes

478
00:21:39.720 --> 00:21:41.920
<v Speaker 6>to a PR branch or to a feature branch, it

479
00:21:41.960 --> 00:21:44.400
<v Speaker 6>will automatically pick it up and build it and deploy

480
00:21:44.519 --> 00:21:48.160
<v Speaker 6>it into some dev or staging environment, so you can

481
00:21:48.200 --> 00:21:52.400
<v Speaker 6>at least look around, but not having to pull down

482
00:21:52.559 --> 00:21:55.519
<v Speaker 6>changes locally to actually make tweaks and see what it

483
00:21:55.640 --> 00:21:58.839
<v Speaker 6>looks like and still be on my branch that I've

484
00:21:58.880 --> 00:22:01.839
<v Speaker 6>been working on a story on would be awesome. That

485
00:22:02.359 --> 00:22:04.839
<v Speaker 6>to me is a huge that would be that'd be

486
00:22:04.960 --> 00:22:06.359
<v Speaker 6>really really cool totally.

487
00:22:06.839 --> 00:22:09.039
<v Speaker 4>That's kind of what we're like what we're eyeing for

488
00:22:09.160 --> 00:22:11.200
<v Speaker 4>as well, because I think that's like that's almost the

489
00:22:11.920 --> 00:22:14.559
<v Speaker 4>that's like the to me, it's the most useful, like

490
00:22:15.279 --> 00:22:16.720
<v Speaker 4>you know, other than just like it's it's a great

491
00:22:16.720 --> 00:22:18.720
<v Speaker 4>development environment. It's like that's something where like even if

492
00:22:18.759 --> 00:22:21.079
<v Speaker 4>I want to continue using my local environment as my

493
00:22:21.160 --> 00:22:24.880
<v Speaker 4>primary way having just like you have a preview link

494
00:22:25.000 --> 00:22:27.359
<v Speaker 4>for you know on netlifire or whatever on a PR

495
00:22:28.000 --> 00:22:30.559
<v Speaker 4>want to be just as useful and sometimes even more

496
00:22:30.640 --> 00:22:33.319
<v Speaker 4>so to have a dev environment live, like a live

497
00:22:33.359 --> 00:22:35.319
<v Speaker 4>devon environment preview, we could pop it out and not

498
00:22:35.400 --> 00:22:37.319
<v Speaker 4>only just preview but actually like make changes and just

499
00:22:37.359 --> 00:22:38.440
<v Speaker 4>commit the back to the branch.

500
00:22:38.720 --> 00:22:38.839
<v Speaker 5>Right.

501
00:22:39.279 --> 00:22:41.559
<v Speaker 4>That's I think that's like it's kind of this crazy

502
00:22:41.599 --> 00:22:43.400
<v Speaker 4>part of the workflow, right where if you think about it,

503
00:22:43.599 --> 00:22:45.440
<v Speaker 4>a lot of like what get up does really well

504
00:22:45.519 --> 00:22:47.839
<v Speaker 4>or just like these these Birge control providers now they

505
00:22:48.119 --> 00:22:49.720
<v Speaker 4>actually allow you to do a lot of your workflow

506
00:22:49.799 --> 00:22:53.640
<v Speaker 4>in the browser, right, And the main place where you

507
00:22:53.799 --> 00:22:55.519
<v Speaker 4>have to kind of like where you have there's this

508
00:22:55.759 --> 00:22:57.640
<v Speaker 4>sharp drop off of being able to work in the

509
00:22:57.680 --> 00:22:59.920
<v Speaker 4>browser is when you have to open it up, review it,

510
00:23:00.119 --> 00:23:02.400
<v Speaker 4>make changes, et cetera. So I think this is kind

511
00:23:02.400 --> 00:23:04.480
<v Speaker 4>of like completing that workflow then because you can actually

512
00:23:04.519 --> 00:23:06.839
<v Speaker 4>like do the development in the browser, make the PR

513
00:23:06.920 --> 00:23:08.799
<v Speaker 4>in the browser, have the PRB reviewed in the browser,

514
00:23:08.880 --> 00:23:10.640
<v Speaker 4>and ran in the browser, right, So it's like there's

515
00:23:10.680 --> 00:23:13.440
<v Speaker 4>not this just hard context which every time you're in

516
00:23:13.559 --> 00:23:16.200
<v Speaker 4>that part of the process. So yeah, I agree, our

517
00:23:16.319 --> 00:23:18.119
<v Speaker 4>our team kind of agreece. We're like, God, we need

518
00:23:18.200 --> 00:23:18.839
<v Speaker 4>this thing ourselves.

519
00:23:20.920 --> 00:23:23.400
<v Speaker 5>I'm curious, so you say you do deployees of this,

520
00:23:23.559 --> 00:23:26.839
<v Speaker 5>like internal deploys for companies. When you do that, do

521
00:23:26.960 --> 00:23:30.240
<v Speaker 5>you ship like as an electron app or is it

522
00:23:30.480 --> 00:23:32.799
<v Speaker 5>just more just like a privately hosted thing that still

523
00:23:32.880 --> 00:23:36.400
<v Speaker 5>runs in the browser. And it's sort of a leading

524
00:23:36.480 --> 00:23:39.680
<v Speaker 5>question because I could say that my still biggest remaining

525
00:23:39.720 --> 00:23:43.039
<v Speaker 5>concern with online editors is I don't like how the

526
00:23:43.200 --> 00:23:46.599
<v Speaker 5>keyboard shortcut conflict, like because when you're still running in

527
00:23:46.640 --> 00:23:48.720
<v Speaker 5>a browser, the browser is still going to eat a

528
00:23:48.799 --> 00:23:51.720
<v Speaker 5>lot of keyboard commands that I want the editor to

529
00:23:51.880 --> 00:23:55.359
<v Speaker 5>actually get instead, and you can't really override those. So

530
00:23:55.400 --> 00:23:57.480
<v Speaker 5>I'm curious how you've you've dealt with that in what

531
00:23:57.599 --> 00:23:58.599
<v Speaker 5>your thoughts are around that.

532
00:23:58.839 --> 00:24:00.640
<v Speaker 3>Yeah, so you actually can override them.

533
00:24:00.720 --> 00:24:02.400
<v Speaker 4>So that's actually that was actually one of the big

534
00:24:02.440 --> 00:24:04.440
<v Speaker 4>things that convinced us that this was that we could

535
00:24:04.559 --> 00:24:06.240
<v Speaker 4>you know, because I agree with you, like that's always

536
00:24:06.279 --> 00:24:09.319
<v Speaker 4>been the worst like all the previous online ideas that

537
00:24:09.359 --> 00:24:11.359
<v Speaker 4>have existed. Of course they're using cloud vms to do

538
00:24:11.400 --> 00:24:13.680
<v Speaker 4>this stuff with just slow and expensive whatever, but also

539
00:24:13.720 --> 00:24:15.680
<v Speaker 4>the experience is like you hit command W and then

540
00:24:15.799 --> 00:24:18.400
<v Speaker 4>like your editor goes away and you're like, oh, yeah,

541
00:24:18.400 --> 00:24:19.839
<v Speaker 4>I did not mean to do that, but like my

542
00:24:20.119 --> 00:24:21.759
<v Speaker 4>I'm trained, I have muscle.

543
00:24:21.519 --> 00:24:22.000
<v Speaker 3>Ever it right.

544
00:24:22.599 --> 00:24:25.319
<v Speaker 4>And so what actually the key thing that enables this

545
00:24:25.559 --> 00:24:29.160
<v Speaker 4>is desktop PWAs. So if you actually install staflets or

546
00:24:29.160 --> 00:24:30.839
<v Speaker 4>i mean any other desktop ped of BA when it's

547
00:24:30.880 --> 00:24:34.559
<v Speaker 4>actually in the installed mode, you actually can override every

548
00:24:34.640 --> 00:24:37.519
<v Speaker 4>key binding command W command, T command.

549
00:24:37.240 --> 00:24:38.000
<v Speaker 5>And all of that.

550
00:24:38.240 --> 00:24:40.440
<v Speaker 4>Actually just like a desktop app, and of course it's

551
00:24:40.440 --> 00:24:43.880
<v Speaker 4>a desktop PWA, you lose the url bar, it looks

552
00:24:44.000 --> 00:24:45.920
<v Speaker 4>and functions like a desktop app. You have an icon

553
00:24:46.000 --> 00:24:49.039
<v Speaker 4>on your dock. So the delta actually between what you

554
00:24:49.119 --> 00:24:51.839
<v Speaker 4>can do with a PWA and an electron app that

555
00:24:52.160 --> 00:24:55.160
<v Speaker 4>that delta is like now approaching zero. And on top

556
00:24:55.240 --> 00:24:57.680
<v Speaker 4>of that, the other thing too is like the Chrome

557
00:24:57.759 --> 00:25:01.319
<v Speaker 4>actually shipped the native file system AP last year, so

558
00:25:01.400 --> 00:25:04.559
<v Speaker 4>it actually gives web apps the ability to open a

559
00:25:05.160 --> 00:25:07.039
<v Speaker 4>piece of your file system, whether it's a folder or

560
00:25:07.039 --> 00:25:10.119
<v Speaker 4>a specific file or whatever, and give the web app

561
00:25:10.200 --> 00:25:12.720
<v Speaker 4>read and write access to it. So one of the

562
00:25:12.799 --> 00:25:15.279
<v Speaker 4>things with with web container and stack that's it's interesting

563
00:25:15.440 --> 00:25:17.720
<v Speaker 4>is like part of the vis code rollout we're doing. God,

564
00:25:17.759 --> 00:25:19.640
<v Speaker 4>I'm like just spilling the beans. But like basically the

565
00:25:19.680 --> 00:25:22.839
<v Speaker 4>short of it is like to your point, like, if

566
00:25:22.880 --> 00:25:26.160
<v Speaker 4>this thing can feel like a desktop editor and it

567
00:25:26.240 --> 00:25:30.000
<v Speaker 4>can actually mount folders already on your computer, you could

568
00:25:30.000 --> 00:25:33.480
<v Speaker 4>actually use this as your primary editor and you really

569
00:25:33.519 --> 00:25:35.640
<v Speaker 4>wouldn't know the difference except for the fact that it

570
00:25:35.680 --> 00:25:38.440
<v Speaker 4>automatically sinks all of your settings and it's like somehow

571
00:25:38.519 --> 00:25:41.720
<v Speaker 4>way faster and you know, YadA YadA, YadA, Right, And

572
00:25:41.799 --> 00:25:44.079
<v Speaker 4>so that's that's actually like kind of the key thing

573
00:25:44.119 --> 00:25:46.000
<v Speaker 4>that we see is like really enabling this to like

574
00:25:46.119 --> 00:25:47.079
<v Speaker 4>work in a meaningful way.

575
00:25:47.400 --> 00:25:51.160
<v Speaker 5>Yeah, it took until I've long been a naysayer of

576
00:25:51.240 --> 00:25:55.000
<v Speaker 5>web based editors, like for more than like for tinkering great, right,

577
00:25:55.119 --> 00:25:57.680
<v Speaker 5>but it's a long time software developer, Like it was

578
00:25:57.720 --> 00:26:00.240
<v Speaker 5>always like, oh but it's it's clunky and it's like

579
00:26:00.319 --> 00:26:03.440
<v Speaker 5>my real editor. And it took vs code to like

580
00:26:03.680 --> 00:26:06.599
<v Speaker 5>convince me that like, oh crap, like this is actually

581
00:26:07.119 --> 00:26:09.799
<v Speaker 5>really good, really fast, and this is all web based,

582
00:26:09.880 --> 00:26:13.599
<v Speaker 5>so there's there's no reason at this point this can't

583
00:26:13.640 --> 00:26:16.599
<v Speaker 5>be done. And the browser like this, the speed is there.

584
00:26:16.680 --> 00:26:19.680
<v Speaker 5>It's just solving these like last mile type of things

585
00:26:19.720 --> 00:26:20.559
<v Speaker 5>to make it possible.

586
00:26:21.000 --> 00:26:24.920
<v Speaker 3>Yeah, exactly exactly, and it's been a long time coming.

587
00:26:24.960 --> 00:26:26.200
<v Speaker 3>I mean it's like and this is kind of like.

588
00:26:26.359 --> 00:26:28.880
<v Speaker 4>You know, almost like the first minute where you could

589
00:26:28.920 --> 00:26:30.400
<v Speaker 4>kind of be doing something like this because I mean

590
00:26:30.400 --> 00:26:32.680
<v Speaker 4>a lot of the APIs that we rely on didn't

591
00:26:32.720 --> 00:26:34.839
<v Speaker 4>exist a couple of years ago, and some of them,

592
00:26:34.920 --> 00:26:37.200
<v Speaker 4>like with the web assembly threads and whatever, I mean,

593
00:26:37.240 --> 00:26:39.000
<v Speaker 4>they're still kind of figuring out how to enable this

594
00:26:39.240 --> 00:26:41.400
<v Speaker 4>in all browsers, right, So it's kind of like we're

595
00:26:41.440 --> 00:26:43.680
<v Speaker 4>we're at this is like the I think this this

596
00:26:43.799 --> 00:26:46.359
<v Speaker 4>is gonna be an interesting decade for this industry. I

597
00:26:46.440 --> 00:26:48.880
<v Speaker 4>think because the web is i mean, the web is

598
00:26:48.920 --> 00:26:51.119
<v Speaker 4>powerful enough to like write the web like that's kind

599
00:26:51.119 --> 00:26:51.400
<v Speaker 4>of the key.

600
00:26:51.480 --> 00:26:52.640
<v Speaker 3>That was the thing that blew our minds.

601
00:26:52.720 --> 00:26:54.480
<v Speaker 4>We're like, this is the first time you can actually

602
00:26:54.799 --> 00:26:56.440
<v Speaker 4>like that's kind of if you talk to people who

603
00:26:57.119 --> 00:27:00.240
<v Speaker 4>have built, you know, stuff for platforms before. The two

604
00:27:00.640 --> 00:27:04.119
<v Speaker 4>biggest stress tests of any platform is one video games, right,

605
00:27:04.160 --> 00:27:07.599
<v Speaker 4>because you're talking about an incredible number of calculations that

606
00:27:07.640 --> 00:27:10.400
<v Speaker 4>are happening right typically at that and you're seeing a

607
00:27:10.400 --> 00:27:12.640
<v Speaker 4>lot of browsers supporting video games now right, like a

608
00:27:12.640 --> 00:27:14.119
<v Speaker 4>lot of browsers starting to move into a lot of

609
00:27:14.160 --> 00:27:16.599
<v Speaker 4>games and movies in the browser. And the second one

610
00:27:16.759 --> 00:27:19.599
<v Speaker 4>is IDEs because you're you know, the platform has to

611
00:27:19.680 --> 00:27:23.319
<v Speaker 4>be powerful enough and have sufficient API surfaces to actually

612
00:27:23.440 --> 00:27:26.119
<v Speaker 4>let you use the platform to build applications for the

613
00:27:26.160 --> 00:27:28.799
<v Speaker 4>platform itself, right, And so this is actually like the

614
00:27:28.880 --> 00:27:31.640
<v Speaker 4>first time we've been able to do that for the web. Right,

615
00:27:31.680 --> 00:27:33.440
<v Speaker 4>this is like a story thirty years in the making

616
00:27:33.519 --> 00:27:37.559
<v Speaker 4>where you've never been able from a technical standpoint to

617
00:27:38.160 --> 00:27:41.160
<v Speaker 4>use a browser to write applications for the browser without

618
00:27:41.200 --> 00:27:42.480
<v Speaker 4>a server or something involved.

619
00:27:42.559 --> 00:27:42.680
<v Speaker 3>Right.

620
00:27:42.720 --> 00:27:44.640
<v Speaker 4>But that's like cheating, you know, because it's like that's

621
00:27:45.039 --> 00:27:47.640
<v Speaker 4>it's like going to an IBM mainframe to compile an

622
00:27:47.680 --> 00:27:49.519
<v Speaker 4>iPhone app or something. Right, It's like it's not it's

623
00:27:49.920 --> 00:27:52.440
<v Speaker 4>not running on that same device. So anyway, so like

624
00:27:52.559 --> 00:27:54.359
<v Speaker 4>that's that's I think what's kind of crazy is I

625
00:27:54.400 --> 00:27:57.920
<v Speaker 4>think that that is historically that's an important moment for

626
00:27:58.000 --> 00:27:59.960
<v Speaker 4>any platform because then that means there's going to be

627
00:28:00.359 --> 00:28:04.359
<v Speaker 4>an explosion of new types of applications that weren't possible

628
00:28:04.480 --> 00:28:07.720
<v Speaker 4>for right, and an explosion of applications period because the

629
00:28:07.799 --> 00:28:11.440
<v Speaker 4>friction has gotten a lot lower. Yeah, anyways, interesting time

630
00:28:11.519 --> 00:28:12.960
<v Speaker 4>to be in the web development space. I think it's

631
00:28:13.000 --> 00:28:14.400
<v Speaker 4>I think we're just we're just getting started.

632
00:28:15.519 --> 00:28:19.119
<v Speaker 2>So you mentioned education as kind of the impetus for this,

633
00:28:19.599 --> 00:28:22.759
<v Speaker 2>and I'm a very interested in that myself. I've done

634
00:28:22.799 --> 00:28:24.839
<v Speaker 2>a lot of work in like fourth grade classrooms, IoT

635
00:28:25.000 --> 00:28:27.559
<v Speaker 2>type stuff. And then also, you know at high school level,

636
00:28:27.880 --> 00:28:31.559
<v Speaker 2>I mean the issue always is they've got chromebooks, right,

637
00:28:31.680 --> 00:28:33.960
<v Speaker 2>and what can you do on a chromebook? You know

638
00:28:34.039 --> 00:28:36.079
<v Speaker 2>you can do the little IoT things for sure, dragon

639
00:28:36.119 --> 00:28:38.839
<v Speaker 2>drop this and that, but like, can can this now

640
00:28:39.160 --> 00:28:40.920
<v Speaker 2>work on a Chromebook? Can I go teach these kids?

641
00:28:41.000 --> 00:28:42.079
<v Speaker 5>React? Because I'd love to.

642
00:28:42.079 --> 00:28:45.440
<v Speaker 4>Do Oh yeah, oh yeah, absolutely absolutely right, Like I

643
00:28:45.480 --> 00:28:48.160
<v Speaker 4>think that's like so we actually test against the worst

644
00:28:48.359 --> 00:28:51.319
<v Speaker 4>of these devices, like you know, like, yeah, it's a

645
00:28:51.400 --> 00:28:54.160
<v Speaker 4>no joke. I've got this six year old I think

646
00:28:54.160 --> 00:28:56.720
<v Speaker 4>it's like I think it's like one point two gigahertz

647
00:28:57.359 --> 00:29:01.559
<v Speaker 4>sort of mobile Intel process service, gig of ram maybe right,

648
00:29:01.599 --> 00:29:04.680
<v Speaker 4>It's it's just this terrible absolutely, like it's difficult to

649
00:29:04.880 --> 00:29:07.160
<v Speaker 4>just type in to sign into Google on the sort

650
00:29:07.200 --> 00:29:09.759
<v Speaker 4>of like level, right, And and so we actually, you know,

651
00:29:09.799 --> 00:29:11.599
<v Speaker 4>when we were building this, we had no idea, like

652
00:29:11.680 --> 00:29:13.519
<v Speaker 4>you know, we like we work a lot with like

653
00:29:13.559 --> 00:29:15.920
<v Speaker 4>the Crown team, and like Google's Ventures is actually an

654
00:29:15.960 --> 00:29:18.279
<v Speaker 4>investor in our company. So we've got great relationship these folks,

655
00:29:18.279 --> 00:29:19.880
<v Speaker 4>and even you know, the people we talked to, they're like,

656
00:29:20.279 --> 00:29:22.160
<v Speaker 4>maybe it should work, like we really no one's ever

657
00:29:22.240 --> 00:29:24.440
<v Speaker 4>done this, right, like you know, so and you know,

658
00:29:24.519 --> 00:29:26.200
<v Speaker 4>that was kind of a big question for us, is

659
00:29:26.279 --> 00:29:28.960
<v Speaker 4>like if this only is going to work on MacBook

660
00:29:29.000 --> 00:29:31.119
<v Speaker 4>pros with sixteen gigs of RAM and YadA YadA, that's

661
00:29:31.440 --> 00:29:33.759
<v Speaker 4>that's kind of that's not it's not gonna fit our

662
00:29:33.759 --> 00:29:36.599
<v Speaker 4>solution criteria. But to our surprise, again because of the

663
00:29:36.680 --> 00:29:38.720
<v Speaker 4>efficiency of the model of one copy of the A

664
00:29:38.920 --> 00:29:40.200
<v Speaker 4>and a whole bunch of other stuff that we do

665
00:29:40.559 --> 00:29:43.359
<v Speaker 4>to make it, you know, insanely fast and efficient. It's

666
00:29:43.400 --> 00:29:46.000
<v Speaker 4>actually the first time you can even run these tool

667
00:29:46.039 --> 00:29:48.599
<v Speaker 4>chains on those sorts of devices and and so you

668
00:29:48.680 --> 00:29:51.279
<v Speaker 4>can actually run create react app, next gs, et cetera

669
00:29:51.359 --> 00:29:54.599
<v Speaker 4>on these like just wimpy devices, and it's kind of

670
00:29:54.680 --> 00:29:56.960
<v Speaker 4>kind of incredible and and you know, it's certainly slower

671
00:29:57.000 --> 00:29:59.400
<v Speaker 4>than my back, but it's actually faster than the other

672
00:29:59.480 --> 00:30:01.759
<v Speaker 4>online on used to use a vamp to do the work.

673
00:30:02.160 --> 00:30:04.079
<v Speaker 4>So that's like been like that was for us. That's

674
00:30:04.160 --> 00:30:05.759
<v Speaker 4>like the second we saw that, we're like, this is

675
00:30:06.119 --> 00:30:08.759
<v Speaker 4>we're going all in on the strategy because you know,

676
00:30:08.880 --> 00:30:11.400
<v Speaker 4>every every K tell you know, K through twelve school

677
00:30:11.440 --> 00:30:15.480
<v Speaker 4>and even colleges can use this for free. And again

678
00:30:15.559 --> 00:30:17.599
<v Speaker 4>that's always been the problem with schools is they don't

679
00:30:17.640 --> 00:30:20.960
<v Speaker 4>have the money to pay for this stuff typically right exactly,

680
00:30:21.119 --> 00:30:23.240
<v Speaker 4>and and we don't have to flip the bill, like

681
00:30:23.319 --> 00:30:24.640
<v Speaker 4>all we're paying is the same, Like we have a

682
00:30:24.680 --> 00:30:26.960
<v Speaker 4>million something developers that use Stack what's every month, and

683
00:30:27.000 --> 00:30:28.519
<v Speaker 4>we pay I think like eight or a bucks total

684
00:30:28.559 --> 00:30:29.200
<v Speaker 4>on our edile.

685
00:30:29.279 --> 00:30:30.799
<v Speaker 2>Because the computing is all done on the edge.

686
00:30:31.279 --> 00:30:32.240
<v Speaker 3>It's exactly.

687
00:30:33.480 --> 00:30:36.960
<v Speaker 4>Exactly exactly, and so it's just this transient electricity cost

688
00:30:37.200 --> 00:30:39.759
<v Speaker 4>users paying, which is effectively nothing. And so the model

689
00:30:39.799 --> 00:30:41.759
<v Speaker 4>just works out really well. Where you know, from from

690
00:30:41.960 --> 00:30:44.079
<v Speaker 4>people in K twelve who are just learning how to

691
00:30:44.119 --> 00:30:46.720
<v Speaker 4>code all the way to like Fortune fifth, where they're

692
00:30:46.759 --> 00:30:48.720
<v Speaker 4>like writing the software that you know we used to

693
00:30:49.079 --> 00:30:52.200
<v Speaker 4>wire money, right, is like it kind of this this

694
00:30:52.319 --> 00:30:56.000
<v Speaker 4>kind of technology can actually span that entire that entire category,

695
00:30:56.359 --> 00:30:58.359
<v Speaker 4>which is kind of rare, Like it's not often that

696
00:30:58.440 --> 00:31:01.599
<v Speaker 4>you see something that can kind of accommodate.

697
00:31:01.119 --> 00:31:03.240
<v Speaker 3>All those use cases to allegany right.

698
00:31:03.559 --> 00:31:06.480
<v Speaker 5>Yeah, when we talk education, our minds usually go to

699
00:31:06.599 --> 00:31:09.759
<v Speaker 5>like fourth graders or young kids. But there are a

700
00:31:09.799 --> 00:31:11.440
<v Speaker 5>lot of companies that spend a lot of money on

701
00:31:11.599 --> 00:31:15.119
<v Speaker 5>training there they're not fourth grade employees to get up

702
00:31:15.119 --> 00:31:19.519
<v Speaker 5>to speed in the technology. And would gladly welcome anything

703
00:31:19.599 --> 00:31:22.880
<v Speaker 5>that cuts down on that, right, that that automates things

704
00:31:22.920 --> 00:31:26.519
<v Speaker 5>that previously they had to teach and have processes around

705
00:31:26.519 --> 00:31:29.039
<v Speaker 5>and all that sort of thing, or that twelve hours

706
00:31:29.160 --> 00:31:32.960
<v Speaker 5>onboard somebody, right, yeah, yeah, exactly, and it might.

707
00:31:32.960 --> 00:31:36.880
<v Speaker 6>Lower your your cost for actually outfitting a new employee.

708
00:31:37.000 --> 00:31:40.200
<v Speaker 6>Because I can't do development except on a Mac. That's

709
00:31:40.240 --> 00:31:42.200
<v Speaker 6>how I've learned, and that is what I will die

710
00:31:42.799 --> 00:31:45.680
<v Speaker 6>in the grave knowing. I refuse to even try Windows

711
00:31:45.839 --> 00:31:50.160
<v Speaker 6>or Linux. So one question that we have, in addition

712
00:31:50.279 --> 00:31:53.119
<v Speaker 6>to all the devices that it can run on, can

713
00:31:53.200 --> 00:31:55.759
<v Speaker 6>it run on different web platforms? Can it run on

714
00:31:56.400 --> 00:32:00.400
<v Speaker 6>or yeah, Microsoft Edge? Can it run on Chrome probably obviously?

715
00:32:00.519 --> 00:32:04.720
<v Speaker 6>Can it run on Firefox? Is it compatible across all those?

716
00:32:05.160 --> 00:32:05.359
<v Speaker 1>Yeah?

717
00:32:05.720 --> 00:32:06.440
<v Speaker 3>Yeah, good question.

718
00:32:06.599 --> 00:32:09.079
<v Speaker 4>So yeah today it runs on Chrome and Edge like perfectly,

719
00:32:09.599 --> 00:32:13.599
<v Speaker 4>and on Safari it requires a canfig flag not smart

720
00:32:13.839 --> 00:32:17.240
<v Speaker 4>I'm fire Firefox actually, now Firefox Asafari requires a config

721
00:32:17.359 --> 00:32:19.440
<v Speaker 4>flag like a run time can fig flag. And so

722
00:32:19.559 --> 00:32:22.400
<v Speaker 4>actually the big issue that we built all this stuff

723
00:32:22.440 --> 00:32:25.279
<v Speaker 4>on top of web standards and so like it should

724
00:32:25.279 --> 00:32:28.119
<v Speaker 4>absolutely work on all these things. There's no platform specific

725
00:32:28.200 --> 00:32:30.079
<v Speaker 4>APIs that we're using to make the core of this

726
00:32:30.160 --> 00:32:33.359
<v Speaker 4>functionality work. There's actually what what kind of happened is

727
00:32:33.400 --> 00:32:36.079
<v Speaker 4>after the spectrum meltdown stuff. You all probably kind of

728
00:32:36.119 --> 00:32:38.279
<v Speaker 4>heard about this, like the shared ray buffers, and they've

729
00:32:38.279 --> 00:32:39.960
<v Speaker 4>been trying to figure out how to bring them safely

730
00:32:40.079 --> 00:32:42.880
<v Speaker 4>back to the web. And this is an application that

731
00:32:43.400 --> 00:32:45.319
<v Speaker 4>has to use share a ray buffers. There's no other

732
00:32:45.400 --> 00:32:47.599
<v Speaker 4>way to do what we're doing than having a shared

733
00:32:47.640 --> 00:32:52.119
<v Speaker 4>memory with atomic right locket right. And so because of that,

734
00:32:52.279 --> 00:32:54.759
<v Speaker 4>we're kind of blocked by the Chrome is kind of

735
00:32:54.759 --> 00:32:56.680
<v Speaker 4>always at the bleeding edge of this stuff, and so

736
00:32:57.000 --> 00:32:59.599
<v Speaker 4>you know them and therefore edge because edges, you know,

737
00:32:59.720 --> 00:33:02.759
<v Speaker 4>kind of is chromium. Now that stuff works fine. I

738
00:33:02.799 --> 00:33:07.880
<v Speaker 4>think Firefox Firefox is actually uh is darn close. Safari

739
00:33:08.039 --> 00:33:09.960
<v Speaker 4>is just kind of doing their own thing, but they

740
00:33:10.039 --> 00:33:12.440
<v Speaker 4>usually come around given enough time. But you know, so

741
00:33:12.559 --> 00:33:14.000
<v Speaker 4>that's that's kind of where where it lays. But I

742
00:33:14.000 --> 00:33:17.640
<v Speaker 4>think probably within the next six to maximum twelve months.

743
00:33:17.640 --> 00:33:18.920
<v Speaker 4>I think it's like you're gonna be able to open

744
00:33:19.000 --> 00:33:21.559
<v Speaker 4>this up on like your iPhone and like be elect

745
00:33:21.599 --> 00:33:23.720
<v Speaker 4>you run an OJS on your iPhone in a browser,

746
00:33:23.759 --> 00:33:26.720
<v Speaker 4>which is like kind of kind of insane to think

747
00:33:26.759 --> 00:33:30.119
<v Speaker 4>about on our web page and it's like cool, like

748
00:33:30.279 --> 00:33:31.720
<v Speaker 4>that's that's running on my phone.

749
00:33:33.920 --> 00:33:36.039
<v Speaker 5>So I'm very curious how this works though, because you

750
00:33:36.039 --> 00:33:39.319
<v Speaker 5>described it earlier as being like what you're shipping is

751
00:33:39.480 --> 00:33:42.319
<v Speaker 5>like a rere almost like a way of communicating with

752
00:33:42.400 --> 00:33:45.160
<v Speaker 5>the V eight that's already there, but in Firefox, VA

753
00:33:45.319 --> 00:33:48.000
<v Speaker 5>isn't there, and your iPhone V eight isn't there, So

754
00:33:48.880 --> 00:33:50.799
<v Speaker 5>how is that working on those browsers?

755
00:33:51.279 --> 00:33:55.119
<v Speaker 4>So yeah, So basically what we've kind of done with

756
00:33:55.559 --> 00:33:57.680
<v Speaker 4>that end of it is like all of these different

757
00:33:58.039 --> 00:33:59.880
<v Speaker 4>like and if you look at like node and den

758
00:34:00.240 --> 00:34:02.680
<v Speaker 4>and any of these alternative jobs for runt times that

759
00:34:02.680 --> 00:34:05.079
<v Speaker 4>are out of the browser, right, what they do is

760
00:34:05.119 --> 00:34:06.920
<v Speaker 4>they take the eight, which will provides you with all

761
00:34:07.000 --> 00:34:09.760
<v Speaker 4>the stuff you need effectively to run a job is prevenure,

762
00:34:09.800 --> 00:34:11.760
<v Speaker 4>but it does not include any of like the built

763
00:34:11.800 --> 00:34:14.000
<v Speaker 4>in stuff you know that your browserships with, Like if

764
00:34:14.000 --> 00:34:16.400
<v Speaker 4>you want to have a new date function that doesn't

765
00:34:16.400 --> 00:34:18.000
<v Speaker 4>ship with the A you have to like provide your own,

766
00:34:18.119 --> 00:34:20.719
<v Speaker 4>right or if you want to say new URL that

767
00:34:21.079 --> 00:34:23.400
<v Speaker 4>you know you all these different things have to be included.

768
00:34:23.840 --> 00:34:27.039
<v Speaker 4>And so essentially like that's actually the kind of the bulk,

769
00:34:27.119 --> 00:34:29.039
<v Speaker 4>and there's more to it than that, but effectively like

770
00:34:29.199 --> 00:34:31.079
<v Speaker 4>the bulk of when you actually look at NOE, it's

771
00:34:31.119 --> 00:34:33.880
<v Speaker 4>like this stuff is already available in every browser because

772
00:34:33.960 --> 00:34:36.559
<v Speaker 4>this stuff is standardized, right, and the stuff that isn't standardized,

773
00:34:36.800 --> 00:34:38.239
<v Speaker 4>what we end up doing is compiling it out to

774
00:34:38.280 --> 00:34:41.519
<v Speaker 4>web assembly or other and and allow it to run

775
00:34:41.639 --> 00:34:42.239
<v Speaker 4>like that, right.

776
00:34:42.639 --> 00:34:47.599
<v Speaker 5>Interesting, So then are there specific node versions you support?

777
00:34:47.679 --> 00:34:47.800
<v Speaker 6>Then?

778
00:34:47.920 --> 00:34:51.199
<v Speaker 5>Is that something you can like select with instat blots.

779
00:34:51.679 --> 00:34:51.880
<v Speaker 1>Yeah?

780
00:34:52.039 --> 00:34:54.360
<v Speaker 4>Yeah, So so today we're like, I think the version

781
00:34:54.400 --> 00:34:57.000
<v Speaker 4>where is like version fourteen, I can't remember the subversion,

782
00:34:57.039 --> 00:34:58.719
<v Speaker 4>but we've got at one pin version where we're kind

783
00:34:58.760 --> 00:35:01.519
<v Speaker 4>of battle testing the tech ology on. And then once

784
00:35:01.559 --> 00:35:03.519
<v Speaker 4>we're once we're out of beta on this thing, we're

785
00:35:03.519 --> 00:35:05.960
<v Speaker 4>going to be adding I think we're the current planet

786
00:35:06.000 --> 00:35:08.039
<v Speaker 4>that we're going to be doing LTS releases, So like

787
00:35:08.119 --> 00:35:10.480
<v Speaker 4>every LTS release from fourteen on, you know you'll be

788
00:35:10.519 --> 00:35:12.920
<v Speaker 4>able to use on stock puts. But yeah, so that

789
00:35:13.039 --> 00:35:14.639
<v Speaker 4>that's kind of the idea, is that we're gonna have

790
00:35:15.000 --> 00:35:16.639
<v Speaker 4>a list of versions of you that you'll be able

791
00:35:16.639 --> 00:35:17.079
<v Speaker 4>to use here.

792
00:35:17.639 --> 00:35:20.039
<v Speaker 5>Okay, nice. So how about end end testing?

793
00:35:20.159 --> 00:35:21.960
<v Speaker 2>So if I am building my app and I've got

794
00:35:22.000 --> 00:35:24.199
<v Speaker 2>my unit test running and all that, how do end

795
00:35:24.320 --> 00:35:26.159
<v Speaker 2>end testing is gonna try.

796
00:35:26.079 --> 00:35:28.079
<v Speaker 5>And hit those URLs?

797
00:35:28.320 --> 00:35:29.719
<v Speaker 2>Is that is that going to sit on that same

798
00:35:29.719 --> 00:35:33.679
<v Speaker 2>emahilation layer You mentioned that externally accessible outside the browsers,

799
00:35:33.760 --> 00:35:34.440
<v Speaker 2>so that's an issue.

800
00:35:34.760 --> 00:35:36.360
<v Speaker 4>Yeah, well so it depends on like we say, and

801
00:35:36.400 --> 00:35:38.840
<v Speaker 4>then are you thinking like Cyprus something like that basically?

802
00:35:39.239 --> 00:35:40.280
<v Speaker 5>Yeah, yeah, so.

803
00:35:40.679 --> 00:35:42.280
<v Speaker 3>What's Yeah, what's kind of cool is that?

804
00:35:42.400 --> 00:35:44.239
<v Speaker 4>And so this is part of part of the story

805
00:35:44.320 --> 00:35:47.400
<v Speaker 4>that we're making the path really smooth for this because

806
00:35:47.400 --> 00:35:49.400
<v Speaker 4>it's like that's it's a really good question, like unit

807
00:35:49.440 --> 00:35:51.920
<v Speaker 4>testers are he's like just runs in white container today

808
00:35:52.079 --> 00:35:54.440
<v Speaker 4>of course, like with no problem. But yeah, but yeah,

809
00:35:54.440 --> 00:35:56.559
<v Speaker 4>like end to end test. Uh, it's actually kind of

810
00:35:57.000 --> 00:35:59.559
<v Speaker 4>it's kind of cool because so they're in the sky.

811
00:35:59.679 --> 00:36:02.360
<v Speaker 4>I think names glab over At he was at Cyprus

812
00:36:02.440 --> 00:36:04.480
<v Speaker 4>when he was kind of digging into this. But because

813
00:36:04.559 --> 00:36:07.159
<v Speaker 4>like all Cypress really does, right, is it just remotely

814
00:36:07.239 --> 00:36:09.920
<v Speaker 4>controls the CROL instance, you know, to open a page

815
00:36:09.920 --> 00:36:11.880
<v Speaker 4>and like do a certain action, whatever have you. So

816
00:36:12.480 --> 00:36:14.920
<v Speaker 4>what's what's kind of interesting about that though, is that

817
00:36:15.039 --> 00:36:17.519
<v Speaker 4>if you can actually run the entire deb environment into browser,

818
00:36:18.280 --> 00:36:20.639
<v Speaker 4>then you can actually write end to end tests that

819
00:36:20.800 --> 00:36:23.639
<v Speaker 4>not only are testing the end website functionality, but when

820
00:36:23.639 --> 00:36:26.639
<v Speaker 4>you think of something like next JS that is again

821
00:36:26.760 --> 00:36:29.559
<v Speaker 4>blurring the line between server and front end, you can

822
00:36:29.599 --> 00:36:33.320
<v Speaker 4>actually use Cyprus to mock like like you know, intercept

823
00:36:33.400 --> 00:36:35.639
<v Speaker 4>EPI data that is going to be server side part

824
00:36:35.679 --> 00:36:38.280
<v Speaker 4>of next GAS and then run an end to end

825
00:36:38.280 --> 00:36:40.840
<v Speaker 4>test against the entire full stack environment.

826
00:36:40.960 --> 00:36:44.800
<v Speaker 3>Oh right, so this actually whoa, which is It blew

827
00:36:44.880 --> 00:36:46.639
<v Speaker 3>my mind because I'd never thought of that. When Leb

828
00:36:46.679 --> 00:36:49.320
<v Speaker 3>posts on Twitter, is like, holy heck, like that is ye.

829
00:36:50.960 --> 00:36:53.639
<v Speaker 4>Yeah, because that's kind of like that that was the moment,

830
00:36:53.880 --> 00:36:55.159
<v Speaker 4>you know, that was just one of those moments where

831
00:36:55.199 --> 00:36:56.360
<v Speaker 4>it was like and there was like a month after

832
00:36:56.400 --> 00:36:58.440
<v Speaker 4>you launched the thing he went posted that. I was like,

833
00:36:58.519 --> 00:37:01.960
<v Speaker 4>holy cow, Like that's actually incredible because how else would

834
00:37:02.000 --> 00:37:05.760
<v Speaker 4>you like in any sane way test out a server

835
00:37:05.920 --> 00:37:09.559
<v Speaker 4>side rendered application where you want to mock the data

836
00:37:09.719 --> 00:37:11.719
<v Speaker 4>and the database calls or whatever they're happening on the

837
00:37:11.800 --> 00:37:15.159
<v Speaker 4>back end side and get the same reproducible result. Right

838
00:37:15.400 --> 00:37:17.880
<v Speaker 4>right now, you can use cypress to do that effectively.

839
00:37:18.760 --> 00:37:20.840
<v Speaker 4>Now how that ties in with all this other stuff?

840
00:37:20.880 --> 00:37:22.400
<v Speaker 4>You know, I will kind of figure out, like how

841
00:37:22.519 --> 00:37:24.920
<v Speaker 4>is it super easy because we can't necessarily call out

842
00:37:24.960 --> 00:37:26.960
<v Speaker 4>to cypress and stacklets, but like we're working with their

843
00:37:27.039 --> 00:37:28.840
<v Speaker 4>team on like a way to where we could potentially

844
00:37:28.920 --> 00:37:31.400
<v Speaker 4>do that. But if you're actually running a locally or NCI,

845
00:37:31.800 --> 00:37:34.920
<v Speaker 4>it's actually like this actually lets you enables this kind

846
00:37:34.920 --> 00:37:38.079
<v Speaker 4>of crazy new capability that just wasn't possible before.

847
00:37:38.440 --> 00:37:40.840
<v Speaker 5>That is super cool. Yeah, it's almost like you have

848
00:37:40.960 --> 00:37:44.960
<v Speaker 5>to reconsider the mocking question altogether because right now there's

849
00:37:44.960 --> 00:37:47.519
<v Speaker 5>all sorts of U search this on Google. You can

850
00:37:47.559 --> 00:37:50.480
<v Speaker 5>find a million articles and best practices, But this gives

851
00:37:50.519 --> 00:37:53.440
<v Speaker 5>you like another realm of possibilities. So I almost feel

852
00:37:53.480 --> 00:37:56.440
<v Speaker 5>like it's a reckoning if this is in place that

853
00:37:56.639 --> 00:37:59.239
<v Speaker 5>you have to reconsider best practices and what you because

854
00:37:59.239 --> 00:38:01.000
<v Speaker 5>what you can do is changed, so now what you

855
00:38:01.039 --> 00:38:02.880
<v Speaker 5>should do has to change as well.

856
00:38:03.719 --> 00:38:04.719
<v Speaker 3>Yeah, yeah, exactly.

857
00:38:04.960 --> 00:38:07.480
<v Speaker 4>That's kind of like a whole new, whole new world

858
00:38:07.760 --> 00:38:10.440
<v Speaker 4>of like just kind of different like once you once

859
00:38:10.440 --> 00:38:12.119
<v Speaker 4>you're going to run the you know, all these environments

860
00:38:12.320 --> 00:38:14.920
<v Speaker 4>just inside of like the same tools that we're using

861
00:38:14.960 --> 00:38:16.519
<v Speaker 4>today to write end and tests. It's like kind of

862
00:38:16.559 --> 00:38:17.920
<v Speaker 4>like what does that mean and how does that allow

863
00:38:18.000 --> 00:38:19.599
<v Speaker 4>us to write more reliable software?

864
00:38:20.000 --> 00:38:20.159
<v Speaker 1>Right?

865
00:38:20.599 --> 00:38:22.000
<v Speaker 3>It's like I think I think we're just kind of

866
00:38:22.000 --> 00:38:23.719
<v Speaker 3>scratching the surface of some of the stuff that's going

867
00:38:23.800 --> 00:38:24.360
<v Speaker 3>to be possible.

868
00:38:24.559 --> 00:38:26.039
<v Speaker 6>So I think the next thing that people are going

869
00:38:26.119 --> 00:38:28.760
<v Speaker 6>to start asking you about is can you support typescript

870
00:38:29.480 --> 00:38:31.840
<v Speaker 6>and when are you coming out with the Python integration

871
00:38:32.039 --> 00:38:34.440
<v Speaker 6>so we can start writing Jango and flask aps.

872
00:38:37.400 --> 00:38:39.760
<v Speaker 4>Typeescript works, yeah, type script fully works, like and you

873
00:38:39.840 --> 00:38:41.960
<v Speaker 4>can you can use these things like ts node where

874
00:38:42.000 --> 00:38:43.679
<v Speaker 4>there's actually one that's kind of popped up reasoning called

875
00:38:43.679 --> 00:38:46.559
<v Speaker 4>typescript run and basically you know, you can actually override

876
00:38:46.599 --> 00:38:48.840
<v Speaker 4>the node run times to support typescript effectively, so like

877
00:38:48.880 --> 00:38:52.599
<v Speaker 4>anything you do on local for no Jazz based stuff

878
00:38:52.599 --> 00:38:54.400
<v Speaker 4>effectively will work there, yeah.

879
00:38:54.199 --> 00:38:55.320
<v Speaker 3>Regarding other languages.

880
00:38:55.400 --> 00:38:58.119
<v Speaker 4>So that's actually something that we're that's kind of the

881
00:38:58.280 --> 00:39:00.599
<v Speaker 4>after we solidify support in this in just the no

882
00:39:00.719 --> 00:39:03.239
<v Speaker 4>JS ecosystem, that's kind of where we're going next.

883
00:39:03.320 --> 00:39:06.079
<v Speaker 3>And we I think we'll actually have some stuff to

884
00:39:06.239 --> 00:39:07.800
<v Speaker 3>share by the end of the year.

885
00:39:07.920 --> 00:39:11.760
<v Speaker 4>Actually, we've been kind of digging into Python and Rust

886
00:39:11.840 --> 00:39:14.119
<v Speaker 4>and Ruby and things like that, so I think we'll

887
00:39:14.159 --> 00:39:17.440
<v Speaker 4>actually have some some concrete updates from that and that

888
00:39:17.519 --> 00:39:19.559
<v Speaker 4>are pretty cool, because yeah, I think this is the

889
00:39:19.639 --> 00:39:22.960
<v Speaker 4>idea year is it's like this could really work for any.

890
00:39:22.880 --> 00:39:24.800
<v Speaker 3>Language, not just like job script or not or.

891
00:39:25.639 --> 00:39:28.840
<v Speaker 5>How though, because isn't something like because a lot of

892
00:39:28.880 --> 00:39:32.960
<v Speaker 5>this is premise stuff being web based, right, because the

893
00:39:33.280 --> 00:39:36.719
<v Speaker 5>fact that the browser has certain infrastructure in here. So

894
00:39:36.840 --> 00:39:40.599
<v Speaker 5>I'm curious how other languages would play into this or

895
00:39:40.639 --> 00:39:42.880
<v Speaker 5>even be like theoretically possible.

896
00:39:43.360 --> 00:39:46.199
<v Speaker 4>Yeah, so this is this is the interesting stuff, Like,

897
00:39:46.280 --> 00:39:48.199
<v Speaker 4>this is the stuff that we're still shipping away ad

898
00:39:48.280 --> 00:39:51.280
<v Speaker 4>so we actually there's a group called the Bicode Alliance

899
00:39:51.440 --> 00:39:53.480
<v Speaker 4>that is it's a contortion of companies, and stack Puts

900
00:39:53.559 --> 00:39:56.719
<v Speaker 4>is actually one of the loving companies, whereas it's like Microsoft, Google,

901
00:39:56.920 --> 00:40:00.360
<v Speaker 4>Fastly Arm, et cetera. And so they're actual really the

902
00:40:00.760 --> 00:40:02.360
<v Speaker 4>kind of the point of this group is actually to

903
00:40:02.440 --> 00:40:05.239
<v Speaker 4>solve this problem. And one of the key things that

904
00:40:05.400 --> 00:40:08.239
<v Speaker 4>that's been put out from the Bicode Alliance is the

905
00:40:08.320 --> 00:40:10.559
<v Speaker 4>Web Assembly System interface. You might have seen this over

906
00:40:10.599 --> 00:40:14.840
<v Speaker 4>the past couple of years, but essentially it's a standardized

907
00:40:14.880 --> 00:40:18.760
<v Speaker 4>interface that lets you do system level calls in web assembly.

908
00:40:19.400 --> 00:40:21.280
<v Speaker 3>And that's really a lot of the problem when you kind.

909
00:40:21.119 --> 00:40:23.000
<v Speaker 4>Of look at porting these different tool chains to run

910
00:40:23.079 --> 00:40:25.440
<v Speaker 4>in web assembly is that they're they're using these native

911
00:40:25.440 --> 00:40:28.400
<v Speaker 4>API surfaces that are are real estately not going to

912
00:40:28.440 --> 00:40:30.840
<v Speaker 4>ever ship in a browser, nor should they. And also

913
00:40:30.920 --> 00:40:32.280
<v Speaker 4>part of the deal is like, we need to improve

914
00:40:32.320 --> 00:40:34.599
<v Speaker 4>the security of our software period because we're just we're

915
00:40:34.639 --> 00:40:37.840
<v Speaker 4>in a really bad situation right now where deb environments

916
00:40:37.880 --> 00:40:42.079
<v Speaker 4>are very easily exploitable and we've got to solve it right,

917
00:40:42.480 --> 00:40:44.400
<v Speaker 4>and so web assembly provides a way to do that,

918
00:40:45.039 --> 00:40:47.199
<v Speaker 4>but we also don't want to give up the security

919
00:40:47.239 --> 00:40:50.039
<v Speaker 4>benefits that provides. So web the loss of the interface

920
00:40:50.400 --> 00:40:52.960
<v Speaker 4>is actually really well designed to provide all those sorts

921
00:40:53.000 --> 00:40:55.880
<v Speaker 4>of things that you need for filesystem, networking, et cetera,

922
00:40:56.400 --> 00:40:58.199
<v Speaker 4>but actually in a way that's like a lot more

923
00:40:58.239 --> 00:41:00.400
<v Speaker 4>secure than how it currently works locally. So that's kind

924
00:41:00.400 --> 00:41:03.679
<v Speaker 4>of the current The current way that this is working

925
00:41:04.239 --> 00:41:06.639
<v Speaker 4>is that, and there might be other stuff that comes

926
00:41:06.679 --> 00:41:09.679
<v Speaker 4>along that kind of improves it, but that's you can

927
00:41:09.719 --> 00:41:13.719
<v Speaker 4>actually run a lot of languages today in in web assembly,

928
00:41:14.079 --> 00:41:18.360
<v Speaker 4>using LASSI as the primitive albeit without crazy support for

929
00:41:18.559 --> 00:41:20.079
<v Speaker 4>like Jango would be a good example of like you

930
00:41:20.079 --> 00:41:22.679
<v Speaker 4>could run Python US, but like Jangle requires and stuff

931
00:41:22.719 --> 00:41:25.039
<v Speaker 4>that might not necessarily be working yet. But that's actually

932
00:41:25.079 --> 00:41:26.880
<v Speaker 4>like kind of the long term plan. So we're working

933
00:41:26.920 --> 00:41:29.559
<v Speaker 4>with all those folks to kind of help build the

934
00:41:29.599 --> 00:41:30.480
<v Speaker 4>future of this thing out.

935
00:41:30.760 --> 00:41:33.079
<v Speaker 5>So speaking of that, I guess what are like the

936
00:41:33.599 --> 00:41:36.400
<v Speaker 5>short term plans? Right now? You have the beta flag

937
00:41:36.480 --> 00:41:39.719
<v Speaker 5>and web containers. When do you expect this to be

938
00:41:40.000 --> 00:41:43.000
<v Speaker 5>like production ready? Is this ready? If if your average

939
00:41:43.039 --> 00:41:45.320
<v Speaker 5>developer working for your average company is listening to this,

940
00:41:45.440 --> 00:41:48.119
<v Speaker 5>should they try it out? Are they ready to like

941
00:41:48.480 --> 00:41:50.960
<v Speaker 5>just tinker for now and wait for production? What would

942
00:41:51.000 --> 00:41:51.559
<v Speaker 5>you recommend?

943
00:41:52.039 --> 00:41:54.519
<v Speaker 3>I think for now, like, I think there's actually like well,

944
00:41:54.559 --> 00:41:57.559
<v Speaker 3>I think the using in production workloads we're shooting to

945
00:41:57.639 --> 00:41:58.480
<v Speaker 3>land by the end of the year.

946
00:41:58.519 --> 00:42:01.239
<v Speaker 4>Here, I think the interra what this is useful for

947
00:42:01.440 --> 00:42:06.039
<v Speaker 4>today is interactive documentation, so rapid learning. Right, we see

948
00:42:06.039 --> 00:42:09.000
<v Speaker 4>a lot of design systems actually use stack blits for

949
00:42:09.159 --> 00:42:12.199
<v Speaker 4>this purpose, like because Bub's getting anty grady, but effectively,

950
00:42:12.440 --> 00:42:14.320
<v Speaker 4>when you have a design system, your design system is

951
00:42:14.360 --> 00:42:16.800
<v Speaker 4>only as good as how how easy it is to adopt, right,

952
00:42:16.800 --> 00:42:19.760
<v Speaker 4>and so having interactive documentation makes that a lot easier.

953
00:42:20.239 --> 00:42:24.440
<v Speaker 4>Also for bug reproductions, having a live environment is super

954
00:42:24.559 --> 00:42:27.079
<v Speaker 4>useful for reprowing stuff, so we see a lot of that,

955
00:42:27.199 --> 00:42:29.719
<v Speaker 4>and of course just rapid prototyping. This is like kind

956
00:42:29.719 --> 00:42:31.559
<v Speaker 4>of like a codepen plus plus plus plus sort of

957
00:42:31.639 --> 00:42:34.360
<v Speaker 4>thing like that use case totally works today, and so

958
00:42:34.400 --> 00:42:37.280
<v Speaker 4>I think from those angles, right, I think that's that's

959
00:42:37.320 --> 00:42:39.079
<v Speaker 4>where we're seeing a lot of pickup from Like next

960
00:42:39.159 --> 00:42:41.920
<v Speaker 4>Gess is embedding this to their docks, Bite is using

961
00:42:41.960 --> 00:42:44.559
<v Speaker 4>this for their issue tracker, et cetera. I think that's

962
00:42:44.599 --> 00:42:46.679
<v Speaker 4>where people can really use this today, and that's actually

963
00:42:46.719 --> 00:42:49.880
<v Speaker 4>helping us solidify the core run time stability by actually

964
00:42:49.880 --> 00:42:52.679
<v Speaker 4>testing this across uh, you know, millions of different clients

965
00:42:52.719 --> 00:42:55.000
<v Speaker 4>and whatever have you. And then when the new stuff

966
00:42:55.039 --> 00:42:56.519
<v Speaker 4>comes out, I think you could go to like stack

967
00:42:56.559 --> 00:42:59.159
<v Speaker 4>with dot Com slash P two. I think that's url.

968
00:42:59.159 --> 00:43:01.280
<v Speaker 4>It's been a while since ide it out, but there's

969
00:43:01.320 --> 00:43:02.639
<v Speaker 4>like a form where you can kind of sign up

970
00:43:02.679 --> 00:43:04.920
<v Speaker 4>for the kind of the production grade workflows. We're gonna

971
00:43:04.920 --> 00:43:07.440
<v Speaker 4>be starting to open up an alpha of that within

972
00:43:07.519 --> 00:43:08.440
<v Speaker 4>I think the next couple.

973
00:43:08.280 --> 00:43:10.480
<v Speaker 5>Of months here that is the ero and we'll put

974
00:43:10.519 --> 00:43:10.920
<v Speaker 5>it in the show.

975
00:43:14.159 --> 00:43:15.760
<v Speaker 3>It's been a minute, so I was like, I'm pretty

976
00:43:15.840 --> 00:43:17.239
<v Speaker 3>sure that I hope that's I think.

977
00:43:17.159 --> 00:43:22.280
<v Speaker 5>That's also ts run. We should drop that in there.

978
00:43:22.320 --> 00:43:23.920
<v Speaker 2>And I was looking around and it's like, there's one

979
00:43:23.960 --> 00:43:26.480
<v Speaker 2>ts run that's got like eighty two downloads a month

980
00:43:26.599 --> 00:43:26.920
<v Speaker 2>or something.

981
00:43:26.960 --> 00:43:28.360
<v Speaker 5>I'm like, that's probably not it.

982
00:43:30.519 --> 00:43:33.480
<v Speaker 4>I don't think. I think there's a there's ts node.

983
00:43:33.559 --> 00:43:35.960
<v Speaker 4>Tsh node is like probably the most popular run. And

984
00:43:36.000 --> 00:43:38.199
<v Speaker 4>then I think there's typescript dash run. I think that's

985
00:43:38.280 --> 00:43:41.519
<v Speaker 4>the Okay, I think yeah, I think that the creator

986
00:43:41.639 --> 00:43:43.000
<v Speaker 4>I think tweeted about it the other day and now

987
00:43:43.039 --> 00:43:45.400
<v Speaker 4>it's cool USES that was actually gonna be my peck

988
00:43:45.559 --> 00:43:47.840
<v Speaker 4>is it usess Bill. It's kind of like what Dino

989
00:43:47.920 --> 00:43:49.599
<v Speaker 4>does with best w C where all the type script

990
00:43:49.599 --> 00:43:52.760
<v Speaker 4>files get stripped by w c is before they get evaluated.

991
00:43:53.320 --> 00:43:55.559
<v Speaker 4>It's like that for NOE, so I know by the

992
00:43:55.639 --> 00:43:57.280
<v Speaker 4>day it's kind of like, man, what's the value prop

993
00:43:57.360 --> 00:43:59.599
<v Speaker 4>of Dino? You know, because it's like you can just

994
00:43:59.639 --> 00:44:02.159
<v Speaker 4>kind of like I use something like that where it's

995
00:44:02.239 --> 00:44:04.800
<v Speaker 4>just okay, types provide a fault and it just pops

996
00:44:04.840 --> 00:44:06.360
<v Speaker 4>off the types and anyways.

997
00:44:06.840 --> 00:44:09.320
<v Speaker 3>But yeah, so I guess I just said my pick.

998
00:44:09.480 --> 00:44:09.800
<v Speaker 3>Darn it.

999
00:44:12.400 --> 00:44:16.079
<v Speaker 2>Well that's a great segue. Actually, hope we have another

1000
00:44:16.679 --> 00:44:21.280
<v Speaker 2>we can, So let's go to the week's picks.

1001
00:44:21.920 --> 00:44:24.519
<v Speaker 5>TJ. You want to start us off. Sure, I'm going

1002
00:44:24.599 --> 00:44:27.000
<v Speaker 5>to pick a podcast episode I listened to just the

1003
00:44:27.079 --> 00:44:30.000
<v Speaker 5>other day. It's podcast is called Decoder. It's run by

1004
00:44:30.039 --> 00:44:32.760
<v Speaker 5>the people at the Verge, and they did an episode

1005
00:44:32.800 --> 00:44:35.639
<v Speaker 5>and the global chip shortage, which is great because it

1006
00:44:35.760 --> 00:44:38.719
<v Speaker 5>was like like one oh two level explanation. They had

1007
00:44:38.800 --> 00:44:40.679
<v Speaker 5>on a professor that studies the thing that was really

1008
00:44:40.719 --> 00:44:43.360
<v Speaker 5>good at explaining it. So if you hear new stories

1009
00:44:43.360 --> 00:44:46.480
<v Speaker 5>of the global chip shortage and want to speak intelligently

1010
00:44:46.519 --> 00:44:49.960
<v Speaker 5>about it at dinner parties or whatever, right amongst amongst

1011
00:44:49.960 --> 00:44:51.880
<v Speaker 5>friends and such. I found it found it to be

1012
00:44:51.920 --> 00:44:54.960
<v Speaker 5>a really good just like primer on where chips come from,

1013
00:44:55.320 --> 00:44:57.400
<v Speaker 5>which is something I don't think about very often, like

1014
00:44:57.480 --> 00:45:00.639
<v Speaker 5>how do chips? You know, all the supply chain around it,

1015
00:45:00.840 --> 00:45:03.800
<v Speaker 5>and then what's the drama behind it? Why is there

1016
00:45:03.840 --> 00:45:06.199
<v Speaker 5>a backup? What's being done about it? So I find

1017
00:45:06.239 --> 00:45:08.079
<v Speaker 5>it interesting. So if you do too, it's like an

1018
00:45:08.119 --> 00:45:11.360
<v Speaker 5>hour long prime run it, so check it out. Sounds

1019
00:45:11.400 --> 00:45:12.519
<v Speaker 5>fascinating page.

1020
00:45:13.000 --> 00:45:15.119
<v Speaker 6>My pick today is going to be something that I'm

1021
00:45:15.159 --> 00:45:17.480
<v Speaker 6>actually using for the first time, and it is a

1022
00:45:18.039 --> 00:45:22.280
<v Speaker 6>new mic. I'm getting ready to record a course for

1023
00:45:22.400 --> 00:45:24.599
<v Speaker 6>a company called new Line that does all sorts of

1024
00:45:24.719 --> 00:45:28.239
<v Speaker 6>different web development courses, and one of the things that

1025
00:45:28.280 --> 00:45:30.719
<v Speaker 6>they highly recommend is to use something better than what

1026
00:45:30.880 --> 00:45:34.119
<v Speaker 6>is built into your computer or your AirPods. So the

1027
00:45:34.239 --> 00:45:37.880
<v Speaker 6>MIC that I would recommend is called the Algato Wave three.

1028
00:45:38.519 --> 00:45:41.239
<v Speaker 6>It is it's probably about one hundred and fifty maybe

1029
00:45:41.280 --> 00:45:44.079
<v Speaker 6>two hundred dollars US if you buy it brand new,

1030
00:45:44.199 --> 00:45:48.199
<v Speaker 6>but actually on Amazon they have refurbished ones that come

1031
00:45:48.280 --> 00:45:50.400
<v Speaker 6>into about one hundred and ten one hundred and twenty

1032
00:45:50.639 --> 00:45:53.760
<v Speaker 6>depending on and it So I got it. It looks

1033
00:45:53.840 --> 00:45:55.960
<v Speaker 6>like brand new. I have ninety days to try it

1034
00:45:56.039 --> 00:45:57.719
<v Speaker 6>out and take it back if I don't like it.

1035
00:45:57.920 --> 00:46:03.079
<v Speaker 6>But between this mic and the software that they provide

1036
00:46:03.360 --> 00:46:07.599
<v Speaker 6>to make it really sound great, it's been fantastic so far.

1037
00:46:08.119 --> 00:46:12.079
<v Speaker 6>So in addition to whatever they provide in terms of software,

1038
00:46:12.119 --> 00:46:14.400
<v Speaker 6>you can set up noise gates and noise suppressors so

1039
00:46:14.480 --> 00:46:17.400
<v Speaker 6>you don't hear the keyboard clicks and the mouse movements

1040
00:46:17.480 --> 00:46:20.880
<v Speaker 6>behind it. So I would definitely recommend it if you're

1041
00:46:20.960 --> 00:46:24.440
<v Speaker 6>looking for a good mic. That's a step above maybe

1042
00:46:24.519 --> 00:46:26.559
<v Speaker 6>the blue yetty nice.

1043
00:46:26.880 --> 00:46:30.119
<v Speaker 3>That's pretty cool, all right, Eric Gosh, Yeah, a tight

1044
00:46:30.199 --> 00:46:31.639
<v Speaker 3>script around. I'm just gonna say that again. I think

1045
00:46:31.639 --> 00:46:32.199
<v Speaker 3>it's pretty cool.

1046
00:46:33.719 --> 00:46:35.679
<v Speaker 4>The other thing I actually I checked into the other

1047
00:46:35.800 --> 00:46:38.159
<v Speaker 4>day is like we enabled support for bide and I've

1048
00:46:38.159 --> 00:46:40.000
<v Speaker 4>heard a lot of good things about it, and so

1049
00:46:40.039 --> 00:46:41.800
<v Speaker 4>I actually was like reading through the docks and one

1050
00:46:41.840 --> 00:46:44.719
<v Speaker 4>the docks of that invite are really good, but too

1051
00:46:44.800 --> 00:46:47.079
<v Speaker 4>it's like Bite is like I was, actually I played

1052
00:46:47.079 --> 00:46:50.320
<v Speaker 4>around with a lot and it's actually really really solid,

1053
00:46:50.400 --> 00:46:52.920
<v Speaker 4>Like I get why people like love Mike. It's actually

1054
00:46:53.599 --> 00:46:56.199
<v Speaker 4>really well engineered, well designed, super.

1055
00:46:56.039 --> 00:46:58.599
<v Speaker 3>Easy to use. So I think I think my pick

1056
00:46:58.679 --> 00:47:01.960
<v Speaker 3>will go go to Mike and TS or Typescript. Note

1057
00:47:02.039 --> 00:47:03.239
<v Speaker 3>those are my two picks.

1058
00:47:03.599 --> 00:47:03.840
<v Speaker 6>Yeah.

1059
00:47:04.039 --> 00:47:06.239
<v Speaker 2>I was just doing a video on Solid jas and

1060
00:47:06.280 --> 00:47:09.119
<v Speaker 2>their standard outfitting is with vite and it is just

1061
00:47:09.599 --> 00:47:12.559
<v Speaker 2>bleasingly fast. I mean Solid is fast on its own,

1062
00:47:12.599 --> 00:47:16.199
<v Speaker 2>but viight is amazing cool. Well, my pick for this

1063
00:47:16.280 --> 00:47:19.800
<v Speaker 2>week is west World. We've started watching West World again.

1064
00:47:19.880 --> 00:47:22.639
<v Speaker 2>My daughter's into it and that's been it's really good.

1065
00:47:22.639 --> 00:47:24.920
<v Speaker 2>The second time around actually see a lot more and

1066
00:47:25.000 --> 00:47:27.079
<v Speaker 2>get a lot more detail out of it. So yet again,

1067
00:47:27.320 --> 00:47:30.519
<v Speaker 2>HBO is doing excellent, excellent work. All right, well, thanks

1068
00:47:30.519 --> 00:47:33.039
<v Speaker 2>everybody for showing up, Thank you Eric for your time,

1069
00:47:33.119 --> 00:47:34.920
<v Speaker 2>and we'll see you on the next react around that

1070
00:47:35.159 --> 00:47:35.800
<v Speaker 2>awesome thank you.

1071
00:47:36.079 --> 00:47:36.679
<v Speaker 3>Have a good one.
