1
00:00:00,155 --> 00:00:01,035
Carl: Hello everyone.

2
00:00:01,035 --> 00:00:04,515
Thank you for joining us for the
July edition of this month in React,

3
00:00:04,515 --> 00:00:09,195
where we recap and digest all of the
latest news and developments in React.

4
00:00:09,285 --> 00:00:10,795
React Native, and across the web.

5
00:00:11,125 --> 00:00:13,915
We're coming to you live from
Reactive Flux, the place for

6
00:00:13,915 --> 00:00:15,355
professional developers using React.

7
00:00:16,095 --> 00:00:19,295
I am a staff product developer and
freelance community leader here in

8
00:00:19,295 --> 00:00:22,855
React Flux where I do community programs
like these events and build tools to

9
00:00:23,085 --> 00:00:24,815
help keep the community operating.

10
00:00:25,355 --> 00:00:27,255
May be making more
progress on one of those.

11
00:00:27,355 --> 00:00:31,975
So maybe I'll do a product announcement in
the next couple of weeks or months maybe.

12
00:00:32,394 --> 00:00:33,175
Mark: Hi, I'm Mark.

13
00:00:33,415 --> 00:00:34,335
I maintain Redux.

14
00:00:34,515 --> 00:00:37,855
My day job is at Replay where we've
built a time traveling debugger

15
00:00:37,855 --> 00:00:41,055
and are currently trying to get
in on the AI app generating craze.

16
00:00:41,745 --> 00:00:46,365
And other than that, I may moderate
things and read too many articles.

17
00:00:46,785 --> 00:00:47,605
Mo: My name is Mo.

18
00:00:47,885 --> 00:00:49,565
I head the mobile team at Theo.

19
00:00:50,065 --> 00:00:53,245
I'm an active member of the React
Native community and I organize

20
00:00:53,345 --> 00:00:56,405
the React Native London Meetup and
the React Native London Conference.

21
00:00:57,055 --> 00:00:57,905
Excited to be here.

22
00:00:58,420 --> 00:00:58,580
Carl: Excellent.

23
00:00:58,580 --> 00:00:58,740
Yeah.

24
00:00:58,740 --> 00:01:01,300
We missed you Last month there was
react native things to discuss.

25
00:01:01,560 --> 00:01:03,060
Mark: We had no idea what
we were talking about.

26
00:01:03,640 --> 00:01:04,379
Carl: Not even a little bit.

27
00:01:04,679 --> 00:01:06,020
We basically just punted on it.

28
00:01:06,030 --> 00:01:06,380
Great.

29
00:01:06,490 --> 00:01:06,780
Cool.

30
00:01:07,520 --> 00:01:08,860
I'm gonna skip job market stuff.

31
00:01:08,940 --> 00:01:09,980
I don't think I'm gonna do that anymore.

32
00:01:10,300 --> 00:01:11,980
'cause like who even
knows what's going on?

33
00:01:12,039 --> 00:01:15,321
The jobs are wild and the indicators are.

34
00:01:15,787 --> 00:01:17,527
Too fuzzy to really be
that useful, I think.

35
00:01:17,797 --> 00:01:20,217
Mo, tell us about some
React native new releases.

36
00:01:20,807 --> 00:01:21,097
Mo: Cool.

37
00:01:21,437 --> 00:01:27,137
So we recently had React Native
Reanimated version four being released.

38
00:01:27,277 --> 00:01:30,337
So for those of you who are sort
of avid React native developers,

39
00:01:30,337 --> 00:01:33,817
you'll know that React Reanimated
is sort of the defacto way.

40
00:01:34,467 --> 00:01:38,127
To be able to animate elements,
layouts and whatever you have inside

41
00:01:38,127 --> 00:01:39,887
of your React native applications.

42
00:01:40,107 --> 00:01:41,647
So the team's been hard at work.

43
00:01:41,967 --> 00:01:44,847
Animates has been around as a package
for, for several years now, and

44
00:01:44,847 --> 00:01:47,647
they've been iterating on it and
making it better and better over time.

45
00:01:47,797 --> 00:01:51,567
There's a general push that you'll
sort of know from the previous episodes

46
00:01:51,597 --> 00:01:56,367
over the last year or so towards
sort of unifying React native and

47
00:01:56,817 --> 00:01:58,487
react in the web as much as possible.

48
00:01:59,122 --> 00:02:03,262
And so CSS transitions and animations
are sort of becoming a key part of

49
00:02:03,862 --> 00:02:08,862
Reanimated as well, so that the APIs and
the way that you can animate things in

50
00:02:08,922 --> 00:02:11,502
Native world are as similar as possible.

51
00:02:11,812 --> 00:02:15,302
Obviously there's some limitations that
can't make it one-to-one, but as similar

52
00:02:15,362 --> 00:02:17,702
as possible between web and mobile.

53
00:02:18,282 --> 00:02:21,662
And one of the other things is now that
we're in this world where you could use

54
00:02:21,662 --> 00:02:25,782
React native on web and mobile, trying
to find a way to have performance.

55
00:02:26,442 --> 00:02:29,692
Web-based animations and transitions
is quite important as well.

56
00:02:29,692 --> 00:02:32,492
And Reanimated has been working on
this under the hood so that when

57
00:02:32,492 --> 00:02:36,532
you do use reanimated in your React
Native universal app, it actually

58
00:02:36,532 --> 00:02:40,692
has performant animations on the web
as well, not just on native devices.

59
00:02:41,232 --> 00:02:44,972
One of the challenges in the past
has been that it's not quite great

60
00:02:45,072 --> 00:02:48,652
on the web because it would use
JavaScript to orchestrate animations.

61
00:02:49,152 --> 00:02:52,212
Not really great, and really,
really bogs down the performance

62
00:02:52,212 --> 00:02:53,172
of your app on the web.

63
00:02:53,552 --> 00:02:54,732
So some good work being done there.

64
00:02:55,487 --> 00:02:59,847
A few other things to mention is that
Worklet is a part of Reanimated as well.

65
00:02:59,917 --> 00:03:04,447
It's, it's a way to basically allow some
level of multithreading in your apps.

66
00:03:04,707 --> 00:03:08,127
It kind of formed as a need of
reanimated itself, but they've

67
00:03:08,197 --> 00:03:10,847
made it sort of an open public
API that you can access for other

68
00:03:10,847 --> 00:03:12,327
multithreading needs that you may have.

69
00:03:12,867 --> 00:03:14,407
So they're trying to move that.

70
00:03:14,762 --> 00:03:19,582
Across into sort of a separate library and
start to separate that up because it's not

71
00:03:19,582 --> 00:03:21,582
just useful for reanimated or animations.

72
00:03:21,582 --> 00:03:25,182
It's useful for a whole bunch of other
stuff like background fetching and, and

73
00:03:25,182 --> 00:03:28,222
you know, computationally heavy tasks
that you need to run behind the scenes.

74
00:03:28,352 --> 00:03:31,622
Other things to mention is that
Reanimated used to be this huge package

75
00:03:31,882 --> 00:03:34,902
and once you had, you know, imported
one thing and Reanimated, everything

76
00:03:34,902 --> 00:03:38,182
was imported and so obviously that
affects things like your app bundle size.

77
00:03:38,372 --> 00:03:41,222
They've now took an approach to make
it modular so that you can import.

78
00:03:42,052 --> 00:03:44,112
And Bobs of Reanimated
rather than the whole thing.

79
00:03:44,262 --> 00:03:47,512
Obviously it's not just a JavaScript
sort of tree shaking thing that matters

80
00:03:47,542 --> 00:03:48,872
here because we're in Native World.

81
00:03:49,062 --> 00:03:52,912
There's also sort of the native
compiled code and you need to be

82
00:03:52,912 --> 00:03:54,112
able to modularize that as well.

83
00:03:54,252 --> 00:03:57,072
So it, it's not necessarily a
straightforward process for the

84
00:03:57,072 --> 00:03:57,872
team, and I appreciate that.

85
00:03:57,872 --> 00:04:01,192
It was probably quite complex to decouple
a lot of this code and separate it up

86
00:04:01,192 --> 00:04:04,352
into different packages, both on the
native layer and the JavaScript layer.

87
00:04:04,662 --> 00:04:05,592
Carl: What does that affect on a native.

88
00:04:05,957 --> 00:04:10,202
Package, I guess like app, total package
size, or does it affect like startup

89
00:04:10,202 --> 00:04:11,202
performance and things like that?

90
00:04:11,582 --> 00:04:12,802
Mo: It, it can affect both.

91
00:04:12,942 --> 00:04:17,082
Mainly the app total size that you would
need to download is, is a key thing.

92
00:04:17,582 --> 00:04:20,762
It can also affect, like you
say, the startup time, albeit

93
00:04:20,762 --> 00:04:22,802
startup time is largely sort of.

94
00:04:23,212 --> 00:04:27,982
Handled by Hermes, the engine that's been
created for React Native specifically

95
00:04:27,982 --> 00:04:32,142
because it, it sort of optimizes to,
to avoid large startup times as a

96
00:04:32,142 --> 00:04:33,382
result of having a big app bundle.

97
00:04:33,802 --> 00:04:36,502
But it's really mainly
the, the, the bundle size.

98
00:04:36,722 --> 00:04:40,262
And again, when we're going into this
sort of web and mobile world where

99
00:04:40,322 --> 00:04:43,662
you use the same packages across the
board, modularizing as well on the

100
00:04:43,662 --> 00:04:47,142
web, even though you'll have tree
shaking, is going to be good practice

101
00:04:47,142 --> 00:04:49,422
so that you're not importing a whole
bunch of stuff that you don't need.

102
00:04:49,922 --> 00:04:51,102
Lastly, and I, I think this is.

103
00:04:51,742 --> 00:04:54,107
Something that everyone is quite
passionate about in the React native

104
00:04:54,107 --> 00:04:57,907
ecosystem and has been a challenge
is shared element transitions.

105
00:04:58,527 --> 00:05:02,427
So shared element transitions is sort
of the transitions that you might be

106
00:05:02,587 --> 00:05:06,507
familiar with in the native world where
an element is is sort of present and

107
00:05:06,507 --> 00:05:08,187
is animated from one screen to another.

108
00:05:08,487 --> 00:05:11,227
So when you navigate from one
screen to another, there's

109
00:05:11,387 --> 00:05:12,307
this sort of shared element.

110
00:05:12,367 --> 00:05:15,187
So it might be like an image you
click on and you navigate to a sort

111
00:05:15,187 --> 00:05:16,707
of detailed view of that image.

112
00:05:17,007 --> 00:05:19,147
You have a navigation that
happens in the background.

113
00:05:19,787 --> 00:05:22,287
But you want to have these on separate
screens, but you wanna kinda keep

114
00:05:22,287 --> 00:05:26,087
that seamless expanding of the image
animation as an example or transition.

115
00:05:26,597 --> 00:05:28,367
This is very difficult
to do in React Native.

116
00:05:28,427 --> 00:05:31,407
You can kind of achieve it in some
hacky ways, but it's sort of on the

117
00:05:31,407 --> 00:05:32,527
app developers to figure it out.

118
00:05:32,527 --> 00:05:35,767
There's not been like a unified API that
you can use and it's usually quite hacky

119
00:05:35,767 --> 00:05:36,847
and doesn't work most of the times.

120
00:05:37,762 --> 00:05:38,892
They are working on this,

121
00:05:38,982 --> 00:05:41,772
Carl: would that be stuff like
flip animations, like first,

122
00:05:41,772 --> 00:05:43,332
last, interpolate, play?

123
00:05:43,352 --> 00:05:45,532
Mo: No, I don't think it
would be flip animations.

124
00:05:45,752 --> 00:05:48,932
The examples that I would give is, you
know, like in Instagram as an example,

125
00:05:48,952 --> 00:05:52,772
if you're on the, the search page and
you see a set of posts that are sort

126
00:05:52,772 --> 00:05:55,972
of laid out in a grid and you click
on one of those posts, it expands

127
00:05:55,972 --> 00:05:57,532
out and takes over the whole screen.

128
00:05:57,532 --> 00:05:57,812
Right.

129
00:05:58,162 --> 00:06:02,002
Carl: I meant more like would the hacky
interpret in the hacky implementation of.

130
00:06:02,445 --> 00:06:04,295
what should be a shared
element transition?

131
00:06:04,295 --> 00:06:07,055
Would that be, is that the kind of
thing somebody might use flip for?

132
00:06:08,025 --> 00:06:10,725
Mo: I'm not sure, I haven't actually
seen flip, but there are some

133
00:06:10,885 --> 00:06:13,765
approaches where people have been
sort of tapping into the native layer

134
00:06:13,785 --> 00:06:16,965
to be able to do that manually, but
it's not gonna be quite extensible

135
00:06:17,155 --> 00:06:20,325
putting some tags and then using the
native layer to do those transitions.

136
00:06:20,385 --> 00:06:24,005
So there's a few different approaches
that I've seen people do some sort

137
00:06:24,005 --> 00:06:27,325
of like third party libraries that
people have created as POCs more than

138
00:06:27,525 --> 00:06:29,085
anything is how I've seen it done.

139
00:06:29,625 --> 00:06:33,125
The, the, the gist of it is that there
isn't really like a. Standardized

140
00:06:33,285 --> 00:06:36,685
well-defined and like well tested
API to do this in React Native.

141
00:06:37,105 --> 00:06:39,845
And so that's what the Reanimated
team have been working on.

142
00:06:40,515 --> 00:06:43,925
It's not out yet, but they've said
that they're gonna be releasing it

143
00:06:43,925 --> 00:06:45,325
as part of this major release cycle.

144
00:06:45,465 --> 00:06:48,085
So four dot something will have.

145
00:06:48,895 --> 00:06:51,745
Some support for shared element
transition, still TBC, but keep

146
00:06:51,745 --> 00:06:52,665
your eyes open for that one.

147
00:06:52,975 --> 00:06:53,265
Mark: Cool.

148
00:06:53,625 --> 00:06:56,705
Honestly, that whole discussion reinforces
how many things people are doing that

149
00:06:56,705 --> 00:06:58,425
I have no experience with whatsoever.

150
00:06:58,815 --> 00:06:59,305
Carl: Love that.

151
00:06:59,375 --> 00:06:59,665
Yeah.

152
00:06:59,905 --> 00:07:03,305
I guess just to close the loop a little
bit on like flip animations, like it

153
00:07:03,305 --> 00:07:05,185
reminds me a lot of shared element here.

154
00:07:05,385 --> 00:07:08,825
'cause I guess like shared element
means that it doesn't like vanish.

155
00:07:09,085 --> 00:07:10,865
You know, it's one thing persists.

156
00:07:11,700 --> 00:07:13,070
From this state to that state.

157
00:07:13,090 --> 00:07:14,630
That's my general understanding of it.

158
00:07:14,690 --> 00:07:20,670
And how I had done that in 2017 was, so
you've got the current state, you've just

159
00:07:20,670 --> 00:07:25,830
rendered, you have something up and then
you re-render and you get the new state.

160
00:07:26,625 --> 00:07:31,555
Then you have some abstraction that cracks
the old state after the new state shows

161
00:07:31,575 --> 00:07:36,755
up and says, okay, this element is tagged
with this animation, you know, indicator.

162
00:07:37,255 --> 00:07:40,675
And that indicator has now gone
to this element in this new state.

163
00:07:41,095 --> 00:07:41,915
It used to be here.

164
00:07:42,135 --> 00:07:42,795
Now it's here.

165
00:07:42,925 --> 00:07:47,235
Let's measure it triple eight, you
know, the old size versus the new size.

166
00:07:47,375 --> 00:07:51,835
And then do Aran smooth transition, you
know, generate a CSS animation to make

167
00:07:51,835 --> 00:07:53,595
it look like it's the same element.

168
00:07:54,335 --> 00:07:57,225
Mo: Yeah, it gets a little bit more
complicated in the native world

169
00:07:57,225 --> 00:08:02,265
because these are different sort of
screens that are different view nodes

170
00:08:02,265 --> 00:08:05,265
on the native layer, you'd need to
have a little bit more control over

171
00:08:05,325 --> 00:08:07,745
how you do that on the native layer,
the native layer might override it.

172
00:08:07,745 --> 00:08:10,745
If you write that JavaScript logic as
an example, it definitely needed some

173
00:08:10,745 --> 00:08:13,025
native components to be able to handle it.

174
00:08:13,355 --> 00:08:16,065
Under the hood, the algorithm and the
native layer will do something very

175
00:08:16,065 --> 00:08:19,865
similar, which is first screen, screen
A has this size for this element.

176
00:08:20,445 --> 00:08:21,770
Screen B has this size.

177
00:08:22,020 --> 00:08:24,890
Let's look at the positions and
interpolate the values and the, the

178
00:08:24,890 --> 00:08:28,450
zoom of it to match the target size
as we're migrate, as we're opening

179
00:08:28,450 --> 00:08:29,650
up the new screen as an example.

180
00:08:29,780 --> 00:08:30,130
Carl: Right.

181
00:08:30,270 --> 00:08:30,850
Oh, interesting.

182
00:08:30,850 --> 00:08:31,090
Okay.

183
00:08:31,090 --> 00:08:31,330
Sure.

184
00:08:31,470 --> 00:08:35,090
On native, there are things already
doing that for you, so you don't

185
00:08:35,090 --> 00:08:36,410
need to hack into the, into that.

186
00:08:36,410 --> 00:08:37,650
You just need to actually support it.

187
00:08:37,760 --> 00:08:38,050
Cool.

188
00:08:38,060 --> 00:08:38,530
Makes sense.

189
00:08:38,920 --> 00:08:39,210
Okay.

190
00:08:40,180 --> 00:08:40,580
Mark: Probably just as well.

191
00:08:40,580 --> 00:08:43,540
We really didn't have all that many
new items and new release items

192
00:08:43,570 --> 00:08:45,860
this month, given that we just
sort of deep dived on that one.

193
00:08:46,320 --> 00:08:50,060
So one other thing from the React Native
world, the Infinite Red has a very

194
00:08:50,060 --> 00:08:54,780
long running boilerplate toolkit called
Ignite, and they just put out version 11.

195
00:08:55,200 --> 00:08:56,820
The big news for this one is it.

196
00:08:57,470 --> 00:08:58,880
Only sports, the new architecture.

197
00:08:59,070 --> 00:09:03,680
It's been bumped to E Expo, SDK
53, some changes to the theme

198
00:09:03,680 --> 00:09:06,800
implementation and they've made it
bring your own state management.

199
00:09:06,830 --> 00:09:11,080
They used to default to MobX State
Tree and now they've tweaked it.

200
00:09:11,100 --> 00:09:13,800
So you can pick and choose
how you want your state to be

201
00:09:13,800 --> 00:09:14,800
handled within the new app.

202
00:09:14,830 --> 00:09:18,200
Mo: There's a little bit of context
here, which is that the maintainers of

203
00:09:18,200 --> 00:09:22,840
this library, infinite Red, have been
very opinionated on Malbecs being the

204
00:09:22,840 --> 00:09:24,680
best sort of tool for React Native.

205
00:09:25,270 --> 00:09:26,620
State management there.

206
00:09:26,620 --> 00:09:28,500
There's some some reasons behind that.

207
00:09:28,610 --> 00:09:33,100
Like Mob State Tree is quite good in
terms of sort of heavy memorization

208
00:09:33,360 --> 00:09:36,980
and that can really affect performance
if you don't have stuff like that and

209
00:09:36,980 --> 00:09:38,100
React native or you're not careful.

210
00:09:38,600 --> 00:09:41,060
So I think they were trying to set
some practices that they were used to.

211
00:09:41,600 --> 00:09:45,580
Mark: And also I believe Jamon from
Infinite Red was the maintainer of

212
00:09:45,730 --> 00:09:49,420
MobX State Tree for a number of years,
and he either still is or recently

213
00:09:49,420 --> 00:09:50,860
handed it off to somebody I think.

214
00:09:51,500 --> 00:09:53,770
Mo: Might be that he was
maintaining it to some degree.

215
00:09:53,770 --> 00:09:54,010
Yeah.

216
00:09:54,270 --> 00:09:56,450
Mark: So I mean there was, there was a
very understandable preference there.

217
00:09:56,590 --> 00:09:59,410
Mo: So the main maintainer of MobX
and MobX State Tree as far as I'm

218
00:09:59,410 --> 00:10:00,930
aware is Michelle West Streett.

219
00:10:00,930 --> 00:10:02,210
From WHO, who works at Meta,

220
00:10:02,770 --> 00:10:05,170
Mark: I think Michelle handed
off MobX State Tree to into

221
00:10:05,180 --> 00:10:06,210
Jamon a number of years ago.

222
00:10:06,240 --> 00:10:06,850
Okay, cool.

223
00:10:07,150 --> 00:10:08,330
Didn't know about that really.

224
00:10:08,330 --> 00:10:08,730
That's fair enough.

225
00:10:08,750 --> 00:10:09,290
Carl: Oh, interesting.

226
00:10:10,120 --> 00:10:10,560
I didn't know that

227
00:10:10,940 --> 00:10:12,400
Mark: he spiked MobX State Tree.

228
00:10:12,860 --> 00:10:15,360
And then it's like, okay, I've,
I've proven I can build this,

229
00:10:15,360 --> 00:10:17,560
but I don't have time to maintain
it would someone else like to?

230
00:10:17,790 --> 00:10:18,080
Cool.

231
00:10:18,390 --> 00:10:20,760
Onto the main content for today?

232
00:10:21,060 --> 00:10:25,440
The big news this month is that the
React team has written completely

233
00:10:25,650 --> 00:10:27,680
brand new docs for the React compiler.

234
00:10:28,700 --> 00:10:32,080
Not only did they put them up as
a PR this month, that PR has been

235
00:10:32,080 --> 00:10:34,320
merged and the new docs are now live.

236
00:10:35,080 --> 00:10:39,440
Previously there was just a single page
under the installation setup section

237
00:10:39,860 --> 00:10:45,680
of the React Docs that gave some amount
of details, and now the React compiler

238
00:10:45,680 --> 00:10:51,440
has its own top level section with
multiple pages under both the learn and

239
00:10:51,800 --> 00:10:54,160
reference sections of the React docs.

240
00:10:54,250 --> 00:10:55,960
These sections cover a lot of things.

241
00:10:56,970 --> 00:10:58,100
What is the compiler?

242
00:10:58,330 --> 00:10:59,100
What does it do?

243
00:10:59,480 --> 00:11:00,220
How does it work?

244
00:11:00,880 --> 00:11:02,100
Should I try it out?

245
00:11:02,690 --> 00:11:03,980
What build tools do it?

246
00:11:04,090 --> 00:11:04,860
Does it work with?

247
00:11:04,920 --> 00:11:06,020
How do I install it?

248
00:11:06,480 --> 00:11:09,580
How can I incrementally
adopt the compiler?

249
00:11:09,960 --> 00:11:13,300
As well as some reference section
information, talking about configuring

250
00:11:13,300 --> 00:11:16,140
it and some of the concepts it includes.

251
00:11:16,560 --> 00:11:20,300
And even like if I'm a library author,
should I pre-compiled my library

252
00:11:20,320 --> 00:11:22,260
bundle to make use of the compiler?

253
00:11:22,860 --> 00:11:25,920
So it's very clear that they've been
looking at some of the discussion

254
00:11:25,920 --> 00:11:30,000
threads where people have complained
that, you know, it doesn't feel

255
00:11:30,000 --> 00:11:31,600
like it's ready for adoption yet.

256
00:11:31,720 --> 00:11:34,440
I don't know if it, you know, I
don't know how to configure it.

257
00:11:34,860 --> 00:11:37,800
And they've taken a lot of that
to heart and put together some

258
00:11:37,800 --> 00:11:41,680
pretty good docs to try to actually
address a lot of those points.

259
00:11:42,540 --> 00:11:47,600
We noted that the, if you look at
the expo docs, there is currently a

260
00:11:47,600 --> 00:11:52,320
section that says that their integration
with the React compiler is on hold,

261
00:11:53,060 --> 00:11:57,120
but that may be superseded because
I saw a tweet from Evan Bacon just

262
00:11:57,120 --> 00:12:02,000
earlier today where he said that we
are actually going to enable the React

263
00:12:02,000 --> 00:12:05,520
compiler by default in Expo version 54.

264
00:12:05,940 --> 00:12:10,480
And along with that, the compiler docs
themselves in the introduction section.

265
00:12:11,585 --> 00:12:16,385
Actually say like, should I try
the compiler and is it safe to use?

266
00:12:16,845 --> 00:12:20,665
And they specifically say at this point,
we encourage everyone to start using it.

267
00:12:21,055 --> 00:12:24,385
It's still optional, but
it's in release candidate.

268
00:12:24,445 --> 00:12:25,385
It is safe to use.

269
00:12:25,415 --> 00:12:28,545
It's been tested in production
and we really would like

270
00:12:28,545 --> 00:12:30,025
people to actually try it out.

271
00:12:30,565 --> 00:12:31,145
Of course they do.

272
00:12:31,325 --> 00:12:31,705
Oh yeah.

273
00:12:31,805 --> 00:12:36,225
But I mean it's, it's a pretty big vote of
confidence that this is not just a whim.

274
00:12:36,865 --> 00:12:40,515
That it is something they're very serious
about, that it is basically ready for

275
00:12:40,515 --> 00:12:43,835
release and that they would like to
see the ecosystem start adopting it.

276
00:12:43,985 --> 00:12:44,875
Carl: Yeah, makes sense.

277
00:12:45,595 --> 00:12:51,475
I am not super thrilled about seeing more
function directives being introduced here.

278
00:12:51,585 --> 00:12:56,195
Like I'm on record for like the past
two years here, being frustrated with

279
00:12:56,675 --> 00:13:00,995
introducing more and more directives,
and so seeing now basically a compiler

280
00:13:01,065 --> 00:13:03,475
flag for memorize or don't memorize this.

281
00:13:04,480 --> 00:13:06,780
As the, uh, incremental adoption method.

282
00:13:07,340 --> 00:13:08,060
I just don't like it.

283
00:13:08,290 --> 00:13:09,500
It's, it feels like magic.

284
00:13:09,600 --> 00:13:10,420
It feels gross.

285
00:13:10,740 --> 00:13:11,220
I don't like it.

286
00:13:11,300 --> 00:13:12,180
I don't like directives.

287
00:13:12,490 --> 00:13:13,540
They scare me.

288
00:13:13,680 --> 00:13:15,340
Mark: Couple other compiler bits of news.

289
00:13:15,430 --> 00:13:19,860
There was some discussion on Twitter,
I believe, where Joseph from the

290
00:13:19,860 --> 00:13:24,580
React compiler team gave a little bit
of background on who had worked on

291
00:13:24,580 --> 00:13:28,660
the compiler, some of the timelines
and some of the influences, and then

292
00:13:28,800 --> 00:13:32,580
the compiler right now has a couple
limitations in terms of tool support.

293
00:13:33,470 --> 00:13:40,570
One is that while the 90% of the compiler
code is its own independent true compiler,

294
00:13:41,040 --> 00:13:45,730
currently the only way to integrate
with that and actually use it is via

295
00:13:46,010 --> 00:13:50,250
a babble plugin shell around it, which
also means you have to have babble.

296
00:13:50,970 --> 00:13:54,070
In your build pipeline, and a lot
of people are not happy about that.

297
00:13:54,370 --> 00:13:55,390
We got rid of babble.

298
00:13:55,410 --> 00:14:00,750
We use, we use SWC, we use, you know,
whatever other, you know, ES build

299
00:14:00,750 --> 00:14:02,350
something that's not babble anymore.

300
00:14:02,770 --> 00:14:06,230
And so there's been lots of questions
about, you know, when will they get around

301
00:14:06,610 --> 00:14:09,310
to offering a non babble integration?

302
00:14:09,890 --> 00:14:11,630
No timeline on that yet.

303
00:14:12,570 --> 00:14:17,190
But as a related part of that,
the lint rules that React

304
00:14:17,190 --> 00:14:19,270
offers are also ES lint based.

305
00:14:19,980 --> 00:14:24,200
And we now have other winters like
biome and oxalate that are not

306
00:14:24,640 --> 00:14:26,280
ES lint and not esent compatible.

307
00:14:26,700 --> 00:14:30,720
So there was a pretty good thread
between the React compiler team and

308
00:14:30,720 --> 00:14:35,400
the oxalate team talking about like
what would it take to make React

309
00:14:35,520 --> 00:14:38,200
compiler and the React ES lint rules.

310
00:14:39,110 --> 00:14:43,190
Runnable inside oxalate, and there's
a bunch of low level technical details

311
00:14:43,240 --> 00:14:47,390
about, you know, js rust interop
and, and some of the complexities

312
00:14:47,390 --> 00:14:48,230
that might be needed there.

313
00:14:48,570 --> 00:14:53,190
So the answer is probably not anytime
soon, but there's discussions about

314
00:14:53,190 --> 00:14:54,390
what it might take to make that happen.

315
00:14:55,185 --> 00:14:59,115
Carl: Yeah, and circling back to your,
you know, good thread with like some

316
00:14:59,515 --> 00:15:03,875
timeline and influences and whatever
frustration I have, this is like such

317
00:15:03,955 --> 00:15:08,795
a, this is exactly the same problem that
React and I guess web and like development

318
00:15:08,795 --> 00:15:09,915
in general has had for a long time.

319
00:15:09,975 --> 00:15:12,515
But like all of that happened
on Twitter and like that's great

320
00:15:12,665 --> 00:15:14,435
knowledge and such good resource.

321
00:15:15,290 --> 00:15:18,830
But the guy who asked the question
asked it on his private alt.

322
00:15:18,930 --> 00:15:23,030
So like, if you are not one of
the, you know, 1100 approved people

323
00:15:23,100 --> 00:15:26,670
that he has granted access to see
his thoughts, you can't see what

324
00:15:26,670 --> 00:15:27,830
was asked, just the response.

325
00:15:28,170 --> 00:15:29,230
So at least you can see the response.

326
00:15:29,230 --> 00:15:29,670
That's nice.

327
00:15:29,670 --> 00:15:32,710
But I wish they'd put something
like this in like, I don't know, an

328
00:15:32,710 --> 00:15:34,310
introspective blog post or whatever.

329
00:15:34,770 --> 00:15:34,990
So.

330
00:15:35,910 --> 00:15:38,650
I'm just gonna keep shouting at clouds
throughout this episode, I think.

331
00:15:39,040 --> 00:15:39,330
Cool.

332
00:15:39,480 --> 00:15:39,770
Cool.

333
00:15:39,770 --> 00:15:40,530
Let's move on though,

334
00:15:40,720 --> 00:15:41,810
Mark: even before we get there.

335
00:15:41,890 --> 00:15:44,330
I found the article I was looking
for, it was indeed in Tech

336
00:15:44,420 --> 00:15:45,490
reads the news a few weeks ago.

337
00:15:45,800 --> 00:15:52,370
This was in linking a post on directives,
prologues and JS Dark Matter, which

338
00:15:52,370 --> 00:15:57,090
was an archeological explanation
of how things like JSX, pragmas and

339
00:15:57,450 --> 00:15:59,010
function directives and magic comments.

340
00:15:59,625 --> 00:16:04,035
Have all been used to indicate to build
tools, Hey, do something different with

341
00:16:04,035 --> 00:16:05,555
this code than what you would expect.

342
00:16:05,555 --> 00:16:06,315
Just reading it.

343
00:16:06,425 --> 00:16:06,875
Carl: Love that.

344
00:16:06,875 --> 00:16:07,715
That is actually really good.

345
00:16:07,975 --> 00:16:12,195
And like basically this is all
just communicating with different

346
00:16:12,195 --> 00:16:16,035
levels of abstraction between
like runtime and source code.

347
00:16:16,055 --> 00:16:21,355
So it's like, I don't know, the linter
or the formatter or the, I don't know.

348
00:16:21,435 --> 00:16:24,155
I guess you don't really do tests so
much there, you just do it elsewhere.

349
00:16:24,655 --> 00:16:28,765
But the compiler, or  transpiler
compiler is now a fuzzy, overloaded

350
00:16:28,765 --> 00:16:32,205
term, and I guess they all make
sense for one reason or another, but

351
00:16:32,235 --> 00:16:35,685
something about directives and the
way that they like persist through.

352
00:16:36,165 --> 00:16:38,925
I prefer a magic comment, like at
least a magic comment is like very

353
00:16:38,925 --> 00:16:41,405
clearly something like not runtime.

354
00:16:41,925 --> 00:16:43,605
I don't know, something
about it feels wrong.

355
00:16:44,185 --> 00:16:44,405
The

356
00:16:44,405 --> 00:16:46,805
Mark: fact that a directive is
just a string hanging out there.

357
00:16:47,400 --> 00:16:47,720
Carl: I dunno.

358
00:16:47,720 --> 00:16:48,200
It seems weird.

359
00:16:48,380 --> 00:16:50,680
And since it is just a string,
like why not a magic comment?

360
00:16:50,820 --> 00:16:51,840
Ah, I don't know.

361
00:16:51,840 --> 00:16:56,240
Maybe there was some kind of weird
esoteric, like the compiler, you

362
00:16:56,240 --> 00:17:00,680
know, the, all the various compilers
and whatever, transpilers, and ASTs

363
00:17:01,240 --> 00:17:04,880
transformers are all like, maybe they
muck with comments and whatever, but

364
00:17:04,880 --> 00:17:08,760
also like the compiler requires that
you put it first in your Babel so it

365
00:17:08,760 --> 00:17:12,885
gets the untransformed code anyway,
so that doesn't sound right to me.

366
00:17:13,005 --> 00:17:13,405
I don't know.

367
00:17:13,735 --> 00:17:14,965
Weird doesn't seem necessary.

368
00:17:15,325 --> 00:17:19,445
I guess the root of my angst here is that
like when they introduced the "use strict"

369
00:17:19,445 --> 00:17:24,045
directive, like when they introduced
the concept of a directive, they

370
00:17:24,045 --> 00:17:25,565
said, we're never gonna do this again.

371
00:17:25,565 --> 00:17:26,405
Like, don't do this.

372
00:17:26,405 --> 00:17:27,045
This is bad.

373
00:17:27,105 --> 00:17:30,445
We should, we shouldn't have had to do
this, but we did because weird legacy

374
00:17:30,485 --> 00:17:32,405
concerns don't do any more of these.

375
00:17:32,665 --> 00:17:34,925
Mark: And then the community
decided, okay, now we got a

376
00:17:34,925 --> 00:17:35,965
new mechanism to play with.

377
00:17:36,105 --> 00:17:38,085
Carl: We got like, how many
do we have for React now?

378
00:17:38,085 --> 00:17:38,205
Like.

379
00:17:38,720 --> 00:17:40,200
I can think of four
off the top of my head.

380
00:17:40,500 --> 00:17:42,040
Mark: Client server memo.

381
00:17:42,380 --> 00:17:42,840
No memo.

382
00:17:43,460 --> 00:17:43,680
Carl: Yep.

383
00:17:44,030 --> 00:17:44,320
Okay.

384
00:17:44,320 --> 00:17:45,880
Maybe four, but like, come on.

385
00:17:45,880 --> 00:17:48,040
That's 400% increase from one.

386
00:17:48,310 --> 00:17:48,760
Come on.

387
00:17:49,020 --> 00:17:52,320
Mo: Now you can have two at the top of
one file, which is gonna look weird.

388
00:17:52,830 --> 00:17:54,240
It's gonna take some time
getting used to that one.

389
00:17:54,270 --> 00:17:54,560
Wait,

390
00:17:54,560 --> 00:17:56,120
Carl: can those even, are
the, is that even compatible?

391
00:17:56,320 --> 00:17:58,320
'cause it's gotta be, the
directive has to be the first line.

392
00:17:58,840 --> 00:17:58,960
I

393
00:17:58,960 --> 00:18:00,000
Mo: don't know how that would even work.

394
00:18:00,420 --> 00:18:01,360
Moving right along.

395
00:18:01,390 --> 00:18:03,920
Alright, so back into React Native World.

396
00:18:04,260 --> 00:18:09,610
The folks at call Stack have been
working on some other projects under

397
00:18:09,670 --> 00:18:12,970
the, under the smoke screens, and it's
some cool stuff that they've released.

398
00:18:12,970 --> 00:18:16,450
They've basically enabled Node API
support at a very basic, primitive level.

399
00:18:16,520 --> 00:18:18,290
They're, they're working,
still working on this.

400
00:18:18,480 --> 00:18:20,050
They've made some good headway with this.

401
00:18:20,975 --> 00:18:23,395
So they're bringing Node API
support into React native.

402
00:18:23,655 --> 00:18:28,195
Now, not to be confused with node
itself, node API is basically like a

403
00:18:28,195 --> 00:18:35,635
mechanism by node js that allows you to
use C based languages to interact from

404
00:18:35,635 --> 00:18:37,475
JavaScript code to call native code.

405
00:18:38,055 --> 00:18:41,635
And so you can write native
add-ons in CC plus plus.

406
00:18:42,335 --> 00:18:43,545
Even rust or swift.

407
00:18:43,925 --> 00:18:47,065
And then they can be used and
ingested by JavaScript applications.

408
00:18:47,565 --> 00:18:50,065
So there's a few reasons for doing
this and it, it really goes more

409
00:18:50,065 --> 00:18:51,545
into the internals of React Native.

410
00:18:51,685 --> 00:18:56,385
And you know what this means for library
maintainers, for built tool maintainers,

411
00:18:56,405 --> 00:18:58,705
and for really meta itself as well.

412
00:18:59,125 --> 00:19:01,825
But the two key things
here is faster build times.

413
00:19:02,580 --> 00:19:06,760
And closer convergence with native
web libraries that may already exist

414
00:19:06,760 --> 00:19:09,200
and be using the node API mechanism.

415
00:19:09,420 --> 00:19:13,200
So at a first level build times, and
I think this is the bit that will

416
00:19:13,200 --> 00:19:15,720
affect users more than anyone else is.

417
00:19:16,575 --> 00:19:19,980
Basically in the rate of world
today, most native modules are

418
00:19:20,300 --> 00:19:21,580
actually distributed a source.

419
00:19:22,080 --> 00:19:26,140
So every time you make a build, you
actually have to compile it all and do

420
00:19:26,140 --> 00:19:28,140
the build step, which is quite long.

421
00:19:28,540 --> 00:19:33,340
Building a typical rec native app
somewhere around 10 to, if you've got

422
00:19:33,380 --> 00:19:36,620
a massive scale app, it could takes
several tens of minutes to actually

423
00:19:36,620 --> 00:19:37,980
do the full build of the app, right?

424
00:19:38,400 --> 00:19:40,540
But it's a long, long time now.

425
00:19:41,330 --> 00:19:44,430
You don't need to do this for like
your development workflow typically,

426
00:19:44,810 --> 00:19:48,830
or that often, because you wouldn't
change native dependencies every day.

427
00:19:49,210 --> 00:19:51,470
You would just do this when there's
a new native dependency that's

428
00:19:51,470 --> 00:19:53,710
been introduced, but it's still
a significant amount of time.

429
00:19:53,710 --> 00:19:53,990
Right?

430
00:19:54,410 --> 00:19:58,550
And so the idea is if we can
get some of these prebuilt.

431
00:19:59,280 --> 00:20:03,630
Using a mechanism like the node
APIs, then we can bring this

432
00:20:03,630 --> 00:20:04,790
time down quite significantly.

433
00:20:05,490 --> 00:20:09,030
And so one of the things that
they ran as a test was for a basic

434
00:20:09,100 --> 00:20:12,670
sort of React Native core app
that you know is just having the

435
00:20:12,670 --> 00:20:13,830
basics of React native within it.

436
00:20:13,980 --> 00:20:15,310
They think that they could bring down.

437
00:20:16,030 --> 00:20:19,850
The build time to close to seven
seconds, which would be insanely fast

438
00:20:19,950 --> 00:20:21,250
in comparison to what it's today.

439
00:20:21,590 --> 00:20:25,010
So this could be some really cool stuff
that's down that's coming down the line.

440
00:20:25,470 --> 00:20:29,690
The other side is that there is already
an ecosystem of node API compatible

441
00:20:30,000 --> 00:20:35,090
sort of applications and run times,
and so, so many sort of libraries.

442
00:20:36,060 --> 00:20:39,640
Web API libraries like Web
RTC or Web Audio Canvas.

443
00:20:39,930 --> 00:20:41,800
These are implemented with node API.

444
00:20:42,300 --> 00:20:47,200
Now, they're not going to be direct
one-to-one mappings for native, but

445
00:20:47,410 --> 00:20:51,960
there is already an initiative to try
to, to try to align on the web API spec.

446
00:20:52,380 --> 00:20:54,840
And so this is sort of
another part of that puzzle.

447
00:20:55,420 --> 00:20:59,040
And so if you bring these two together,
suddenly we can use sort of web APIs

448
00:20:59,040 --> 00:21:02,400
and React native, and it could be a
really, really cool future to look into.

449
00:21:02,750 --> 00:21:03,400
None of this is.

450
00:21:03,965 --> 00:21:07,170
None of this is sort of like fully
there, and there's gonna be, this

451
00:21:07,170 --> 00:21:09,930
is a long term effort, but it's
something that they announced this

452
00:21:09,930 --> 00:21:10,930
month, and it's quite exciting.

453
00:21:11,280 --> 00:21:16,330
Carl: I've had enough struggles with
native binaries on desktop where they're,

454
00:21:16,330 --> 00:21:20,210
you know, like intended to be compiled
for just like, like mostly across,

455
00:21:20,210 --> 00:21:24,930
like upgrading, upgrading a version
of that, or node versions or whatever.

456
00:21:25,390 --> 00:21:29,410
But I, I've had enough struggles
and complications there to be wary.

457
00:21:30,020 --> 00:21:33,600
Of what the actual experience
of using this will look like.

458
00:21:33,900 --> 00:21:35,480
But this is, this is really cool.

459
00:21:35,630 --> 00:21:39,520
This just even having made enough
progress at this to announce it and

460
00:21:39,520 --> 00:21:43,440
like meaningfully talk about it as
a thing they desire is pretty cool.

461
00:21:43,630 --> 00:21:45,560
Very hard, really hard problem.

462
00:21:45,700 --> 00:21:46,960
I'm curious how they're implementing it.

463
00:21:48,105 --> 00:21:49,155
Mo: It's definitely not trivial.

464
00:21:49,425 --> 00:21:49,715
Carl: Cool.

465
00:21:49,825 --> 00:21:51,355
Alright, moving on a bit.

466
00:21:51,695 --> 00:21:57,635
So there's been a bunch of Vercel things
this week, a fair number of departures.

467
00:21:58,215 --> 00:22:01,315
I'm sure people are coming and going
all the time and we just, you know, we

468
00:22:01,315 --> 00:22:02,715
can't get a comprehensive list of that.

469
00:22:02,735 --> 00:22:06,955
But they, they had a couple of relatively
high profile departures in the last

470
00:22:06,955 --> 00:22:11,795
month, starting with the most notable
Lee Robinson, who has been there for.

471
00:22:12,430 --> 00:22:14,080
Five years, a long time.

472
00:22:14,540 --> 00:22:15,520
Was he there before COVID?

473
00:22:15,980 --> 00:22:16,920
Mark: Not sure on the timeline.

474
00:22:16,950 --> 00:22:19,920
Like it, it felt like he'd been
there much longer than that, but

475
00:22:20,080 --> 00:22:21,360
apparently it has only been five years.

476
00:22:21,630 --> 00:22:21,920
Carl: Yeah.

477
00:22:21,950 --> 00:22:22,240
Okay.

478
00:22:22,300 --> 00:22:24,320
No, you're right because
he, he put out a blog post.

479
00:22:24,350 --> 00:22:27,040
Well, anyway, I'll, I'll stop
speculating on the timeline, but

480
00:22:27,060 --> 00:22:29,040
to me, he is highly identified.

481
00:22:29,905 --> 00:22:34,115
With Versel, like, you know, if I think
of Versel, I think of, uh, Guillermo,

482
00:22:34,275 --> 00:22:39,915
Roush, and Leero, just like by volume
of activity and like prolificness in

483
00:22:40,305 --> 00:22:45,795
content and social media interaction
and blog posts and example resources.

484
00:22:45,795 --> 00:22:46,435
So just all of it.

485
00:22:46,815 --> 00:22:50,235
So he has now left Versel and is
working at Cursor, which like.

486
00:22:50,760 --> 00:22:54,930
That seems great, at least in terms
of like mind share and hype and

487
00:22:54,930 --> 00:22:58,330
you know, alignment, potential,
alignment with future, whatever.

488
00:22:58,680 --> 00:23:01,290
Cursors is definitely a
really hot company right now.

489
00:23:01,520 --> 00:23:05,010
I've had some private conversations of
with like, can they keep doing that?

490
00:23:05,090 --> 00:23:10,250
'cause at the end of the day they're a
fork of VS code and like fork of a large

491
00:23:10,250 --> 00:23:12,530
project with 30 people working on it.

492
00:23:13,110 --> 00:23:16,715
Which I think is in the ballpark of
how many employees Cursor has versus

493
00:23:17,025 --> 00:23:22,315
like Anthropic, which is, you know, a
giant, huge beast with all of the money.

494
00:23:22,415 --> 00:23:23,795
So like it's cool.

495
00:23:23,925 --> 00:23:24,595
Great for him.

496
00:23:24,685 --> 00:23:28,395
Definitely there's a lot more like
oxygen in the room in terms of

497
00:23:28,395 --> 00:23:31,515
excitement and like potential at cursor.

498
00:23:31,715 --> 00:23:32,595
I think so.

499
00:23:33,065 --> 00:23:33,355
Cool.

500
00:23:33,465 --> 00:23:34,475
I'll be keeping an eye on that.

501
00:23:34,515 --> 00:23:35,075
I use cursor.

502
00:23:35,775 --> 00:23:40,345
It's nice, so he'll still remain in
my, I don't know, professional spheres.

503
00:23:40,445 --> 00:23:44,345
But yeah, he had a really good blog post
that he put up called, UH, five Things

504
00:23:44,425 --> 00:23:45,905
I Learned From Five Years At Versa.

505
00:23:46,545 --> 00:23:47,305
I appreciated it.

506
00:23:47,645 --> 00:23:51,145
His number one was go hard at work,
then go home, and he closes it

507
00:23:51,145 --> 00:23:52,865
with, when I'm offline, I'm offline.

508
00:23:52,965 --> 00:23:54,665
I'm a hundred percent focused
on my wife and daughter.

509
00:23:55,205 --> 00:23:56,905
To be clear, I still get
this wrong sometimes.

510
00:23:57,095 --> 00:23:59,905
It's a never ending pursuit of
work, life, harmony, takeaway.

511
00:23:59,965 --> 00:24:02,585
You can work really hard
and set clear boundaries.

512
00:24:03,240 --> 00:24:05,090
I'll say That's hard.

513
00:24:05,570 --> 00:24:06,170
I struggle with that.

514
00:24:06,330 --> 00:24:08,010
I don't, I don't have a
wife, I don't have kids.

515
00:24:08,550 --> 00:24:13,410
So like in that section he talks about
like responding to tweets from the beach

516
00:24:13,470 --> 00:24:17,810
on his honeymoon and like, yes, I want
to believe that you can work really

517
00:24:17,810 --> 00:24:21,810
hard and set clear boundaries to where
you're not working on vacation doing, you

518
00:24:21,810 --> 00:24:26,850
know, social media comms work from the
beach, but also like if you're not there.

519
00:24:27,430 --> 00:24:31,395
Like, people aren't gonna wait three days
for you to get back from vacation to,

520
00:24:31,695 --> 00:24:33,195
you know, get the authoritative answer.

521
00:24:33,195 --> 00:24:37,555
Like, if they ask a question, then like,
the person who is Johnny on the spot

522
00:24:37,985 --> 00:24:42,835
answering it in their time of need, like
they are gonna get the, I don't know,

523
00:24:42,835 --> 00:24:45,595
the kudos, the energy they're gonna, you
know, people are gonna start gravitating

524
00:24:45,595 --> 00:24:47,115
towards them for future questions.

525
00:24:47,615 --> 00:24:48,035
I'm like, that's.

526
00:24:48,835 --> 00:24:53,485
This going so hard is how Leero
managed to get that level of

527
00:24:53,485 --> 00:24:54,725
status, like in my own brain.

528
00:24:55,185 --> 00:24:57,885
And so I wanna believe you can work
really hard and set clear boundaries.

529
00:24:58,185 --> 00:24:59,205
I'm not always so sure about that.

530
00:24:59,445 --> 00:24:59,965
I, I dunno.

531
00:25:00,005 --> 00:25:03,965
I wrote, I actually wrote a
little blog post kind of on that

532
00:25:03,965 --> 00:25:05,885
subject almost exactly a year ago.

533
00:25:06,435 --> 00:25:07,085
I'll link it here.

534
00:25:07,125 --> 00:25:08,325
I probably won't put it in the transcript.

535
00:25:09,335 --> 00:25:13,305
Just kind of talking about that
general thing and like I, I had a

536
00:25:13,305 --> 00:25:15,905
kind of similar experience to what he
describes here of like, going really

537
00:25:15,905 --> 00:25:21,185
hard and like poor boundaries and
like burnout and all of the, a lot

538
00:25:21,185 --> 00:25:22,705
of the benefits, a lot of the costs.

539
00:25:23,005 --> 00:25:25,865
And what I kinda realized is that
like, I don't know that I could have

540
00:25:26,665 --> 00:25:30,905
achieved the kind of success that I
got without that level of burnout and

541
00:25:31,425 --> 00:25:35,145
I don't know, poor boundary setting
because like, it's because I gave.

542
00:25:35,955 --> 00:25:40,215
All of my attention to maybe not just
work, like some of, a lot of my attention,

543
00:25:40,315 --> 00:25:44,575
you know, the full-time work, but also
investing in things like reactive flex

544
00:25:44,875 --> 00:25:49,255
or just learning new tools and staying on
top of the cutting edge outside of work.

545
00:25:50,335 --> 00:25:53,705
Like that was really poorly boundaried
and like fully throughout my

546
00:25:53,825 --> 00:25:56,745
twenties, I ignored a lot of myself.

547
00:25:57,105 --> 00:26:01,065
I just really think that that is, I wanna
believe that you can succeed and achieve

548
00:26:01,085 --> 00:26:06,065
big success without giving up that kind
of, I don't know, intimacy with yourself.

549
00:26:06,405 --> 00:26:08,665
But I don't know that you can, I
don't know, it seems really hard.

550
00:26:09,210 --> 00:26:12,630
And it, it just notable to me that
like the only people I see talking

551
00:26:12,630 --> 00:26:16,270
about that and like saying things
like, you can work really hard and

552
00:26:16,450 --> 00:26:19,790
set clear boundaries are the people
who had poor boundaries, achieved

553
00:26:19,790 --> 00:26:21,630
success, and are now reflecting on it.

554
00:26:21,650 --> 00:26:22,270
So, I don't know.

555
00:26:22,300 --> 00:26:22,590
Mark: Yeah.

556
00:26:22,770 --> 00:26:26,990
It, it is tough, but I, I have a, I have
a lot of respect for Lee Rob and that

557
00:26:27,010 --> 00:26:30,550
the work and effort that he's put in,
when I just think of the word derel,

558
00:26:30,810 --> 00:26:32,670
he is the first that comes to mind.

559
00:26:33,485 --> 00:26:37,065
He, he's always, you know,
omnipresent in any kind of Reddit

560
00:26:37,065 --> 00:26:40,345
or Hacker News or Twitter thread
that mentions Versel and Next.

561
00:26:40,765 --> 00:26:44,025
And, you know, even if you maybe,
you know, at times disagreed with,

562
00:26:44,285 --> 00:26:47,425
you know, what he was saying or
representing the company wine, he

563
00:26:47,945 --> 00:26:52,225
absolutely like did a great job of
being there and answering questions

564
00:26:52,525 --> 00:26:54,665
and, and being involved in reaching out.

565
00:26:55,015 --> 00:26:59,225
It's definitely a loss for Versel
and when I wrote my React Community

566
00:26:59,225 --> 00:27:04,925
article, you know, recently, I had
a line in there about Versal had

567
00:27:05,405 --> 00:27:10,885
a large Dere team that updated the
next docs, and he corrected me.

568
00:27:10,885 --> 00:27:12,965
It's like, no, there were
two of us at that point.

569
00:27:13,165 --> 00:27:14,485
I was like, oh, whoops.

570
00:27:14,605 --> 00:27:15,205
I got that wrong.

571
00:27:15,585 --> 00:27:20,645
It seemed like you had a large team
because you were doing so much work.

572
00:27:21,175 --> 00:27:21,525
Carl: Right?

573
00:27:21,945 --> 00:27:22,845
So, yeah, I don't know.

574
00:27:23,310 --> 00:27:26,955
From the comment, from the, from chat,
from re Sam, bit of taking advice from

575
00:27:26,955 --> 00:27:29,835
lottery winners, vibe occasionally
like, yeah, that's, that's what it is.

576
00:27:29,935 --> 00:27:31,995
It sounds like survivor
bias, things like that.

577
00:27:32,255 --> 00:27:35,795
Anyway, this is, we're already like kind
of far afield from where we started here.

578
00:27:35,795 --> 00:27:38,595
This was talking about Versel
and some of their updates.

579
00:27:38,865 --> 00:27:39,595
This was a good piece.

580
00:27:39,975 --> 00:27:41,995
Lee Rob, wish him the best at cursor.

581
00:27:42,105 --> 00:27:43,315
I'll be paying attention still.

582
00:27:44,275 --> 00:27:48,735
The, uh, creator of SWC also left Versal.

583
00:27:49,005 --> 00:27:53,935
He's taken some time to, to rest and focus
back on, uh, SWC again, so that's great.

584
00:27:54,035 --> 00:27:57,175
I'm not as familiar with him as
a, you know, individual human,

585
00:27:57,795 --> 00:27:59,215
but I am familiar with s wc.

586
00:27:59,355 --> 00:27:59,895
So cool.

587
00:28:00,045 --> 00:28:00,855
Good luck to him.

588
00:28:01,045 --> 00:28:01,455
Love that.

589
00:28:01,875 --> 00:28:08,095
And another prolific react ecosystem
speaker and like educator, Sam

590
00:28:08,095 --> 00:28:11,975
Selikoff joined Versal to do
content and some other things.

591
00:28:12,780 --> 00:28:15,960
His Twitter feed is all like, all
about ramping up and like, you

592
00:28:15,960 --> 00:28:17,040
know, spinning up on a new team.

593
00:28:17,060 --> 00:28:19,800
So that's, that's a fun,
that's a fun moment in time.

594
00:28:20,030 --> 00:28:22,720
Team transitions and gathering
context in a new spot.

595
00:28:23,100 --> 00:28:26,640
Mark: And then overall, and
not, not react, but adjacent.

596
00:28:27,100 --> 00:28:33,200
So next is the view ecosystem
equivalent to next Js.

597
00:28:34,195 --> 00:28:37,975
And Versel had already picked up,
you know, rich Harris who builds

598
00:28:38,295 --> 00:28:43,175
Svel, possibly one or two other
non-reactive framework authors as well.

599
00:28:43,795 --> 00:28:50,735
And VL actually just acquired whatever
group or company has been behind N and is

600
00:28:50,735 --> 00:28:55,455
hiring all of the developers, including
Daniel Grow, who I think is the, the lead.

601
00:28:55,830 --> 00:29:01,360
Developer maintainer for N So you know,
Versal is not just about react like they,

602
00:29:01,470 --> 00:29:05,800
they are sort of putting their money where
their mouth is and trying to back many

603
00:29:05,800 --> 00:29:11,120
different tools that, you know, build
apps and of course can be run on versal.

604
00:29:11,120 --> 00:29:11,520
That's

605
00:29:11,520 --> 00:29:15,980
Carl: got me curious about what kind of
like corporate structure is behind Nuxt.

606
00:29:16,000 --> 00:29:18,440
'cause like, you know, if it's
individual developers then like.

607
00:29:18,970 --> 00:29:20,630
You can't acquire that,
you just hire them.

608
00:29:21,110 --> 00:29:24,910
Mark: I think next Labs may be an actual
company, but I don't know how much of

609
00:29:24,990 --> 00:29:29,270
a like profit seeking company it is
versus some kind of little holding thing.

610
00:29:29,560 --> 00:29:29,910
Carl: Right.

611
00:29:30,170 --> 00:29:31,830
I'm now, I'm on the next website.

612
00:29:32,070 --> 00:29:35,470
I see next UI Pro, A
hub for managing apps.

613
00:29:36,380 --> 00:29:39,640
So I guess like deployment
and then like a visual editor.

614
00:29:39,940 --> 00:29:42,280
And I see some reference to
courses and stuff too, so like,

615
00:29:42,280 --> 00:29:43,200
yeah, that sounds like a business.

616
00:29:43,200 --> 00:29:44,800
That sounds like they're selling products.

617
00:29:44,870 --> 00:29:49,280
Kind of a mishmash of various different
open source monetization techniques there.

618
00:29:49,300 --> 00:29:49,520
So.

619
00:29:49,520 --> 00:29:49,720
Cool.

620
00:29:49,720 --> 00:29:49,960
Nice.

621
00:29:49,960 --> 00:29:50,560
That's good to know.

622
00:29:50,800 --> 00:29:51,280
I appreciate that.

623
00:29:51,430 --> 00:29:56,360
Love someone who's trying to take a
project and turn it into a business Relat.

624
00:29:56,975 --> 00:29:58,245
Another smaller update.

625
00:29:58,245 --> 00:30:04,060
This is like barely an update, but
I've been tracking A an RFC, actually

626
00:30:04,060 --> 00:30:09,740
an RFC that Lee Robb started back in
April on deployment adapters for next

627
00:30:10,170 --> 00:30:11,900
from Versal, basically making it.

628
00:30:13,135 --> 00:30:18,185
More robust and reliable, I guess, to
deploy next projects to infrastructure

629
00:30:18,215 --> 00:30:19,865
that isn't hosted on Versal.

630
00:30:20,005 --> 00:30:25,345
So the, a staff engineer from Netlify gave
a response that's pretty lengthy, pretty

631
00:30:25,345 --> 00:30:29,225
serious, you know, it's got like, you
list six gaps and 10 questions and four

632
00:30:29,225 --> 00:30:31,425
suggestions, mostly minor suggestions.

633
00:30:32,495 --> 00:30:37,185
It's just cool to see that moving along
slowly and I question the momentum

634
00:30:37,405 --> 00:30:38,945
now that Lee Robb is no longer there.

635
00:30:39,215 --> 00:30:41,385
It's just really hard to hand
off major projects like that,

636
00:30:41,385 --> 00:30:42,625
major initiatives like that.

637
00:30:43,125 --> 00:30:44,065
But yeah, that's cool.

638
00:30:44,135 --> 00:30:44,425
Neat.

639
00:30:44,615 --> 00:30:45,225
Love to see it.

640
00:30:45,495 --> 00:30:45,785
Mark: Okay.

641
00:30:46,225 --> 00:30:48,145
Somewhat smaller item, but
definitely worth calling out.

642
00:30:48,920 --> 00:30:52,780
So Ryan Carniato, the author of
Solid, is, you know, pretty much the

643
00:30:52,780 --> 00:30:56,820
world's foremost expert on signals
as a state management mechanism.

644
00:30:57,240 --> 00:30:59,660
And there was a lot of back and forth
and chatter, and I think we even

645
00:30:59,860 --> 00:31:04,580
referred to some of it in our, in
our last talk about like Ryan for and

646
00:31:04,580 --> 00:31:08,940
Michael Jackson from Remix were kind of
questioning like, why does Signals exist?

647
00:31:09,200 --> 00:31:10,180
Why do you know?

648
00:31:10,180 --> 00:31:12,420
Why do these different
frameworks look sort of the same?

649
00:31:13,155 --> 00:31:16,815
And I think somewhat inspired by some
of those questions and discussion.

650
00:31:17,165 --> 00:31:23,415
Ryan put together a 10 minute video
on React and Signals what every React

651
00:31:23,415 --> 00:31:25,655
developer should know about signals.

652
00:31:26,075 --> 00:31:31,575
And Ryan like me is very big on history
and context and explaining how we

653
00:31:31,575 --> 00:31:35,175
got from past tools and decisions
to current tools and decisions.

654
00:31:36,235 --> 00:31:40,175
He goes into some, some of the history
of signals, you know, they originated

655
00:31:40,205 --> 00:31:45,415
with early JavaScript frameworks
like Knockout, but the concepts and

656
00:31:45,415 --> 00:31:49,135
implementation of signals have evolved
significantly in the last 15 years ago.

657
00:31:49,475 --> 00:31:53,335
And so he talks about some of the
actual technical advantages of signals.

658
00:31:54,195 --> 00:31:56,295
And then he also does
some, some myth busting.

659
00:31:56,295 --> 00:31:58,335
You know, he pushes back
and says they're not magic.

660
00:31:58,765 --> 00:31:59,735
They do scale.

661
00:32:00,415 --> 00:32:04,695
A lot of other frameworks like Angular and
View rely on signals to make them faster.

662
00:32:05,155 --> 00:32:09,215
And he also talks about comparisons
between like, what's the difference

663
00:32:09,215 --> 00:32:14,735
between three ACT compiler and signals
or reacts virtual dumb in signals.

664
00:32:15,115 --> 00:32:18,295
And I think what a lot of that
sums down to is that in react.

665
00:32:19,040 --> 00:32:24,140
The component is the smallest unit of
update granularity, like you set state,

666
00:32:24,560 --> 00:32:29,140
at least one component will re-render
the whole component renders, and then

667
00:32:29,140 --> 00:32:33,260
maybe only a few bit bits of it need to
be applied, but you had to run the whole

668
00:32:33,260 --> 00:32:35,020
component to see what needed to change.

669
00:32:35,290 --> 00:32:40,380
Whereas with signals, it's this
one value changed and it's more

670
00:32:40,660 --> 00:32:41,700
directly attached to the output.

671
00:32:42,410 --> 00:32:45,350
And so only the bits of the
output that actually relied

672
00:32:45,350 --> 00:32:46,790
on that need to be calculated.

673
00:32:47,090 --> 00:32:51,110
And it's not an earth shaking discussion,
but given that there's been a lot

674
00:32:51,110 --> 00:32:54,830
of hype and discussion and arguing
back and forth, it's a good overview.

675
00:32:54,940 --> 00:32:57,070
Looking at some of like.

676
00:32:57,555 --> 00:33:01,405
Some of the pros, cons, concepts,
and myths around signals.

677
00:33:01,675 --> 00:33:02,565
Carl: Yeah, I missed that.

678
00:33:02,685 --> 00:33:06,045
I need to give that a watch because
I hold a number of myths and

679
00:33:06,045 --> 00:33:08,405
misconceptions about signals, and I
would like to understand them better.

680
00:33:08,755 --> 00:33:09,045
Yeah.

681
00:33:09,275 --> 00:33:09,565
Mo: Nice.

682
00:33:09,915 --> 00:33:12,845
Next up, we have another release.

683
00:33:13,105 --> 00:33:14,645
So we've been talking about
this for a few months.

684
00:33:15,565 --> 00:33:19,465
On and off because it's been sort
of an RC mode, but React Native Uni

685
00:33:19,465 --> 00:33:21,465
Styles 3.0 has finally been released.

686
00:33:21,805 --> 00:33:24,945
Now there's a few points
to sort of hit here.

687
00:33:25,665 --> 00:33:30,385
Uni Styles came out as sort of like a
very performant, lightweight styling

688
00:33:30,385 --> 00:33:33,905
option for React Native because there's
a lot of styling libraries that are

689
00:33:33,905 --> 00:33:36,425
quite complex and have a lot of.

690
00:33:37,000 --> 00:33:38,005
Stuff included within it.

691
00:33:38,065 --> 00:33:41,365
But the challenge with a lot of those is
that it also comes with a little bit of a

692
00:33:41,365 --> 00:33:44,765
performance hit because you've got a lot
more being bundled into your application.

693
00:33:45,485 --> 00:33:49,565
Uni styles is, is sort of since then
being this sort of lightweight JavaScript

694
00:33:49,565 --> 00:33:53,805
only implementation has has dug into this
sort of performance space a bit more.

695
00:33:54,345 --> 00:33:59,165
And this newest release is really digging
into the new architecture with with

696
00:33:59,165 --> 00:34:03,085
Fabric, which is the new render and
it uses native code and c plus plus.

697
00:34:03,860 --> 00:34:09,400
To basically bypass the JavaScript
layer when possible and keeps us

698
00:34:09,400 --> 00:34:13,520
track of the styling dependencies in
c plus plus, and we'll only update

699
00:34:14,040 --> 00:34:17,960
affected styles and components on
the native layer as much as possible.

700
00:34:17,960 --> 00:34:20,280
Again, this is like some things
are possible on the native layer.

701
00:34:20,280 --> 00:34:20,800
Some things aren't.

702
00:34:21,610 --> 00:34:25,350
In terms of styling and, and the
visuals of it, but as much as it

703
00:34:25,350 --> 00:34:29,430
can possibly do, it does that in the
native layer and avoids re-render.

704
00:34:29,730 --> 00:34:33,550
The maintainer kind likens this
to CSS on the web in that it's not

705
00:34:33,550 --> 00:34:36,150
handled by JavaScript, but it's a
different layer that that handles it.

706
00:34:36,410 --> 00:34:40,030
On top of that, added a bunch of extra
functionality through a babble plug

707
00:34:40,090 --> 00:34:44,070
plugin to handle things like theming,
break points, orientation, font

708
00:34:44,070 --> 00:34:47,510
scale, and maybe even right to left
styling if you need that for your app.

709
00:34:48,120 --> 00:34:52,460
And so the by and large, the biggest thing
here is that there is a performance boost

710
00:34:52,600 --> 00:34:56,260
and they've done some measurements to,
to show how much of a performance boost

711
00:34:56,260 --> 00:34:59,180
you can get because of these safe three
renders that would've previously been

712
00:34:59,180 --> 00:35:00,900
happening because of styling changes.

713
00:35:01,550 --> 00:35:05,940
Other noteworthy things to mention
are that there's some new features

714
00:35:05,940 --> 00:35:09,860
around sort of variance or scoped
themes and so on and so forth.

715
00:35:10,160 --> 00:35:12,940
You can go read through the blog
post in more details to understand

716
00:35:12,940 --> 00:35:15,740
what are the sort of more
granular new features that exist.

717
00:35:16,345 --> 00:35:19,965
But also given that this is sort
of a universal library that works

718
00:35:19,965 --> 00:35:23,645
on web and native, there is a
new web functionality as well.

719
00:35:24,035 --> 00:35:27,005
Some web only styles, some pseudo
classes that they've introduced

720
00:35:27,105 --> 00:35:30,565
and some support for class names
that would be targeting the web.

721
00:35:30,825 --> 00:35:34,965
So there's some stuff around web support
as well, which is quite interesting.

722
00:35:35,305 --> 00:35:36,845
But yeah, that's Uni Cells 3.0.

723
00:35:36,845 --> 00:35:38,205
Give it a give it, give it a quick look.

724
00:35:38,800 --> 00:35:39,090
Cool.

725
00:35:39,320 --> 00:35:39,810
Love that.

726
00:35:39,810 --> 00:35:42,970
Mark: Finally, we have a couple different,
uh, react server component updates.

727
00:35:43,230 --> 00:35:48,370
The React Router team has been iterating
for a while on their work in progress

728
00:35:48,370 --> 00:35:52,010
server component implementation,
and they've put together a blog post

729
00:35:52,010 --> 00:35:56,690
describing a path forward, so they go
through some details talking about the,

730
00:35:56,870 --> 00:36:02,470
and ways you would handle things like
streaming UI or in lighting data in

731
00:36:03,310 --> 00:36:07,790
existing React router framework mode
versus how you might handle it with

732
00:36:07,790 --> 00:36:09,550
their server component implementation.

733
00:36:10,130 --> 00:36:12,310
And so there the summary is that.

734
00:36:12,767 --> 00:36:16,807
apparently they're going to revamp
the framework mode to be built on top

735
00:36:16,827 --> 00:36:18,767
of their server component support.

736
00:36:19,117 --> 00:36:22,977
They are still labeling the server
component support as unstable,

737
00:36:23,537 --> 00:36:26,437
but they do want people to
try it out and give it a shot.

738
00:36:27,192 --> 00:36:31,732
So looking at some of these examples, it
looks pretty significantly different usage

739
00:36:31,762 --> 00:36:34,692
wise than say like the next app router.

740
00:36:35,072 --> 00:36:38,612
It maybe looks even a little more
similar to how Parcel had almost

741
00:36:38,612 --> 00:36:42,172
like a pick and choose your own
server component usage approach.

742
00:36:42,552 --> 00:36:46,652
So it is very cool to see
additional frameworks providing

743
00:36:46,652 --> 00:36:47,812
support for server components.

744
00:36:48,392 --> 00:36:51,732
As well as that we're starting to
finally see some variation in how

745
00:36:51,732 --> 00:36:53,332
they might get used and not just.

746
00:36:54,017 --> 00:36:56,757
The way next does it is
the only way to do it.

747
00:36:57,207 --> 00:37:01,077
Along with that, Devin Govett from
parcel put together a pretty good

748
00:37:01,077 --> 00:37:05,597
article where he was talking about
how parcel bundles, server components,

749
00:37:06,137 --> 00:37:08,477
and he goes into some background
detail about like, you know, what is

750
00:37:08,477 --> 00:37:09,637
a bundle even do in the first place?

751
00:37:09,817 --> 00:37:10,317
How does it.

752
00:37:10,768 --> 00:37:12,748
You know, follow the, the module graph.

753
00:37:12,808 --> 00:37:14,428
How does it handle dynamic loading?

754
00:37:14,448 --> 00:37:15,628
How do the pieces fit together?

755
00:37:15,968 --> 00:37:20,468
And then talks about, okay, and since
React server components is really a

756
00:37:20,468 --> 00:37:25,028
bundler driven feature, here's how
server components actually rely and make

757
00:37:25,028 --> 00:37:26,308
use of some of those bundler aspects.

758
00:37:26,768 --> 00:37:29,468
And along with that, I think
we've previously mentioned that

759
00:37:29,468 --> 00:37:31,268
there's been an in progress.

760
00:37:31,903 --> 00:37:38,553
Attempt to build RSC support
directly into Vite's React plugin.

761
00:37:38,813 --> 00:37:43,113
And there's one person who appears
to be steadily cranking away on

762
00:37:43,113 --> 00:37:44,873
trying to make that support possible.

763
00:37:45,533 --> 00:37:50,033
And I'm seeing a number of the to-do list
items in the roadmap being checked off.

764
00:37:50,493 --> 00:37:53,033
So I don't know how far along that is.

765
00:37:54,043 --> 00:37:57,023
But it seems like a pretty serious
effort to make that happen.

766
00:37:57,523 --> 00:38:01,823
So the server component
ecosystem is slowly filling out.

767
00:38:02,093 --> 00:38:02,383
Carl: Yeah.

768
00:38:02,623 --> 00:38:02,823
Interesting.

769
00:38:02,943 --> 00:38:10,303
I see one of the to-do list items in
that is moving waku to VJS plugin, RSC.

770
00:38:10,843 --> 00:38:11,543
That's interesting.

771
00:38:11,703 --> 00:38:14,303
'cause I, I had understood,
I mean, Waku was like.

772
00:38:15,208 --> 00:38:19,768
A proof of concept implementation of
like how to do a framework on RSC.

773
00:38:19,828 --> 00:38:25,008
So it's interesting to see that move from
like custom one-off implementation to

774
00:38:25,598 --> 00:38:31,008
relying on a, you know, kind of delegating
RSC support back into, back into Ved.

775
00:38:31,008 --> 00:38:31,368
Love to see that.

776
00:38:32,033 --> 00:38:32,573
That's cool.

777
00:38:32,828 --> 00:38:34,998
Mark: Okay, moving on
to the lightning round.

778
00:38:35,228 --> 00:38:36,118
Lightning round.

779
00:38:36,578 --> 00:38:42,318
Corbin Crutchley, author of the Framework
Field Guide ebook, put together a very

780
00:38:42,468 --> 00:38:46,718
lengthy deep dive, which I highly approve
of, called the History of React through

781
00:38:46,718 --> 00:38:49,918
Code, where he goes back and looks at a
whole bunch of different react features

782
00:38:49,918 --> 00:38:53,558
that were added over time and kind
of argues that you know what these,

783
00:38:53,618 --> 00:38:55,638
the, these actually have sort of a.

784
00:38:56,203 --> 00:39:00,643
Intellectual cohesiveness a like
a design cohesiveness to them and

785
00:39:00,643 --> 00:39:04,403
that they, they all, it makes sense
when you look at the sequence of,

786
00:39:04,463 --> 00:39:06,443
of features and how they were added.

787
00:39:06,633 --> 00:39:11,843
Meanwhile, TK Dodo, Dominic Dorf, Meister
maintainer of React query, just put up a

788
00:39:11,843 --> 00:39:17,843
post today where he has some thoughts on
when use callback is actually useless.

789
00:39:18,183 --> 00:39:21,523
And I think his argument is actually,
it's useless in a, in a lot more

790
00:39:21,523 --> 00:39:24,923
cases and you probably don't
actually need it all that often.

791
00:39:26,183 --> 00:39:26,473
Carl: Cool.

792
00:39:26,723 --> 00:39:30,833
There was a NPM supply chain
attack that was pretty interesting.

793
00:39:31,153 --> 00:39:31,713
I believe.

794
00:39:31,813 --> 00:39:37,433
The issue was that a couple of relatively
high profile maintainers got phished,

795
00:39:37,893 --> 00:39:45,353
and yes, there's a phishing campaign on a
typo, squatted, URL, which is NPN js.com.

796
00:39:45,853 --> 00:39:47,610
So it's a couple of major.

797
00:39:47,910 --> 00:39:52,037
Maintainers got successfully phished
through that, which then, uh, stole

798
00:39:52,037 --> 00:39:56,717
their NPM credentials and published
malicious versions of packages.

799
00:39:56,747 --> 00:40:00,517
Yeah, so, uh, malicious releases
included lin config, prettier.

800
00:40:00,657 --> 00:40:02,877
That's big Lin plugin, prettier.

801
00:40:03,652 --> 00:40:06,897
Think kit packager, core
and nappy post install.

802
00:40:06,957 --> 00:40:09,337
So the, like, most of those not so big.

803
00:40:09,617 --> 00:40:11,697
I, I haven't really heard of,
heard about 'em, but yeah.

804
00:40:12,007 --> 00:40:14,097
Esly config, prettier, that's big.

805
00:40:14,317 --> 00:40:16,337
And they got version,
they got major versions.

806
00:40:16,337 --> 00:40:19,227
8, 9, 10. Eight, nine, and 10.

807
00:40:19,232 --> 00:40:24,042
Okay, so make sure you're not
using version 10.1, 9.1 0.1.

808
00:40:24,042 --> 00:40:26,762
Anyway, if you're using those, check it.

809
00:40:26,782 --> 00:40:29,762
If you're using ES link config,
prettier or ES link plugin prettier.

810
00:40:29,762 --> 00:40:31,602
Make sure it's not a vulnerable version.

811
00:40:32,012 --> 00:40:32,922
Check your lock files.

812
00:40:33,312 --> 00:40:34,122
Yeah, that's not great.

813
00:40:34,522 --> 00:40:36,722
Mark: I know one of the other
redix maintainers got the

814
00:40:36,722 --> 00:40:38,802
phishing email and avoided it.

815
00:40:39,072 --> 00:40:41,322
It's definitely semi widespread campaign.

816
00:40:41,632 --> 00:40:41,922
Carl: Wild.

817
00:40:42,232 --> 00:40:47,137
They must have hit so many people to get
a couple of major vulnerabilities in.

818
00:40:47,282 --> 00:40:47,572
Cool.

819
00:40:48,232 --> 00:40:50,412
Mo: So next up, very quick one.

820
00:40:50,552 --> 00:40:54,972
You might've remembered the old expo
router demo from last year's react conf,

821
00:40:54,982 --> 00:40:59,252
where they showed RSCs in the world
of expo router for building an AI app.

822
00:40:59,442 --> 00:41:02,172
Something very similar to that is
now an open source project that

823
00:41:02,172 --> 00:41:03,532
you can clone and play around with.

824
00:41:04,112 --> 00:41:08,212
So Evan Bacon has released a demo
of an AI app that can generate.

825
00:41:08,892 --> 00:41:11,902
With AI native components
and stream them in with RSCs.

826
00:41:12,132 --> 00:41:12,742
It's pretty cool.

827
00:41:12,842 --> 00:41:14,342
So clone the repo, play around with it.

828
00:41:14,612 --> 00:41:16,142
It's an interesting little demo.

829
00:41:16,392 --> 00:41:19,782
Mark: There was a Reddit thread
that was asking how does Facebook

830
00:41:19,832 --> 00:41:23,942
slash meta actually build and
serve their React applications?

831
00:41:24,162 --> 00:41:28,742
And some former meta engineers responded
with a few technical details talking about

832
00:41:28,742 --> 00:41:34,422
how they do a bunch of dynamic bundling,
and they also use, I believe Hermes or

833
00:41:34,422 --> 00:41:37,942
static Hermes on the back end to pre-build
some of the server rendering pieces.

834
00:41:38,557 --> 00:41:40,017
So, you know, a little
peek behind the curtain.

835
00:41:40,247 --> 00:41:40,537
Mo: Cool.

836
00:41:40,877 --> 00:41:45,017
And we talked a little bit about Nitro
modules over the months, the past few

837
00:41:45,017 --> 00:41:49,297
months, there is a new library that the
Margie folks folks have been working

838
00:41:49,317 --> 00:41:51,977
on called React Native Nitro Image.

839
00:41:52,277 --> 00:41:54,097
And so this is built on
top of Nitro modules.

840
00:41:54,457 --> 00:41:58,657
I was actually talking with someone this
morning about some of the challenges

841
00:41:58,657 --> 00:42:02,577
with images on the native layer when it
comes to loading them in React Native.

842
00:42:02,677 --> 00:42:06,577
So this is very much welcome as a
change to hopefully improve performance

843
00:42:06,577 --> 00:42:07,617
across the board for React native.

844
00:42:08,292 --> 00:42:10,952
Mark: One of the weaknesses of
React Server components has been

845
00:42:10,952 --> 00:42:15,072
that there hasn't been a good
testing story for them yet, or at

846
00:42:15,072 --> 00:42:16,272
least not one that I've heard of.

847
00:42:16,382 --> 00:42:20,192
Someone put up an article
with a way to test them.

848
00:42:20,662 --> 00:42:24,832
However, it's incredibly hacky and relies
on overriding some of reacts internals,

849
00:42:24,932 --> 00:42:31,072
so it's probably not a good way, but it
is a way to try to test them if you like.

850
00:42:31,672 --> 00:42:34,932
And then there was a pretty good article
that gave, it went into a bit of a

851
00:42:34,932 --> 00:42:40,532
technical dive and deep dive on how a
company improved the interaction to Next

852
00:42:40,702 --> 00:42:46,412
Paint Web Vital Metric in their app, and
gave a bunch of very practical examples

853
00:42:46,512 --> 00:42:50,332
of problems they found in their app and
ways that they, they addressed those.

854
00:42:51,182 --> 00:42:51,472
Mo: Cool.

855
00:42:51,622 --> 00:42:55,632
Next up, there are some new styling
properties that are being proposed

856
00:42:55,652 --> 00:42:57,312
to be added to React Native.

857
00:42:57,852 --> 00:43:02,232
So this is being done by Nishan Bede,
who has been doing a lot of work

858
00:43:02,232 --> 00:43:05,192
in trying to bring some CSS styling
into React Native and better support.

859
00:43:05,502 --> 00:43:08,992
This time there's a pr up that
adds support for background size,

860
00:43:09,712 --> 00:43:12,392
position, and reply and, and repeat.

861
00:43:13,077 --> 00:43:16,697
So this will be quite interesting to
see when and if it gets merged in.

862
00:43:16,967 --> 00:43:17,257
Carl: Yeah.

863
00:43:17,777 --> 00:43:19,537
Speaking of, I don't know, new CSS things.

864
00:43:20,077 --> 00:43:23,617
Chrome 1 37 added an if to CSS.

865
00:43:24,242 --> 00:43:29,327
There's a conditional flow, or I don't
know, there's a condition now in CCSS.

866
00:43:30,007 --> 00:43:31,447
I have not seen that before.

867
00:43:31,467 --> 00:43:34,687
So I guess it's a way of, you
know, you can consult the various

868
00:43:35,087 --> 00:43:40,367
variables you've set up and evaluate
what the associated styles are or

869
00:43:40,367 --> 00:43:42,807
associated values and conditionally.

870
00:43:43,557 --> 00:43:44,377
Do one thing or another.

871
00:43:44,407 --> 00:43:44,697
Yeah.

872
00:43:44,727 --> 00:43:45,017
Mark: Yeah.

873
00:43:45,077 --> 00:43:47,057
It, it, it looks like
it's a built-in function.

874
00:43:47,437 --> 00:43:53,457
You pass in a very, like a, an existing
variable or property value as the

875
00:43:53,457 --> 00:43:57,777
first, and then it's, if it matches,
then it's a, if it doesn't match,

876
00:43:57,777 --> 00:44:00,977
then it's b like, almost like an
Excel function, like kind of a thing.

877
00:44:01,827 --> 00:44:02,747
Mo: Reminded me exactly of that.

878
00:44:03,087 --> 00:44:05,867
Are we finally at the stage
where CSS is turning complete?

879
00:44:06,187 --> 00:44:09,867
Carl: I remember seeing a demo of
turning complete CSS like 15 years

880
00:44:09,967 --> 00:44:12,587
ago if you include user input.

881
00:44:12,607 --> 00:44:16,267
So yeah, it was like a grid of check
boxes and uh, I think the, the human

882
00:44:16,327 --> 00:44:19,907
had to interact with stuff, but it was
turning complete, if you included that.

883
00:44:20,007 --> 00:44:23,427
Mo: So I think we just need loops and
it'll technically be turn complete.

884
00:44:23,617 --> 00:44:23,907
Carl: Yeah.

885
00:44:24,632 --> 00:44:24,922
Wild.

886
00:44:25,142 --> 00:44:27,162
Anyway, that, that seems
interesting and new.

887
00:44:27,592 --> 00:44:31,162
This document that I'm reading is using
something else that I don't recognize.

888
00:44:31,382 --> 00:44:36,522
The, the example they have here is if
style, you know, dash color, white, so I

889
00:44:36,522 --> 00:44:40,802
guess that's using a different function
to read the styles of the current element.

890
00:44:41,552 --> 00:44:42,162
Something.

891
00:44:42,162 --> 00:44:44,162
That's what it looks like to
me, but that's also new to me.

892
00:44:44,217 --> 00:44:48,397
So like between conditionals and
being able to read the current state

893
00:44:48,397 --> 00:44:50,477
of element are, uh, interesting.

894
00:44:50,647 --> 00:44:54,637
Mark: There was a discussion thread
on Blue Sky where someone, where one

895
00:44:54,637 --> 00:44:56,477
of the React team members said that.

896
00:44:57,337 --> 00:45:02,387
They were, they had tried to submit an
update to React Dev Tools extension in

897
00:45:02,787 --> 00:45:07,707
Mozilla's, Firefox, add-on store, and it
was getting blocked because Mozilla has

898
00:45:07,977 --> 00:45:13,587
some very specific and strict rules around
how code gets built into extensions,

899
00:45:14,167 --> 00:45:18,067
and suddenly, all of a sudden, someone
on the Mozilla side is complaining that

900
00:45:18,067 --> 00:45:22,827
the way React builds their extension
is hypothetically a security concern.

901
00:45:23,207 --> 00:45:28,157
There were also some numbers thrown
around about how many Firefox users of

902
00:45:28,157 --> 00:45:30,237
the dev tools extension actually exist.

903
00:45:30,777 --> 00:45:33,957
And it was only like, maybe
like 120,000 or something.

904
00:45:34,147 --> 00:45:37,837
Whereas I think the, the last time I
looked at the, the dev tools extension

905
00:45:37,837 --> 00:45:39,877
for Chrome, it's like 4 million.

906
00:45:40,417 --> 00:45:43,717
So the React team was actually
saying, you know, maybe we, we

907
00:45:43,717 --> 00:45:46,957
won't even bother building the
extension for Firefox anymore.

908
00:45:47,027 --> 00:45:48,317
It's, it's not worth the effort.

909
00:45:48,337 --> 00:45:52,157
You can always add the, you know,
the unbundled version yourself.

910
00:45:53,157 --> 00:45:55,717
I think they maybe managed to
get the attention of someone

911
00:45:56,227 --> 00:46:00,677
from Mozilla to try to, you know,
bypass the stuck review process.

912
00:46:01,377 --> 00:46:02,837
But clearly that's a pain point.

913
00:46:03,057 --> 00:46:03,277
And

914
00:46:03,277 --> 00:46:06,997
Carl: I gotta say, just side load
this extension that can read all

915
00:46:06,997 --> 00:46:12,597
of your input on every site is the
dangerous thing to do at scale.

916
00:46:12,747 --> 00:46:16,157
Like if you just tell millions of
people side load this application,

917
00:46:16,547 --> 00:46:19,957
there's gonna be dozens of malicious
actors who spin up their own.

918
00:46:20,912 --> 00:46:24,282
Side load version of the extension
that does malicious things.

919
00:46:24,382 --> 00:46:24,882
So Oof.

920
00:46:24,882 --> 00:46:25,442
Don't like that.

921
00:46:25,822 --> 00:46:28,757
So yeah, hopefully they can
fix this, you know, correctly.

922
00:46:29,052 --> 00:46:32,632
Mark: And so another item, so we've
previously mentioned that, you know,

923
00:46:32,952 --> 00:46:37,792
biomes working on version two and they
had included some typed some support

924
00:46:37,972 --> 00:46:44,112
for typed aware rules that normally
would've required integration with

925
00:46:44,132 --> 00:46:49,272
the TypeScript DS went package and the
TypeScript compiler ENT came out with 1.0.

926
00:46:49,562 --> 00:46:53,432
There, there's a bit of additional
information and updates on both of those.

927
00:46:53,852 --> 00:46:55,072
So there was, there was an article.

928
00:46:55,777 --> 00:47:00,862
Talking and comparing the different
approaches that Biome and Oxalate

929
00:47:00,882 --> 00:47:03,342
are using to implement typed support.

930
00:47:03,922 --> 00:47:07,622
And then we got a couple links
to some of the discussions where

931
00:47:07,622 --> 00:47:08,822
those linters are doing it.

932
00:47:09,742 --> 00:47:15,342
Biome appears to be building in like their
own, almost like a miniature version of.

933
00:47:16,287 --> 00:47:22,357
Typed processing, whereas Oxalate
has taken the new TypeScript

934
00:47:22,357 --> 00:47:26,717
written in Go compiler and sort
of hacked up an interop layer.

935
00:47:27,067 --> 00:47:32,557
Then they're relying on the new TypeScript
go compiler to do the type checking work.

936
00:47:33,417 --> 00:47:35,477
And that approach
appears to be working it.

937
00:47:35,477 --> 00:47:38,997
They said they've implemented a number
of the different type to wear rules,

938
00:47:39,097 --> 00:47:43,557
and it seems highly performant, so you
know that in addition to being able

939
00:47:43,557 --> 00:47:48,277
to build our apps faster, we may be
able to lint our apps faster as well.

940
00:47:49,002 --> 00:47:49,292
Cool.

941
00:47:49,342 --> 00:47:52,852
We've been going on for a while about
how the remix team has been dropping

942
00:47:52,922 --> 00:47:56,412
very, very vague hints about what
remix version three is going to be,

943
00:47:56,872 --> 00:47:59,532
to the point that it's really getting
very, very annoying for those of us

944
00:47:59,532 --> 00:48:03,412
reading their, their Twitter accounts,
and I still haven't seen any actual

945
00:48:03,602 --> 00:48:06,092
code of what the framework itself.

946
00:48:07,047 --> 00:48:12,637
Will be like, however, there they
did put up a development branch that

947
00:48:12,637 --> 00:48:17,357
includes some of the support packages
that they're going to be using as part

948
00:48:17,357 --> 00:48:19,797
of the implementation of version three.

949
00:48:19,977 --> 00:48:22,637
So like it's not the full framework,
but there's a lot of individual

950
00:48:23,017 --> 00:48:29,277
sub packages for various like tar
parsing and other sorts of things that

951
00:48:29,347 --> 00:48:32,757
they want to be usable standalone,
but they're building them for the

952
00:48:32,757 --> 00:48:34,477
purpose of usage in version three.

953
00:48:35,122 --> 00:48:39,462
So it's not a full look at what,
what they're doing, but it's a little

954
00:48:39,462 --> 00:48:40,502
bit of a peek behind the curtain.

955
00:48:40,892 --> 00:48:41,182
Mo: Cool.

956
00:48:41,612 --> 00:48:45,342
Next up, we've got another sort
of honorable mention of releases

957
00:48:45,342 --> 00:48:48,702
that happened over the last month,
and this is React native wallets.

958
00:48:48,962 --> 00:48:49,942
So there's a lot of sort of.

959
00:48:50,557 --> 00:48:55,657
Wallet style libraries that have come and
go in the React native ecosystem, not one

960
00:48:55,657 --> 00:48:57,897
that's really been maintained extensively.

961
00:48:58,437 --> 00:49:03,537
And so the folks at Expensify and Software
Mansion have partnered together to

962
00:49:03,537 --> 00:49:04,977
create the React Native Wallet library.

963
00:49:05,677 --> 00:49:07,777
And so the idea is that.

964
00:49:08,537 --> 00:49:12,587
It's firstly a cross-platform
way to add payment and credit

965
00:49:12,587 --> 00:49:14,067
cards to Apple and Google Wallet.

966
00:49:14,807 --> 00:49:17,787
Now, there's libraries that
like handle passes and tickets.

967
00:49:17,937 --> 00:49:18,827
They're quite limited.

968
00:49:19,017 --> 00:49:21,627
I've used a few of them in
the past, but this is more

969
00:49:21,907 --> 00:49:23,427
specifically on payment cards.

970
00:49:24,047 --> 00:49:25,587
And so the idea is that you can maybe.

971
00:49:26,447 --> 00:49:29,772
Hopefully through this process avoid
needing to integrate a whole bunch

972
00:49:29,772 --> 00:49:32,732
of different SDKs for different
cards and different and different

973
00:49:33,012 --> 00:49:35,692
platforms, and you can kind of
just use this library to handle a

974
00:49:35,692 --> 00:49:36,852
lot of that functionality for you.

975
00:49:37,072 --> 00:49:41,012
Sounds quite complex because, you know,
payments are usually quite difficult

976
00:49:41,012 --> 00:49:44,572
to get working, so I'm curious to
see how well this works in practice,

977
00:49:44,572 --> 00:49:46,012
but I've not had the use case yet.

978
00:49:46,587 --> 00:49:50,752
Typically payments and, and cards and
stuff like has so many different people

979
00:49:50,752 --> 00:49:52,032
that you need to communicate with.

980
00:49:52,032 --> 00:49:55,872
The card issuer, apple, and a whole
bunch of other people in the process.

981
00:49:56,092 --> 00:49:59,552
So curious to see how extensible and
generic this is gonna be, but very cool.

982
00:49:59,862 --> 00:50:00,152
Carl: Yeah.

983
00:50:00,432 --> 00:50:00,632
Interesting.

984
00:50:00,662 --> 00:50:04,672
Also, it's the first time I've seen a
wallet library that was not Web3 in a

985
00:50:04,672 --> 00:50:07,432
long time, so additional wallets, right.

986
00:50:07,662 --> 00:50:09,552
This is a very small update, but we've.

987
00:50:10,217 --> 00:50:13,247
I talked a bit in the past
about Deno versus Oracle.

988
00:50:13,317 --> 00:50:18,977
Deno has been suing Oracle for use of
the JavaScript trademark because did

989
00:50:18,977 --> 00:50:20,177
you even know that Oracle owned it?

990
00:50:20,357 --> 00:50:23,937
Oracle owns the JavaScript
word, the word JavaScript.

991
00:50:24,317 --> 00:50:30,417
So basically the only content update
here is that in the past, at some

992
00:50:30,417 --> 00:50:36,017
point previously in the litigation,
Deno filed a claim of fraud because.

993
00:50:36,962 --> 00:50:42,807
Oracle filed supporting evidence of prior
use of the trademarked term JavaScript

994
00:50:43,227 --> 00:50:45,647
by referencing the node JS project.

995
00:50:45,877 --> 00:50:49,407
Generally as something that they
did and you know, who did not start

996
00:50:49,587 --> 00:50:52,007
or maintain node js is Oracle.

997
00:50:52,187 --> 00:50:57,887
So like basically they filed a just
wildly inaccurate claim supporting that.

998
00:50:57,887 --> 00:50:59,487
They do in fact use JavaScripts.

999
00:51:00,032 --> 00:51:01,772
So that unfortunately was dismissed.

1000
00:51:01,772 --> 00:51:06,092
The fraud claim was dismissed, which seems
strange to me because like if you say I

1001
00:51:06,092 --> 00:51:08,052
made this and you didn't, seems wrong.

1002
00:51:08,512 --> 00:51:12,252
But anyway, that's really the
only major update here, but

1003
00:51:12,252 --> 00:51:14,092
hopefully we will hear more.

1004
00:51:14,092 --> 00:51:15,372
Hopefully this will go
in a good direction.

1005
00:51:15,812 --> 00:51:19,892
I am not super confident of that,
but August and September have some

1006
00:51:19,892 --> 00:51:22,692
major court dates, so maybe there
will be more updates later this year.

1007
00:51:23,247 --> 00:51:27,572
There's also an update from
CloudFlare on AI crawlers.

1008
00:51:27,682 --> 00:51:30,092
They have declared
content independence stay.

1009
00:51:30,352 --> 00:51:34,372
No AI crawl without compensation,
which seems lovely, Cloudflare's in a

1010
00:51:34,372 --> 00:51:39,932
pretty good position to meaningfully
control traffic in that kind of a way.

1011
00:51:40,482 --> 00:51:44,372
Lots of real services are using
CloudFlare for that purpose.

1012
00:51:45,172 --> 00:51:46,032
So, yeah, seems good.

1013
00:51:46,102 --> 00:51:50,952
I've heard a couple of anecdotes of
people with smaller services getting

1014
00:51:51,592 --> 00:51:56,632
absolutely slammed with traffic from,
you know, poorly coded AI supporting

1015
00:51:56,632 --> 00:52:01,752
crawlers, trying to gather information
and doing it just greedily or excessively.

1016
00:52:01,932 --> 00:52:02,832
So, seems good.

1017
00:52:02,842 --> 00:52:03,432
Seems nice.

1018
00:52:04,147 --> 00:52:05,607
Mark: All right, and last couple items.

1019
00:52:06,347 --> 00:52:11,327
The folks at Meta have been working way on
static Hermes, which is an attempt to take

1020
00:52:11,347 --> 00:52:16,647
the existing Hermes JavaScript engine for
React Native and be able to pre-compiled

1021
00:52:16,867 --> 00:52:19,647
entire JavaScript apps to a native binary.

1022
00:52:20,387 --> 00:52:23,127
And they put up a tweet with some.

1023
00:52:23,412 --> 00:52:27,822
Performance numbers comparing
static hermes's output versus a

1024
00:52:27,822 --> 00:52:29,382
couple of other JavaScript runtimes.

1025
00:52:29,722 --> 00:52:34,102
The numbers seem higher,
which seems like a good thing.

1026
00:52:34,642 --> 00:52:38,102
And they also mentioned that they think
they will have a release available,

1027
00:52:38,352 --> 00:52:42,262
quote unquote soon, and that they
are using it internally at meta.

1028
00:52:43,012 --> 00:52:45,832
So, you know, that seems like
another potentially useful

1029
00:52:45,832 --> 00:52:47,072
tool to have in the ecosystem.

1030
00:52:47,262 --> 00:52:51,392
Finally, the folks behind the
various state of surveys have

1031
00:52:51,392 --> 00:52:54,112
put out the state of HTML survey.

1032
00:52:54,412 --> 00:52:55,192
So that's open.

1033
00:52:55,292 --> 00:52:58,272
You can fill it out, test out your
knowledge, answer some questions

1034
00:52:58,272 --> 00:53:02,352
about what various new H TM L features
you may or may not be familiar

1035
00:53:02,352 --> 00:53:03,672
with and what you think about them.

1036
00:53:04,032 --> 00:53:04,832
Mo: I did not know them.

1037
00:53:04,962 --> 00:53:06,232
State of HTML.

1038
00:53:06,502 --> 00:53:07,072
Very interesting.

1039
00:53:07,072 --> 00:53:08,712
Carl: Yeah, I think they started
like two or three years ago.

1040
00:53:08,742 --> 00:53:09,712
It's relatively newer.

1041
00:53:10,232 --> 00:53:11,192
I mean, the state of.

1042
00:53:12,232 --> 00:53:14,712
X has really exploded in
the last couple of years.

1043
00:53:14,822 --> 00:53:15,272
It's great.

1044
00:53:15,432 --> 00:53:15,952
I love that.

1045
00:53:16,172 --> 00:53:19,392
But I do worry about like survey
fatigue and a lot of these are

1046
00:53:19,392 --> 00:53:23,032
trying to solicit answers from
the same population of developers.

1047
00:53:23,132 --> 00:53:24,672
So I don't know, maybe, maybe.

1048
00:53:24,722 --> 00:53:26,192
We'll, we'll see how that plays out.

1049
00:53:26,462 --> 00:53:26,752
Cool.

1050
00:53:26,752 --> 00:53:28,992
Alright, before we close out,
let's, uh, talk about some

1051
00:53:28,992 --> 00:53:35,392
coming  like four days, there's
Big Sky devcon in Bozeman, Montana.

1052
00:53:36,032 --> 00:53:36,862
Seems good.

1053
00:53:37,042 --> 00:53:40,582
Kansas City Developer
Conference, which is not KCD.

1054
00:53:40,932 --> 00:53:44,902
It's KCDC, but it's not Ken C
dos that's happening August 13th

1055
00:53:44,902 --> 00:53:46,822
and 14th in Kansas City, Kansas.

1056
00:53:47,442 --> 00:53:52,722
We also have React Universe September
2nd through fourth in Wroclaw

1057
00:53:52,892 --> 00:53:55,182
Mo: I've been there enough times where
I've been taught the pronunciation because

1058
00:53:55,502 --> 00:53:56,942
butchered it several times, but it's,

1059
00:53:57,842 --> 00:54:03,462
Carl: uh, we've also got Ways Conf coming
up September 16th and 17th in Krakow.

1060
00:54:04,102 --> 00:54:06,202
I'm also probably butchering,
but also in Poland.

1061
00:54:06,442 --> 00:54:10,082
Cascadia js is September 18th,
19th in Seattle, Washington.

1062
00:54:10,582 --> 00:54:14,482
And we've got Squi Squiggle conf
in Boston, September 17th and

1063
00:54:14,642 --> 00:54:17,562
18th, which should be great and
I should be there, I believe.

1064
00:54:17,782 --> 00:54:22,242
And of course, react Conf October
7th and 8th in Las Vegas, Nevada.

1065
00:54:22,682 --> 00:54:28,142
I also just heard about Remix Jam,
happening October 10th in Toronto, Canada.

1066
00:54:28,772 --> 00:54:29,662
Yeah, that's new.

1067
00:54:29,982 --> 00:54:31,942
I don't know that they've
done a conference like that

1068
00:54:31,942 --> 00:54:33,062
before, so that's interesting.

1069
00:54:33,282 --> 00:54:34,822
But yeah, that's all we
got for you this month.

1070
00:54:34,922 --> 00:54:36,542
Thanks so much for joining us.

1071
00:54:36,842 --> 00:54:41,342
We will be back probably on the last
Wednesday of August, but we've been.

1072
00:54:42,282 --> 00:54:44,927
Jumping around the last few months,
but we'll be back in your podcast

1073
00:54:45,077 --> 00:54:46,207
feed just as soon as we can.

1074
00:54:46,627 --> 00:54:47,407
Mark: Always fun.

1075
00:54:47,707 --> 00:54:50,247
Way too much to keep track of, but
hopefully this has been useful.

1076
00:54:50,427 --> 00:54:52,967
Lovely to be with you all
and see you all next month.

1077
00:54:53,217 --> 00:54:53,567
Carl: Great.

1078
00:54:53,827 --> 00:54:58,327
We gather sources from this week in React
Bites, dev Next JS Weekly, the React JS

1079
00:54:58,327 --> 00:55:02,967
subreddit, and here in React to Flux from
the E, the Tech Reads and News Channel.

1080
00:55:03,587 --> 00:55:06,647
If you see something that you think we
should talk about, definitely Sheridan.

1081
00:55:07,292 --> 00:55:11,192
Channel or send it to me
at hello@reactiflux.com.

1082
00:55:11,362 --> 00:55:14,142
If this is a show that you get value from
and want to support, one of the best ways

1083
00:55:14,142 --> 00:55:18,582
you can do so is by submitting a review on
whatever platform you listen to it on, or

1084
00:55:18,582 --> 00:55:19,862
tell your friends and coworkers about it.

1085
00:55:19,862 --> 00:55:20,742
Thanks so much for listening.

1086
00:55:20,772 --> 00:55:21,302
Talk to you later.