1
00:00:00,000 --> 00:00:04,069
there's a group, and this is what I call
the Barefoot Developer Group, who really

2
00:00:04,069 --> 00:00:05,969
do want more agency over their computers.

3
00:00:05,969 --> 00:00:09,155
They're, like, currently using
Airtable and Notion and like

4
00:00:09,385 --> 00:00:12,285
spreadsheets and like doing really
crazy, complex things with them.

5
00:00:12,525 --> 00:00:14,305
But they also hit the
limits of these apps.

6
00:00:14,475 --> 00:00:16,615
And they keep being like, well, how
do I make it like do this thing?

7
00:00:16,615 --> 00:00:19,665
And I'm like, well, you can't, like this
other company controls that software.

8
00:00:19,715 --> 00:00:19,935
You can't.

9
00:00:20,705 --> 00:00:21,975
add that feature onto it.

10
00:00:22,412 --> 00:00:25,952
but these people, if given access to
a language model, and kind of taught

11
00:00:25,952 --> 00:00:28,802
how to prompt it in a way where they
can clearly ask for what they want,

12
00:00:29,142 --> 00:00:30,562
it can write the code for them.

13
00:00:30,936 --> 00:00:33,046
welcome to the Local First FM podcast.

14
00:00:33,236 --> 00:00:36,246
I'm your host, Johannes Schickling,
and I'm a web developer, a

15
00:00:36,246 --> 00:00:39,406
startup founder, and love the
craft of software engineering.

16
00:00:39,846 --> 00:00:43,666
For the past few years, I've been on a
journey to build a modern, high quality

17
00:00:43,666 --> 00:00:45,346
music app using web technologies.

18
00:00:45,816 --> 00:00:49,706
And in doing so, I've been falling down
the rabbit hole of local first software.

19
00:00:50,306 --> 00:00:53,146
This podcast is your invitation
to join me on that journey.

20
00:00:53,846 --> 00:00:58,076
In this episode, I'm speaking to Maggie
Appleton, a designer, anthropologist,

21
00:00:58,286 --> 00:01:02,236
and developer who's recently explored
the world of local first software

22
00:01:02,486 --> 00:01:05,876
by giving the closing keynote of
the first local first conference.

23
00:01:06,566 --> 00:01:11,056
In this conversation, we dive deep into
the topics of her talk, including home

24
00:01:11,056 --> 00:01:16,096
cooked software, the ideas behind barefoot
developers, and how AI complements

25
00:01:16,096 --> 00:01:17,616
local first software development.

26
00:01:17,920 --> 00:01:21,330
Before getting started, also a
big thank you to Rosicorp and

27
00:01:21,340 --> 00:01:23,020
Expo for supporting this podcast.

28
00:01:23,440 --> 00:01:25,310
And now my interview with Maggie.

29
00:01:26,228 --> 00:01:26,638
Cool.

30
00:01:26,718 --> 00:01:27,998
Hey, welcome, Maggie.

31
00:01:28,008 --> 00:01:30,608
Thank you so much for making
time today to come on the show.

32
00:01:30,618 --> 00:01:31,238
How are you doing?

33
00:01:31,586 --> 00:01:32,686
Hey, yeah, I'm really good.

34
00:01:32,726 --> 00:01:33,476
I'm excited to be here.

35
00:01:33,476 --> 00:01:34,516
Thank you so much for having me on.

36
00:01:35,206 --> 00:01:38,606
So for the few in the audience who
don't know yet who you are, would you

37
00:01:38,696 --> 00:01:40,296
mind briefly introducing yourself?

38
00:01:41,046 --> 00:01:41,276
Sure.

39
00:01:41,716 --> 00:01:45,246
Uh, I am a product designer
slash developer of some sort.

40
00:01:45,326 --> 00:01:47,066
and I've been working
in developer tooling.

41
00:01:47,346 --> 00:01:50,886
for I think my entire career at this
point, so pretty much 10 years, and I do

42
00:01:50,886 --> 00:01:55,196
a lot of work that's like doing designs
for development tools, but most recently

43
00:01:55,486 --> 00:01:58,456
I was a designer at a company called
Elicit where we were using language

44
00:01:58,476 --> 00:02:02,646
models to make software for scientists
and researchers, so that dropped me into

45
00:02:02,646 --> 00:02:05,426
the world of language models and AI and
machine learning, so I've been thinking

46
00:02:05,426 --> 00:02:06,926
a lot about that for the past two years.

47
00:02:07,421 --> 00:02:08,101
Amazing.

48
00:02:08,241 --> 00:02:10,761
I want to give a little bit of
background since we just had

49
00:02:10,761 --> 00:02:13,961
the local-first conference in
Berlin a couple of weeks ago.

50
00:02:14,381 --> 00:02:18,601
And I've been getting in touch with
you, must have been at the beginning

51
00:02:18,601 --> 00:02:22,511
of this year and through some common
friends we've been introduced.

52
00:02:22,551 --> 00:02:26,771
And I was hoping to get you somehow
interested in speaking at the conference.

53
00:02:27,071 --> 00:02:32,491
And when you and I were on a Zoom call and
I've been suggesting this topic to you.

54
00:02:32,721 --> 00:02:38,371
You seem super polite, but you weren't
quite sure what you should say about

55
00:02:38,371 --> 00:02:41,451
local-first since you haven't really
been building something with local-first.

56
00:02:41,791 --> 00:02:46,371
And now a few weeks later, you
got back to me, said, okay,

57
00:02:46,381 --> 00:02:47,801
you're, you're down to do it.

58
00:02:48,071 --> 00:02:52,961
And you've delivered the closing
keynote and I think it was hands down

59
00:02:52,991 --> 00:02:57,131
by most people, their favorite talk
of the day and really blew me away.

60
00:02:57,535 --> 00:03:02,165
so we want to go into the talk,
momentarily, but maybe starting

61
00:03:02,165 --> 00:03:05,495
first, like what convinced you
to do the talk and what has since

62
00:03:05,735 --> 00:03:07,585
seemingly local-first pilled you?

63
00:03:08,365 --> 00:03:12,330
Yeah, um, So yeah, when you first
reached out, I mean, I had heard of

64
00:03:12,330 --> 00:03:15,540
what, I had heard of local-first,
mostly from Ink And Switch's famous

65
00:03:15,580 --> 00:03:19,570
essay, like, I follow a lot of Ink And
Switch's research, and I had read it,

66
00:03:19,580 --> 00:03:22,680
but at the time was like, okay, this
has a lot to do with databases, and I,

67
00:03:22,690 --> 00:03:26,240
I like, I do front end web development,
so I know nothing about back end.

68
00:03:26,510 --> 00:03:30,050
I hadn't even thought to look into it,
or it just never appealed to me, because

69
00:03:30,610 --> 00:03:34,200
Most of my motivation for development
is often, like, I want to make a

70
00:03:34,200 --> 00:03:37,440
cool thing animate on, a screen, or,
like, I want to see, something move.

71
00:03:37,440 --> 00:03:40,000
I like the reactivity, but, you
know, I'm, like, JavaScript.

72
00:03:40,560 --> 00:03:43,550
so I'd never thought of backend
as an interesting area or really

73
00:03:43,580 --> 00:03:46,280
understood, like, why I would
want to be interested in it.

74
00:03:46,670 --> 00:03:48,890
so I'd read the essay, been
like, cool, that's not my thing.

75
00:03:48,890 --> 00:03:50,170
I'm not one of these backend people.

76
00:03:50,935 --> 00:03:53,305
Um, so when you reached out, I
had to go Googling again and be

77
00:03:53,305 --> 00:03:54,785
like, what, what is local-first?

78
00:03:54,805 --> 00:03:56,275
Like, what is this concept?

79
00:03:56,275 --> 00:03:57,705
Like, why would I care?

80
00:03:57,965 --> 00:04:01,825
because I was compelled by a lot of
the people who I saw, were going to

81
00:04:01,825 --> 00:04:05,475
go to this event, or were involved
in the local-first community, were

82
00:04:05,475 --> 00:04:08,325
people who I knew were working on
really interesting stuff and who had

83
00:04:08,335 --> 00:04:12,315
really interesting original thoughts
about ways we should build software.

84
00:04:12,695 --> 00:04:14,875
Not just from a technological
perspective, but from like a

85
00:04:14,875 --> 00:04:16,415
cultural, social perspective.

86
00:04:16,770 --> 00:04:20,390
Which is really the thing I love, is
thinking about, like, who's building these

87
00:04:20,390 --> 00:04:24,200
tools, who are they building them for,
what are their implications in society,

88
00:04:24,420 --> 00:04:28,260
like, how does this affect equality and
economics and, like, everything else

89
00:04:28,260 --> 00:04:30,610
that is not just, like, what code are
we writing and, like, you know, how

90
00:04:30,610 --> 00:04:32,770
do we architect the app kind of stuff.

91
00:04:33,330 --> 00:04:36,720
so once he reached out and I started
googling and thinking about it, I saw this

92
00:04:36,740 --> 00:04:38,980
connection in things that I care about.

93
00:04:39,285 --> 00:04:41,685
with things that I saw that the
local-first community cared about,

94
00:04:41,685 --> 00:04:44,875
which is things like data ownership,
people being able to kind of own

95
00:04:44,875 --> 00:04:46,325
and control their own software.

96
00:04:46,645 --> 00:04:51,005
and things working offline for me is, it's
quite important in like a very sort of

97
00:04:51,005 --> 00:04:55,755
banal personal way in that, like I spend a
lot of time on the tube, like doing stuff

98
00:04:55,755 --> 00:04:59,165
on my phone where there's no wifi, like
a lot of time on the tube and a lot of

99
00:04:59,165 --> 00:05:00,905
time in airplanes where there's no wifi.

100
00:05:00,915 --> 00:05:06,880
So just personally, I like need a lot of
stuff to work offline first and, and I

101
00:05:06,890 --> 00:05:10,530
had also an understanding that in a lot
of the world there's very limited internet

102
00:05:10,530 --> 00:05:13,920
connection or it's very slow, like the
vast majority of people like might not

103
00:05:13,930 --> 00:05:18,510
have constant stable fast internet access
all the time, and I hate the idea that

104
00:05:18,510 --> 00:05:22,080
we're always designing for a context
where we do have that, and so we assume

105
00:05:22,080 --> 00:05:25,225
that everyone does, but this is like,
like, Gets into the inequality stuff

106
00:05:25,245 --> 00:05:27,855
and the like, you know, designing for
everyone in the world, you need to have

107
00:05:27,855 --> 00:05:32,355
different systems than if you're designing
on a 16 inch MacBook in San Francisco.

108
00:05:32,721 --> 00:05:33,451
Yeah, totally.

109
00:05:33,491 --> 00:05:36,571
I've lived briefly for a
year or so in London as well.

110
00:05:36,601 --> 00:05:40,498
And I do remember that I think
you had some connectivity, at

111
00:05:40,508 --> 00:05:42,828
stations, but maybe not in between.

112
00:05:43,298 --> 00:05:46,488
And sometimes you're also like, as
you're leaving this, the station,

113
00:05:46,528 --> 00:05:50,738
your device thinks, Oh, I have some
connectivity and it tries to do

114
00:05:50,738 --> 00:05:53,258
stuff, but this is actually the worst.

115
00:05:53,268 --> 00:05:58,978
So I feel like a lot of software works
more reliably on a plane where usually

116
00:05:58,988 --> 00:06:04,228
you're just entirely offline, but on
a train, it's much more tricky because

117
00:06:04,238 --> 00:06:08,028
you have sort of this intermittent,
and unreliable connectivity.

118
00:06:08,348 --> 00:06:10,518
And I think this is where
software really struggles.

119
00:06:10,528 --> 00:06:12,488
So I know exactly what
you're talking about there.

120
00:06:13,058 --> 00:06:18,018
But as you were preparing for the talk,
how did you find sort of like the, the

121
00:06:18,038 --> 00:06:19,788
topic that you wanted to talk about?

122
00:06:20,121 --> 00:06:21,441
It was definitely quite hard.

123
00:06:21,461 --> 00:06:24,931
I mean, I liked this because right
when you kind of reached out and then

124
00:06:24,941 --> 00:06:27,161
I liked that you said, you know, you
can talk about whatever you want.

125
00:06:27,191 --> 00:06:29,351
I mean, it needs to be about
local-first, but like take

126
00:06:29,351 --> 00:06:30,431
whatever spin on it you want.

127
00:06:30,721 --> 00:06:34,411
That's really nice because I like that
kind of freedom in conference talks or

128
00:06:34,411 --> 00:06:37,541
doing any kind of research where I can
go, Okay, I'm going to think about the

129
00:06:37,541 --> 00:06:40,931
things that I think are interesting
trends that are unfolding or that

130
00:06:40,961 --> 00:06:42,671
are topics that I care a lot about.

131
00:06:42,841 --> 00:06:44,841
And I'll just find a way to like
weave them in because most of the

132
00:06:44,841 --> 00:06:46,401
time everything is interconnected.

133
00:06:46,421 --> 00:06:50,071
Like this is all one, you know, one
like software development philosophy

134
00:06:50,071 --> 00:06:51,261
that we're all trying to figure out.

135
00:06:51,665 --> 00:06:55,825
and it was once I figured out how that
local-first, I felt like had a strong

136
00:06:55,825 --> 00:07:00,105
connection to the world of, what, um,
Robin Sloan came up with this phrase

137
00:07:00,105 --> 00:07:03,285
called home cooked apps or home cooked
software that I had been collecting

138
00:07:03,285 --> 00:07:06,775
information on for like a year at that
point, I have this note taking system.

139
00:07:06,775 --> 00:07:10,315
I will just like collect examples of
every single time I see someone building

140
00:07:10,315 --> 00:07:14,535
something that is just for them or just
for their family or just for their local

141
00:07:14,535 --> 00:07:18,155
neighborhood, this very like local,
you know, just for me and my people,

142
00:07:18,155 --> 00:07:22,025
not meant to scale, never going to be
a VC startup, just like I'm solving

143
00:07:22,025 --> 00:07:23,595
my own problems kind of software.

144
00:07:24,575 --> 00:07:26,245
I'd written essays on this before.

145
00:07:26,245 --> 00:07:30,365
Like I wrote one called folk interfaces
about people kind of like reusing existing

146
00:07:30,365 --> 00:07:32,085
interfaces to make these kinds of apps.

147
00:07:32,575 --> 00:07:36,085
So I had a ton of content and a
lot of thoughts on this topic.

148
00:07:36,325 --> 00:07:39,405
And it was when I looked at it and
I was like, Oh, like local software.

149
00:07:39,405 --> 00:07:43,395
If you take that like at face value,
that is like local to me, my family, my

150
00:07:43,395 --> 00:07:47,585
community, my neighborhood, my country,
whatever it is like near and close to me.

151
00:07:47,895 --> 00:07:50,515
it might also mean the data lives
on my device and the way that we

152
00:07:50,525 --> 00:07:52,405
use it in local-first software.

153
00:07:52,615 --> 00:07:54,905
But I realized there was like, Oh,
there's this interesting interplay

154
00:07:54,905 --> 00:07:59,195
where we can say local as in data or
local as in culture and community.

155
00:07:59,555 --> 00:08:01,995
And once I figured out that connection,
I went, Oh, this totally can work.

156
00:08:01,995 --> 00:08:05,215
Like I can build an argument
around this, that actually connects

157
00:08:05,215 --> 00:08:06,795
these two together and can make.

158
00:08:07,310 --> 00:08:11,150
a bit of a, an ask to the local-first
community to also care about this other

159
00:08:11,160 --> 00:08:12,560
version of local that I care about.

160
00:08:12,946 --> 00:08:17,256
So you didn't just go for software
for yourself and like your local

161
00:08:17,256 --> 00:08:23,856
context, but you found a way to pose
the question in a much more globally

162
00:08:23,886 --> 00:08:29,226
impactful way by, I'm not sure, I think
you introduced and like you came up

163
00:08:29,226 --> 00:08:33,656
with a new concept with a new term that
you call like the Barefoot Developer.

164
00:08:33,966 --> 00:08:38,726
And put that into perspective and into
context with local-first software, home

165
00:08:38,726 --> 00:08:43,126
cooked software, would you, for, for
those in the audience who haven't seen

166
00:08:43,126 --> 00:08:47,896
your talk yet, highly, highly recommend
watching the talk also, like not just

167
00:08:47,896 --> 00:08:49,376
hearing the talk, but watching it.

168
00:08:49,636 --> 00:08:55,835
You've, as a designer, I think there's no
one out there who's able to as a visually

169
00:08:55,865 --> 00:09:00,731
compelling and clear way, find visual
narratives that makes this even clearer.

170
00:09:00,731 --> 00:09:04,921
So I highly recommend watching the
talk, but would you mind briefly

171
00:09:04,961 --> 00:09:06,901
giving the idea of the talk?

172
00:09:07,265 --> 00:09:07,515
Sure.

173
00:09:07,845 --> 00:09:11,025
Um, so yeah, I came up with this
concept called Barefoot Developers.

174
00:09:11,325 --> 00:09:14,795
and this, name comes from the
concept of barefoot doctors,

175
00:09:14,795 --> 00:09:18,875
which was this initiative in
Maoist China in the 1950s and 60s.

176
00:09:19,705 --> 00:09:22,715
It was not actually run by Mao,
you know, he's a bad person, etc.

177
00:09:22,755 --> 00:09:25,785
But like, probably someone else
in his cabinet who was very smart

178
00:09:26,075 --> 00:09:28,355
started this movement of barefoot
doctors where they would take

179
00:09:28,355 --> 00:09:29,835
people from very rural villages.

180
00:09:29,875 --> 00:09:33,225
And this was at a time where
there was very low health

181
00:09:33,225 --> 00:09:34,755
care access in rural China.

182
00:09:34,755 --> 00:09:36,055
There's just tons of people spread out.

183
00:09:36,300 --> 00:09:38,450
There's not a lot of expertise
in these local places.

184
00:09:38,740 --> 00:09:41,900
And they would pick, like, one person
from each village, bring them into

185
00:09:41,930 --> 00:09:44,720
the cities, and train them up in,
kind of, basic medical healthcare

186
00:09:44,720 --> 00:09:46,940
practices, like, immunization, right?

187
00:09:46,940 --> 00:09:49,970
Like, treating basic ailments,
just, like, giving people

188
00:09:49,970 --> 00:09:51,310
nutrients, and this kind of thing.

189
00:09:51,620 --> 00:09:53,730
And then send them back to their
villages, where they are, like,

190
00:09:53,760 --> 00:09:56,340
local, everyone trusts them, everyone
knows them, and then they provide

191
00:09:56,340 --> 00:09:58,750
healthcare for the people around them.

192
00:09:59,325 --> 00:10:00,455
And this worked really well.

193
00:10:00,685 --> 00:10:04,855
It, like, raised life expectancy a
ton, and the whole philosophy of it

194
00:10:04,855 --> 00:10:08,865
was, like, we're taking, the power,
not away from, but we're distributing

195
00:10:08,865 --> 00:10:11,625
the power from these, like, very urban
centers where they have all the medical

196
00:10:11,625 --> 00:10:15,905
expertise out to everyone, out to all
these very rural, poor villagers who

197
00:10:15,935 --> 00:10:19,065
now can have a better quality of life
because we're giving them access to,

198
00:10:19,125 --> 00:10:22,635
to proper health care in a sustainable
way, this is kind of a famous project.

199
00:10:22,955 --> 00:10:25,335
And people ended up using
this phrase of barefoot.

200
00:10:25,465 --> 00:10:27,805
Insert your profession here
in a number of different ways.

201
00:10:27,805 --> 00:10:30,765
There's like barefoot designers,
there's barefoot architects, and

202
00:10:30,765 --> 00:10:35,645
the whole philosophy is redistribute
the power away from the urban elite

203
00:10:35,675 --> 00:10:37,925
and into like the rural masses.

204
00:10:38,465 --> 00:10:41,525
So, People advocate for this in all
kinds of ways, but I kind of looked

205
00:10:41,525 --> 00:10:44,505
around and was like, no one's advocated
for this in development so far.

206
00:10:44,785 --> 00:10:48,505
And it's the same philosophy as end user
programming, as the other word we would

207
00:10:48,535 --> 00:10:53,975
usually use for this philosophy, is like,
normal people should be able to program

208
00:10:54,045 --> 00:10:57,675
and have agency over their computers
to the same degree that programmers do.

209
00:10:58,705 --> 00:11:03,785
Now, In reality, we know that's really,
that's a hard, like, difficult ask, right?

210
00:11:04,085 --> 00:11:06,505
As programmers, we deal with
all this, like, complexity.

211
00:11:06,505 --> 00:11:07,725
There's a reason it's a profession.

212
00:11:07,735 --> 00:11:09,675
There's a reason it's a
highly paid profession.

213
00:11:09,955 --> 00:11:14,125
There's a reason that not many people,
like, have enough skills and knowledge

214
00:11:14,125 --> 00:11:15,295
to do it at a really high level.

215
00:11:15,295 --> 00:11:16,775
It's just, it's incredibly hard, right?

216
00:11:16,965 --> 00:11:18,275
Computers are super complex.

217
00:11:18,635 --> 00:11:19,515
It's all these edge cases.

218
00:11:19,515 --> 00:11:19,915
We know it.

219
00:11:19,915 --> 00:11:23,685
Just like layers of complexity, just 60,
000 layers of complexity in every app.

220
00:11:24,175 --> 00:11:26,205
Like we are struggling to
make the apps work well, let

221
00:11:26,205 --> 00:11:28,540
alone some end user doing it.

222
00:11:28,960 --> 00:11:31,750
but the argument is, you know, maybe
they don't have to be able to build

223
00:11:31,820 --> 00:11:36,040
Facebook by themselves, but surely
they could build some software, some

224
00:11:36,040 --> 00:11:40,870
programs that serve their needs, that
solve their problems in a way that no

225
00:11:40,890 --> 00:11:45,030
giant VC funded corporation in California
ever would or would ever think to,

226
00:11:45,070 --> 00:11:49,770
because people who are far away in very
rich urban areas don't understand the

227
00:11:49,780 --> 00:11:52,910
problems of people all around the world
in all kinds of different communities.

228
00:11:53,350 --> 00:11:57,620
And probably shouldn't try because
it's usually quite, uh, I don't know,

229
00:11:57,640 --> 00:11:59,160
like colonialist in a certain way.

230
00:11:59,160 --> 00:11:59,350
Right.

231
00:11:59,350 --> 00:12:02,285
Trying to say like, Hey, you know,
whatever it is, a street seller in

232
00:12:02,285 --> 00:12:04,125
Turkey or like a homemaker in Tokyo.

233
00:12:04,405 --> 00:12:07,725
Some like bro, California, VC guy
shouldn't be trying to solve their

234
00:12:07,735 --> 00:12:10,675
problems because he can't, he can't,
there's not enough Zoom interviews that

235
00:12:10,675 --> 00:12:13,595
are going to give him the context to
solve their problems well, and they

236
00:12:13,595 --> 00:12:17,185
should have the power and the tools and
the agency to solve their own problems.

237
00:12:17,715 --> 00:12:20,785
, and you know, sure in the areas of
design and architecture and healthcare,

238
00:12:20,785 --> 00:12:23,905
but also software, computers are part
of everyone's lives and they should

239
00:12:23,915 --> 00:12:25,815
have more agency and control over them.

240
00:12:26,405 --> 00:12:29,445
So, sorry, that was the long version,
but like, that is, that is the concept

241
00:12:29,445 --> 00:12:33,715
of Barefoot Developers are, people
who are part of local communities who

242
00:12:33,735 --> 00:12:37,115
have enough programming knowledge and
skills to build software for their

243
00:12:37,115 --> 00:12:38,585
communities and solve problems for them.

244
00:12:38,905 --> 00:12:39,985
It's not everyone, right?

245
00:12:39,985 --> 00:12:42,355
Like, not everyone, like, nurses
and teachers and whatever,

246
00:12:42,655 --> 00:12:43,855
don't need to learn to program.

247
00:12:44,095 --> 00:12:47,555
But if you can have one person, like,
who's in their neighborhood or in their

248
00:12:47,555 --> 00:12:51,665
school who can, then you get that person
to build all the software for them.

249
00:12:52,091 --> 00:12:56,541
I love that idea and, uh, I agree
that this is thoroughly needed.

250
00:12:56,911 --> 00:13:03,381
and I think most software that we use on
a daily basis is , by a super wide margin

251
00:13:03,671 --> 00:13:10,781
built by folks in San Francisco or New
York or like in some like Western hub.

252
00:13:11,211 --> 00:13:14,671
but this is where not everyone
in the world is living.

253
00:13:14,711 --> 00:13:17,741
And so if you're just also
look, looking at the density.

254
00:13:17,978 --> 00:13:22,514
and distribution of datacenters If
you're looking into the global south,

255
00:13:22,744 --> 00:13:27,154
you don't have, nearly, nearly, uh,
as many data centers, et cetera.

256
00:13:27,154 --> 00:13:29,944
And you can only think about
like how poorly the Western

257
00:13:29,944 --> 00:13:32,234
made software is running there.

258
00:13:32,264 --> 00:13:32,884
But we could.

259
00:13:33,419 --> 00:13:36,489
from a technological perspective,
built as an entirely different way.

260
00:13:36,889 --> 00:13:40,379
So this maybe leads to a
question I'm curious about.

261
00:13:40,663 --> 00:13:44,313
why hasn't the idea of a
barefoot developer, why hasn't

262
00:13:44,333 --> 00:13:46,503
that been a thing before?

263
00:13:46,513 --> 00:13:48,373
Why hasn't that existed before?

264
00:13:48,413 --> 00:13:50,843
And why can't this change now?

265
00:13:51,283 --> 00:13:52,103
See, it's interesting.

266
00:13:52,113 --> 00:13:56,173
I think, it probably did exist before
in the earlier days of computing.

267
00:13:56,473 --> 00:14:00,443
When, in a way, like, before GUIs, and
before, like, we got all the complexity,

268
00:14:00,533 --> 00:14:03,833
all the wonderful complexity of, like,
the web, and, like, more sophisticated,

269
00:14:03,833 --> 00:14:08,233
more complex software engineering stacks,
right, before we all had, like, Node and

270
00:14:08,233 --> 00:14:12,603
NPM, like, I don't know, just backends,
and just, we were able to build much

271
00:14:12,623 --> 00:14:17,583
more impressive stuff in, like, the
maturity and rise of personal computing

272
00:14:17,583 --> 00:14:21,303
and software, but it did mean that it
became such a highly specialized, complex,

273
00:14:21,303 --> 00:14:25,328
professionalized, thing, versus I think
in like, let's try to figure out if these

274
00:14:25,348 --> 00:14:28,658
are the right years, but the 80s to 90s
when it was still the command line, like a

275
00:14:28,658 --> 00:14:31,988
lot of people could build their own little
things in like Linux, or just like little

276
00:14:31,988 --> 00:14:35,448
command line scripts, it was probably a
lot more accessible that if you did on a

277
00:14:35,458 --> 00:14:39,253
computer, you probably knew how to program
it versus now, that's not true at all.

278
00:14:39,753 --> 00:14:42,543
so, and even I think in the early
days of the web, like, you know when

279
00:14:42,543 --> 00:14:43,883
WordPress was still the hot thing?

280
00:14:43,883 --> 00:14:46,843
I mean, it is still the vast majority
of the web is WordPress, right?

281
00:14:46,983 --> 00:14:48,533
Still, vast majority of websites.

282
00:14:49,073 --> 00:14:51,993
But I think early on, it was like, you
could just kind of get in there and like,

283
00:14:52,013 --> 00:14:56,323
tinker on your own site in a way that
now feels a lot more inaccessible, like

284
00:14:56,323 --> 00:14:59,273
now that we have, like, bigger build
chains, right, and all these frameworks.

285
00:14:59,873 --> 00:15:03,283
It feels a little bit illegitimate
to just, like, spin up a WordPress

286
00:15:03,283 --> 00:15:04,553
site to try to build an app.

287
00:15:04,573 --> 00:15:07,993
You're probably going to reach for
React if you know what you're doing.

288
00:15:08,443 --> 00:15:11,493
I mean, you should just reach for,
like, HTML and CSS, sure, like,

289
00:15:11,523 --> 00:15:13,253
but most of us reach for React.

290
00:15:13,643 --> 00:15:17,683
in a way that if you're just, like, a,
you know, someone in your neighborhood

291
00:15:17,693 --> 00:15:20,653
trying to build something, like, set up
a community newsletter or, like, help

292
00:15:20,883 --> 00:15:22,733
build some script for your local library.

293
00:15:23,123 --> 00:15:26,123
you probably don't know what tools
to use or like how to use them well.

294
00:15:26,123 --> 00:15:28,963
You probably are like just using
something like Airtable or Notion,

295
00:15:29,153 --> 00:15:32,283
which is great, but you don't really
have the same agency and power as

296
00:15:32,293 --> 00:15:33,623
someone writing command line scripts.

297
00:15:34,478 --> 00:15:38,258
So, I have some sense that we had more
of this earlier on in computing, and

298
00:15:38,268 --> 00:15:41,618
as it's gotten more complex, it's like
we, maybe we're on like a little bit

299
00:15:41,618 --> 00:15:44,338
of a curve where it needs to come back
down the other side of complexity, or

300
00:15:44,338 --> 00:15:48,438
we need to build tools that simplify
it for people to be able to build their

301
00:15:48,438 --> 00:15:52,598
own software, but we're in some, what I
call like the high modernism industrial

302
00:15:52,608 --> 00:15:56,028
phase, where everything's done in these
like big centralized hubs and it's not

303
00:15:56,038 --> 00:15:58,778
distributed across everyone's tool set.

304
00:15:59,358 --> 00:15:59,768
Yeah.

305
00:15:59,788 --> 00:16:04,588
So just from the perspective of a
software developer, I can think of so

306
00:16:04,588 --> 00:16:09,378
many use cases where I would love to
build a little tool for myself, but with

307
00:16:09,388 --> 00:16:14,298
the stacks  that we have available for
the last 10 years or so, there's like,

308
00:16:14,718 --> 00:16:18,968
Just my mind is typically approaching
it the same way as like how I would

309
00:16:18,978 --> 00:16:22,008
build a software product for a startup.

310
00:16:22,438 --> 00:16:24,178
And that is like way overkill.

311
00:16:24,178 --> 00:16:27,868
There's like so many layers of
complexity that by now we're just

312
00:16:27,878 --> 00:16:32,518
used to, like there's like the hammer
that we're used to using, that it

313
00:16:32,528 --> 00:16:35,078
sort of like kills the entire idea.

314
00:16:35,328 --> 00:16:38,738
In the initial phase where I
don't even get to build it because

315
00:16:38,738 --> 00:16:42,198
I already know like, Oh, I've,
but I know all the implications.

316
00:16:42,228 --> 00:16:43,328
I need to build this.

317
00:16:43,328 --> 00:16:44,488
I need to deploy that.

318
00:16:44,528 --> 00:16:49,238
And like, if that thing changes, then,
this will ruin all my weekends to come.

319
00:16:49,578 --> 00:16:52,868
So we, we have like
done so much innovation.

320
00:16:53,093 --> 00:16:58,023
That, was always adding more
functionality, cooler stuff, but it always

321
00:16:58,023 --> 00:17:03,773
came at the price of complexity, just
like layering on and like compounding.

322
00:17:04,113 --> 00:17:09,393
And I think where I see local-first
enabling this age of the barefoot

323
00:17:09,393 --> 00:17:16,633
developer is by bringing down the, the
complexity in a massive way that you can,

324
00:17:16,643 --> 00:17:22,163
with a much simpler technology stack build
very interesting things that don't need to

325
00:17:22,163 --> 00:17:25,333
scale to Mark Zuckerberg Facebook scale.

326
00:17:25,713 --> 00:17:30,743
but if it works for your family and
you build it when you want it, and

327
00:17:30,763 --> 00:17:34,433
then you don't really, it doesn't
break constantly because you depend

328
00:17:34,433 --> 00:17:37,033
on all so many other external things.

329
00:17:37,313 --> 00:17:42,409
I think not just for, use cases that
I can't think about, but just for, for

330
00:17:42,409 --> 00:17:48,139
my own personal context in a, my family
stuff that I might as a Barefoot developer

331
00:17:48,169 --> 00:17:52,799
build for my friends and extended
family, but also what other people in

332
00:17:52,859 --> 00:17:54,639
extended parts of the world can build.

333
00:17:54,999 --> 00:17:59,799
I think this is what's changing now
that the complexity is coming massively.

334
00:18:00,639 --> 00:18:04,769
But there's another thing happening
now that you've also, built in as

335
00:18:04,769 --> 00:18:09,229
sort of the second layer of your
talk, which is AI is happening now.

336
00:18:09,649 --> 00:18:14,679
so it seems like that is also a
fundamental aspect that's also ushering

337
00:18:14,689 --> 00:18:17,109
in a new era of end user programming.

338
00:18:17,329 --> 00:18:22,486
So maybe we briefly shift gears a
little bit and, talk about that aspect.

339
00:18:22,876 --> 00:18:26,686
Yeah, so this was kind of, like, the
big claim I tried to make in the talk,

340
00:18:26,736 --> 00:18:29,746
which I do believe, but it's definitely
a claim that, like, needs a lot of

341
00:18:29,776 --> 00:18:31,526
evidence and a lot of, like, questioning.

342
00:18:31,546 --> 00:18:34,926
But at the moment, I think I'm still
pretty firmly in this camp, where

343
00:18:34,926 --> 00:18:39,016
I genuinely believe language models
make a significant difference to end

344
00:18:39,016 --> 00:18:40,566
user programming being more possible.

345
00:18:41,026 --> 00:18:44,646
when language models first started getting
popular, and, like, we realized they were

346
00:18:44,646 --> 00:18:47,946
really good at code assistance, like,
They're questionably good at other things.

347
00:18:47,946 --> 00:18:50,626
I'm not going to say that they generate,
like, useful articles for the web.

348
00:18:50,626 --> 00:18:51,526
I don't believe they do.

349
00:18:52,046 --> 00:18:56,476
But for code assistants, it's like,
anyone who uses Copilot regularly, or

350
00:18:56,476 --> 00:18:59,576
Curso, or any of these other assistants,
I think you would have to be crazy to

351
00:18:59,576 --> 00:19:03,906
claim that they are not, like, speeding
you up, like, helping you debug things.

352
00:19:04,096 --> 00:19:06,436
I know a lot of senior developers
are like, well, I could just do that.

353
00:19:06,661 --> 00:19:07,131
myself.

354
00:19:07,131 --> 00:19:08,721
And it's like, well, yes,
you are a senior developer.

355
00:19:08,721 --> 00:19:11,131
you understand the bugs
in the way that I do not.

356
00:19:11,421 --> 00:19:14,221
like, I've started to joke, I'm
kind of a mediocre developer without

357
00:19:14,221 --> 00:19:16,971
language models, but with them,
I'm, like, almost a full developer.

358
00:19:17,101 --> 00:19:21,501
I'm, like, actually, I can pretty
much do anything you assign me to.

359
00:19:21,561 --> 00:19:24,261
Like, in the world of front end, like, a
little bit of making, you know, back end

360
00:19:24,261 --> 00:19:28,838
calls, but, like, it just, it just knows,
you know, I just ask what I want it to do.

361
00:19:29,193 --> 00:19:30,753
And it pretty much gives me working code.

362
00:19:30,763 --> 00:19:34,733
Sometimes I do have to go in and debug it
or like, ask it to do revisions, but like,

363
00:19:35,033 --> 00:19:38,443
the amount it can do that I could not
do on my own is really just astonishing.

364
00:19:38,823 --> 00:19:42,733
it's very much a sort of
subjective, personal qualia.

365
00:19:43,833 --> 00:19:47,123
Everyone that I talk to, like, feels
this way, especially people who aren't

366
00:19:47,123 --> 00:19:50,573
great programmers, like more experienced
programmers are more skeptical, like,

367
00:19:50,573 --> 00:19:53,873
oh, this is causing more bugs, but
I don't know, if you're more on the

368
00:19:53,873 --> 00:19:56,863
junior end, you just feel like you've
just been given a superpower and you

369
00:19:56,863 --> 00:19:58,793
can like, make way more than you could.

370
00:19:59,273 --> 00:20:03,433
so this big claim is that like, not,
I'm not saying all normal people, right?

371
00:20:03,483 --> 00:20:07,233
As I said in my talk, there are a bunch
of normal people out in the world who just

372
00:20:07,233 --> 00:20:10,163
don't, they don't care about programming
and we shouldn't force them to.

373
00:20:10,203 --> 00:20:12,973
Like, I think there was this
moment where we were like, everyone

374
00:20:12,973 --> 00:20:14,093
needs to learn to code, right?

375
00:20:14,233 --> 00:20:17,333
Every nurse needs Every, like,
accountant, every teacher,

376
00:20:17,343 --> 00:20:18,513
you all have to learn to code.

377
00:20:18,533 --> 00:20:20,233
And they were like, well, we
don't want to learn to code, like,

378
00:20:20,233 --> 00:20:21,483
why are you making us do this?

379
00:20:21,823 --> 00:20:24,223
So I feel like we should just leave
people alone who don't want to code.

380
00:20:24,223 --> 00:20:26,753
Like, let them do their other very
important jobs in the world that

381
00:20:26,773 --> 00:20:27,883
have nothing to do with computers.

382
00:20:28,353 --> 00:20:31,119
but there's a group, and this is
what I call the Barefoot Developer

383
00:20:31,119 --> 00:20:34,489
Group, who really do want more
agency over their computers.

384
00:20:34,489 --> 00:20:38,149
They're, like, currently using
Airtable and Notion and like

385
00:20:38,379 --> 00:20:41,279
spreadsheets and like doing really
crazy, complex things with them.

386
00:20:41,519 --> 00:20:43,299
But they also hit the
limits of these apps.

387
00:20:43,469 --> 00:20:46,719
Like, I feel like I have a lot of friends
in this category who have a lot of

388
00:20:46,719 --> 00:20:50,179
software needs and the software doesn't
meet their needs and they keep being like,

389
00:20:50,179 --> 00:20:51,609
well, how do I make it like do this thing?

390
00:20:51,609 --> 00:20:54,659
And I'm like, well, you can't, like this
other company controls that software.

391
00:20:54,709 --> 00:20:54,929
You can't.

392
00:20:55,699 --> 00:20:56,969
add that feature onto it.

393
00:20:57,406 --> 00:21:00,946
but these people, if given access to
a language model, and kind of taught

394
00:21:00,946 --> 00:21:03,796
how to prompt it in a way where they
can clearly ask for what they want,

395
00:21:04,136 --> 00:21:05,556
it can write the code for them.

396
00:21:05,576 --> 00:21:07,336
It can build the app for them.

397
00:21:07,646 --> 00:21:10,576
If we, like, get the infrastructure
right, it could set up some kind of

398
00:21:10,886 --> 00:21:14,206
local-first database, ideally, but
some kind of database, put it on a

399
00:21:14,206 --> 00:21:20,093
URL, let, let people log in, store
data somewhere, let, you know, figure

400
00:21:20,093 --> 00:21:23,683
out a way where we can have language
models set up, the schema for them.

401
00:21:23,703 --> 00:21:26,543
It's like, It doesn't have to be
super complex stuff, it might just be

402
00:21:26,543 --> 00:21:30,133
something like, Hey, help me organize
a trip for 12 people for a week.

403
00:21:30,133 --> 00:21:33,743
Like, that involves a lot of logistics
and ops and planning, or like, you know,

404
00:21:33,753 --> 00:21:35,923
help me plan meal prep and groceries.

405
00:21:35,933 --> 00:21:38,233
There's a thousand apps for this, but
what if you could just prompt your

406
00:21:38,233 --> 00:21:41,623
own, tweak every single feature that
you wanted, like make it work just the

407
00:21:41,623 --> 00:21:42,583
way that you want the thing to work.

408
00:21:43,598 --> 00:21:46,818
These are not complex situations,
but tons of people have these basic

409
00:21:46,818 --> 00:21:50,548
needs and language models could
easily get them to working local

410
00:21:50,548 --> 00:21:51,758
apps that they own and control.

411
00:21:52,138 --> 00:21:52,468
Right.

412
00:21:52,478 --> 00:21:53,538
That makes a lot of sense.

413
00:21:53,538 --> 00:21:58,001
And I think this kind of puts it
nicely into two compounding steps.

414
00:21:58,201 --> 00:22:03,531
Step number one is even for more
experienced engineers like myself, Like

415
00:22:03,571 --> 00:22:08,501
even for me, it would be too much to
build all of like these ideas that I

416
00:22:08,511 --> 00:22:12,981
have in my mind, because I know like,
okay, this is easy enough to think about,

417
00:22:13,141 --> 00:22:17,121
but to build, you need to wrestle with
all of those layers of complexity that

418
00:22:17,121 --> 00:22:19,371
will just like drown you at some point.

419
00:22:19,641 --> 00:22:24,511
And this is where step one is local-first,
simplifies everything to the core again,

420
00:22:24,511 --> 00:22:29,206
that it becomes feasible, but it's
feasible, but you still need to have

421
00:22:29,226 --> 00:22:30,926
quite a bit of experience to build it.

422
00:22:31,166 --> 00:22:36,536
And now step number two is LLMs that
just bring down the barrier to entry

423
00:22:36,706 --> 00:22:40,526
by so much, by having someone who
knows what they want to build and

424
00:22:40,526 --> 00:22:44,206
having a little bit of an intuition,
how computers work, et cetera, and how

425
00:22:44,206 --> 00:22:49,051
to put those things together, who are
not afraid to get some autocomplete.

426
00:22:49,171 --> 00:22:53,201
Sure, I have no idea what it is, but let
me try and then, like, iterate from there.

427
00:22:53,521 --> 00:22:58,341
And this is the second part where LLMs
bring down the barrier to entry and now,

428
00:22:58,361 --> 00:23:00,831
like, make this possible on a wider scale.

429
00:23:00,841 --> 00:23:01,811
Did I get this correctly?

430
00:23:02,181 --> 00:23:03,311
Yeah, yeah, exactly.

431
00:23:03,521 --> 00:23:07,811
I think I should add on too that, I just,
I showed in my talk some demos from both

432
00:23:07,811 --> 00:23:11,111
Vercel's V0 and TLdraw drawing interface.

433
00:23:11,531 --> 00:23:14,521
Because as much as I was saying, you know,
of course you'll describe and text what

434
00:23:14,521 --> 00:23:18,326
you want, You can do that, but often it's
sometimes hard, or there's an ambiguity.

435
00:23:18,599 --> 00:23:24,129
but with TLdraw, and with, uh, B0 from
Vercel, you're drawing a visual interface.

436
00:23:24,209 --> 00:23:26,189
Like, in TLdraw, you can,
like, draw boxes, right?

437
00:23:26,189 --> 00:23:28,929
And you can, like, point to a button
and say, when I click this button,

438
00:23:28,929 --> 00:23:30,009
you know, increment this counter.

439
00:23:30,029 --> 00:23:32,769
And, like, when I click this button,
start a timer for three minutes.

440
00:23:32,809 --> 00:23:36,309
And you can just sketch out what
you want with these instructions.

441
00:23:36,659 --> 00:23:39,779
And then they have this make real button,
so you select what you're drawing.

442
00:23:40,159 --> 00:23:42,639
You click make real and
it makes the app for you.

443
00:23:42,639 --> 00:23:45,489
And like, it doesn't work a
hundred percent of the time, but

444
00:23:45,489 --> 00:23:48,069
like 90 percent and these models
are only going to get better.

445
00:23:48,119 --> 00:23:51,439
So we would hope if you get closer to a
hundred percent, it just builds exactly

446
00:23:51,439 --> 00:23:52,939
what you told it to build and it works.

447
00:23:52,949 --> 00:23:54,599
And it's like, it's on a URL.

448
00:23:54,619 --> 00:23:55,929
It's like, it's a real app.

449
00:23:55,949 --> 00:23:57,549
You can click it, all the things work.

450
00:23:57,979 --> 00:24:01,459
it's hard to look at that and still
be skeptical that we're not at some

451
00:24:01,459 --> 00:24:03,159
step change in end user programming.

452
00:24:04,009 --> 00:24:04,609
Definitely.

453
00:24:04,679 --> 00:24:09,735
and I think this is like this going
beyond the medium of auto completing

454
00:24:09,755 --> 00:24:14,065
code, but that you have like the modality
of like a visual modality where you

455
00:24:14,065 --> 00:24:20,145
can draw a napkin sketch and from that
napkin sketch, you have like some working

456
00:24:20,365 --> 00:24:25,385
React code that you now like  I feel
like the next step in the evolution of

457
00:24:25,385 --> 00:24:27,195
putting together all of those systems.

458
00:24:27,595 --> 00:24:33,325
It would be something like TLdraw,
make it real, but for your local-first

459
00:24:33,605 --> 00:24:37,885
data model that you basically describe
like your, your use cases, or you

460
00:24:37,885 --> 00:24:41,935
could even use your, your visual
sketches that you've made through

461
00:24:41,935 --> 00:24:47,040
TLdraw, feed it into an LLM and say
like, Hey, can you suggest to me Data

462
00:24:47,050 --> 00:24:49,340
stuff that I'll probably need for this.

463
00:24:49,700 --> 00:24:53,240
And it might spit out some code
or it might spit out like some,

464
00:24:53,280 --> 00:24:56,316
some other artifacts that you can
now use to iterate from there.

465
00:24:56,336 --> 00:24:59,846
So I think that multimodality
just brings down the barrier to

466
00:24:59,856 --> 00:25:04,306
entry even more, as well as making
experienced people more productive.

467
00:25:04,736 --> 00:25:09,846
So now it really clicks how the, that
answers the question of like, why now?

468
00:25:09,886 --> 00:25:13,076
Since I think the idea was
compelling before as well.

469
00:25:13,481 --> 00:25:18,611
But with all of that complexity and, with
all of the learning curve that needs to

470
00:25:18,621 --> 00:25:21,175
be done before, that wasn't feasible.

471
00:25:21,515 --> 00:25:23,015
So, uh, I love that.

472
00:25:23,401 --> 00:25:27,781
Like I had also cited in my essay, uh,
an essay written by, well, I guess more

473
00:25:27,781 --> 00:25:32,036
of a short post written by Clay Shirky
in I don't want to mess up the year.

474
00:25:32,056 --> 00:25:34,156
Was it 20 2004 or 2014?

475
00:25:34,266 --> 00:25:35,296
I want to bet 2014.

476
00:25:35,606 --> 00:25:38,586
called Situated Software, which
was about which was the same

477
00:25:38,586 --> 00:25:39,726
claim as Barefoot Developers.

478
00:25:39,726 --> 00:25:42,606
Like, software should be situated
in the local environment that where,

479
00:25:42,616 --> 00:25:45,056
like, it's the people that it serves,
it should have been made there.

480
00:25:45,996 --> 00:25:49,686
He made this idea at a time where
it was, like, completely infeasible.

481
00:25:49,706 --> 00:25:52,601
Just, like, No one could build
sophisticated software, which

482
00:25:52,601 --> 00:25:55,941
didn't have the tooling, like
we hadn't gotten this far.

483
00:25:56,118 --> 00:25:59,708
And, like, what would be the interface
for normal people to build this program?

484
00:25:59,718 --> 00:26:02,658
It was one of those, like, wouldn't
this be nice kind of concepts.

485
00:26:03,508 --> 00:26:06,508
And now it does feel like, yeah, we've
reached this point where it's like, wow.

486
00:26:07,308 --> 00:26:10,638
The coming together of like better
tooling, like reducing complexity,

487
00:26:10,638 --> 00:26:14,158
like better abstractions, plus
language models trained on all those

488
00:26:14,258 --> 00:26:15,518
abstractions and all that tooling.

489
00:26:15,818 --> 00:26:17,948
It is like, Oh, this is possible.

490
00:26:18,448 --> 00:26:20,428
Yeah, that, that makes so much sense.

491
00:26:20,498 --> 00:26:24,648
I can't wait to see like how
quickly that's going to unfold.

492
00:26:25,008 --> 00:26:30,118
This was also a big part of what we
try to do with the conference is, not

493
00:26:30,118 --> 00:26:35,473
just get the, people who are already
excited about local-first from, and who

494
00:26:35,473 --> 00:26:39,903
are trying to figure out how to build
it in the best way, but also people

495
00:26:39,903 --> 00:26:44,163
who've maybe heard about local-first
before, or haven't heard about it before,

496
00:26:44,413 --> 00:26:48,733
and  that they get to understand what
could be the possible impact of that.

497
00:26:49,113 --> 00:26:53,153
And I think this is where you've
just knocked it out of the park

498
00:26:53,193 --> 00:26:56,913
with, at the end of the day, with
your talk, where I think before.

499
00:26:57,073 --> 00:27:01,013
Your talk, everyone was already
excited about like, Oh, this is going

500
00:27:01,013 --> 00:27:05,503
to make software development so much
easier, brings down the level of

501
00:27:05,533 --> 00:27:08,293
entry for people to build local-first.

502
00:27:08,493 --> 00:27:14,583
And it also enables next generation
user experience, like Linear, et cetera.

503
00:27:14,583 --> 00:27:19,643
And that's also why I initially got
excited about local-first to build sort

504
00:27:19,643 --> 00:27:23,223
of like a really cutting edge, next
generational products with Overtone.

505
00:27:23,923 --> 00:27:28,633
But I think you really expanded
the horizon even further, what

506
00:27:28,853 --> 00:27:33,393
on a kind of societal level,
local-first could have an impact for.

507
00:27:33,723 --> 00:27:38,260
So, do you have some theory of
like, what are some, like milestones

508
00:27:38,260 --> 00:27:41,560
that you would like to see happen
there as sort of success stories?

509
00:27:42,048 --> 00:27:45,208
Yeah, um, I talked about a bit
at the end of my talk that we're

510
00:27:45,218 --> 00:27:48,258
missing a few bits of like tooling
or infrastructure, I think, to make

511
00:27:48,258 --> 00:27:51,208
this work, because at the moment,
what you can do easily with language

512
00:27:51,228 --> 00:27:54,188
models is prompt front end code, right?

513
00:27:54,208 --> 00:27:57,203
It's mostly what people
are doing, like even a 4.

514
00:27:57,263 --> 00:27:57,613
3.

515
00:27:57,643 --> 00:28:01,013
5 Sonic came out, I think,
a week ago, and it's really,

516
00:28:01,013 --> 00:28:02,443
really good at code generation.

517
00:28:02,463 --> 00:28:05,993
People are making crazy stuff, and I
have this whole fat collection on Twitter

518
00:28:06,003 --> 00:28:07,163
every time someone makes something.

519
00:28:07,163 --> 00:28:11,433
I'm just, like, saving all this stuff as
evidence of, like, here's where we're at.

520
00:28:11,433 --> 00:28:12,523
Here's the current state of things.

521
00:28:12,905 --> 00:28:14,425
But it's just making
front end code, right?

522
00:28:14,425 --> 00:28:17,185
It's giving you React
components, interactive, it

523
00:28:17,185 --> 00:28:18,745
looks cool, it looks capable.

524
00:28:18,995 --> 00:28:20,885
But it's not connected to a back end.

525
00:28:20,905 --> 00:28:22,955
Connecting it to a back end would
be like a whole different thing.

526
00:28:23,355 --> 00:28:27,115
Um, user authentication and logging
in would be a whole different thing.

527
00:28:27,125 --> 00:28:30,215
Like security, like
multiplayer collaboration.

528
00:28:30,395 --> 00:28:34,335
Like, there's just, there's all this other
stuff to have a real working product.

529
00:28:34,335 --> 00:28:35,695
Like, deployed to a real domain.

530
00:28:36,580 --> 00:28:40,090
Imagine if you're not a software
developer, like, you would never figure

531
00:28:40,090 --> 00:28:41,340
out how to glue that stuff together.

532
00:28:41,360 --> 00:28:44,550
No matter how much you have, like,
chat GPT helping you and, like, you

533
00:28:44,550 --> 00:28:47,900
asking it questions and trying to put
together a working piece of software.

534
00:28:48,050 --> 00:28:49,680
You wouldn't even know
those things exist, right?

535
00:28:49,870 --> 00:28:52,710
Like, no one knows what a database
is if you don't work in software.

536
00:28:53,390 --> 00:28:55,926
so we're missing, all these
other pieces of tooling.

537
00:28:56,716 --> 00:29:00,866
I think what I'm waiting to see is,
like, I don't know, you know, I've kind

538
00:29:00,866 --> 00:29:03,356
of tried to put this idea out into the
world, tried to make more people aware

539
00:29:03,356 --> 00:29:06,386
of like, hey, we should be trying to
build things to serve these developers.

540
00:29:06,713 --> 00:29:11,663
and I know of two projects, Jazz and
DXOS, who are both at local-first, Jess

541
00:29:11,663 --> 00:29:16,123
and, um, Anselm are hopefully building
this kind of thing, which is like some

542
00:29:16,123 --> 00:29:21,083
sort of full stack local-first, like,
framework for people to build within.

543
00:29:21,613 --> 00:29:24,943
I think if you could train a model on
those kinds of things, where it's like,

544
00:29:25,328 --> 00:29:28,438
You're talking to a language model,
but its whole goal is to get you to

545
00:29:28,438 --> 00:29:30,278
build a full stack local-first app.

546
00:29:30,838 --> 00:29:32,208
That would be the goal for me.

547
00:29:32,208 --> 00:29:35,018
That's like, oh, I want to come in,
I want to be able to sketch, I want

548
00:29:35,018 --> 00:29:36,308
to be able to prompt things in it.

549
00:29:36,648 --> 00:29:40,258
and I want it to sort of be architected
and trained in a way where it's

550
00:29:40,268 --> 00:29:44,318
acting like a product manager, like
helping me move towards my final goal.

551
00:29:44,318 --> 00:29:47,073
Like, you know, it's It gets me
to tell it the requirements and

552
00:29:47,083 --> 00:29:48,863
it gets me to tell it what I want.

553
00:29:49,253 --> 00:29:52,053
And then it's doing, it's making
technical decisions for me, right?

554
00:29:52,063 --> 00:29:55,173
It's like, hey, I'm just going to
figure out how to model this data.

555
00:29:55,213 --> 00:29:57,393
I'm going to figure out how
to make this front end code.

556
00:29:57,583 --> 00:30:00,693
All you have to worry about is looking
at the end result and telling me,

557
00:30:00,883 --> 00:30:02,403
yes, no, you know, what should I edit?

558
00:30:02,403 --> 00:30:03,233
What needs to change?

559
00:30:03,253 --> 00:30:04,383
And just looping.

560
00:30:04,783 --> 00:30:07,523
Like that, that's, that's what I'm
waiting for someone to build, honestly.

561
00:30:08,003 --> 00:30:08,553
I agree.

562
00:30:08,803 --> 00:30:14,213
I think there's sort of the, this gap
in going from A to B where like, A,

563
00:30:14,373 --> 00:30:20,603
where we're right now, where I think
we have the conceptual right ideas,

564
00:30:20,683 --> 00:30:26,713
how things can be simpler, and a few
pioneers such as the folk from linear.

565
00:30:27,003 --> 00:30:31,573
And a few other products who have
already had those right ideas, but

566
00:30:31,573 --> 00:30:36,803
they're technically very savvy so
that they could like build that new

567
00:30:36,813 --> 00:30:41,083
hammer, that new framework themselves
so they can live in the future.

568
00:30:41,653 --> 00:30:45,396
And, then you have the, the other
group, what you've described with like

569
00:30:45,406 --> 00:30:50,256
DxOS, Jazz, and there's many other
technologies who are not primarily

570
00:30:50,256 --> 00:30:51,706
building it for their own apps.

571
00:30:51,961 --> 00:30:56,611
But to kind of build this for
developers, so that the next Linear

572
00:30:56,841 --> 00:30:59,711
has a much easier time, can focus
on the product and doesn't need to

573
00:30:59,711 --> 00:31:01,391
build off like the underlying tech.

574
00:31:01,611 --> 00:31:06,501
So that's coming along, and once
that is there, then we're kind of

575
00:31:06,541 --> 00:31:11,451
halfway there, since at that point,
now the AI also needs to pick this up.

576
00:31:11,801 --> 00:31:16,831
Since, I think this is why the
AIs are so great at bringing down

577
00:31:16,831 --> 00:31:20,551
the barrier to entry for things
like React development, et cetera.

578
00:31:20,741 --> 00:31:25,141
There's already a lot of training data
out there, whereas for local-first,

579
00:31:25,161 --> 00:31:29,971
this is all like very little training
data, all like very, very new.

580
00:31:30,336 --> 00:31:36,906
So I think once we have those ingredients
and the AIs can also integrate that into

581
00:31:36,906 --> 00:31:44,346
their more encompassing, solution corpus,
then I think  we've, I guess like to, to

582
00:31:44,346 --> 00:31:48,986
a much more comprehensive degree enable
a Barefoot developer, since I guess

583
00:31:48,986 --> 00:31:54,276
right now a Barefoot developer already
lives in the future by, things like

584
00:31:54,476 --> 00:31:56,706
front end React programming, et cetera.

585
00:31:56,716 --> 00:31:59,096
That already works super well for them.

586
00:31:59,376 --> 00:32:03,166
And then they get sort of this
glimmer of hope, Oh, a local-first

587
00:32:03,186 --> 00:32:04,976
is going to make everything simpler.

588
00:32:05,226 --> 00:32:10,416
But the, the fact of reality today
is you either need to use a very

589
00:32:10,796 --> 00:32:14,496
Early technologies such as jazz, et
cetera, and where you still need to

590
00:32:14,506 --> 00:32:18,806
be a bit more on the more expert y
end, or you need to wait a little

591
00:32:18,806 --> 00:32:22,056
bit until all of that is AI ready.

592
00:32:22,446 --> 00:32:25,906
But I, I like the way how you
think about that sort of like as

593
00:32:25,906 --> 00:32:28,216
a big next step function change.

594
00:32:28,606 --> 00:32:30,186
Yeah, I expect they
might meet in the middle.

595
00:32:30,196 --> 00:32:33,486
Like what I think will happen is, like,
people will build these kind of like

596
00:32:33,486 --> 00:32:37,136
full stack language model helpers, which
are not local-first, of course, right?

597
00:32:37,136 --> 00:32:40,736
They will just build one that like
uses cloud databases entirely.

598
00:32:40,736 --> 00:32:42,886
And it's like, all like
not, doesn't work offline.

599
00:32:43,276 --> 00:32:46,406
and then the local-first tools will
get more mature and maybe in a few

600
00:32:46,406 --> 00:32:49,056
years, like these come together
in the middle so that you have.

601
00:32:49,301 --> 00:32:52,831
You know, something for barefoot
developers that just has natural

602
00:32:52,831 --> 00:32:55,811
language inputs and visual inputs
for them to define what they want.

603
00:32:56,321 --> 00:32:59,081
and the stack is, like,
mature enough, right?

604
00:32:59,081 --> 00:33:02,991
We have, like, stable enough technologies
that they get all the stuff around

605
00:33:02,991 --> 00:33:06,961
local-first, like, CRDTs, all the
fancy stuff for free, just because we,

606
00:33:06,961 --> 00:33:10,181
like, have enough training data and
we figured out the complexities of it.

607
00:33:10,711 --> 00:33:13,831
I don't want to put too many timelines
on it, but I'm like, five years?

608
00:33:14,226 --> 00:33:14,736
Maybe less.

609
00:33:14,746 --> 00:33:15,076
I don't know.

610
00:33:15,076 --> 00:33:17,396
Some people think that we're all
going to die from AGI in five years.

611
00:33:17,406 --> 00:33:22,586
So maybe just speed up timelines, like,
but I think reasonably five years.

612
00:33:24,520 --> 00:33:28,900
, I think a very frequent philosophical
question that one can entertain

613
00:33:28,900 --> 00:33:34,156
is like, my life as a programmer
has certainly become a lot better

614
00:33:34,456 --> 00:33:38,996
over the past couple of months and
years with things like Copilot and

615
00:33:38,996 --> 00:33:41,973
Cursor and, ChatGPT, et cetera.

616
00:33:41,973 --> 00:33:46,623
I can like take a screenshot of an error
message and it gives me some useful clues.

617
00:33:47,053 --> 00:33:47,913
so that is.

618
00:33:48,138 --> 00:33:54,231
Definitely getting better, but is this
just like a very nice time before, I

619
00:33:54,231 --> 00:33:58,171
don't have to do my, anyway, this is
not a question to debate here, but

620
00:33:58,171 --> 00:34:01,621
it's certainly also, I'm not immune
to, to those sort of thoughts as

621
00:34:01,621 --> 00:34:05,941
well, but I'm, I'm choosing to see
the world as like glass half full.

622
00:34:06,425 --> 00:34:11,685
and, I'm a tool builder, so I'm excited
for new tools that make me more productive

623
00:34:11,735 --> 00:34:15,148
and, make me more capable in doing stuff.

624
00:34:15,805 --> 00:34:16,075
Yeah.

625
00:34:16,145 --> 00:34:18,601
I mean, I was gonna say, if we,
if we automate all the code,

626
00:34:19,001 --> 00:34:21,551
we'll all just become designers
and product managers, you know?

627
00:34:21,631 --> 00:34:23,781
Like, we'll just, we'll just help.

628
00:34:24,551 --> 00:34:26,601
Help the AIs, like, write the
code and we'll just be like,

629
00:34:26,601 --> 00:34:28,361
Hey, you know, focus on this.

630
00:34:28,361 --> 00:34:29,281
This is your priority.

631
00:34:29,281 --> 00:34:31,721
You know, this usability
piece isn't working very well.

632
00:34:31,988 --> 00:34:34,558
I still think it would scratch the
same itch that a lot of developers have

633
00:34:34,558 --> 00:34:38,758
around like building beautiful systems
and like solving like logical puzzles.

634
00:34:38,778 --> 00:34:39,868
Cause it's still design.

635
00:34:39,868 --> 00:34:41,438
You're solving a lot of logical puzzles.

636
00:34:41,768 --> 00:34:42,108
I don't know.

637
00:34:42,128 --> 00:34:44,278
So maybe that's why I'm not
as afraid of like the whole.

638
00:34:44,673 --> 00:34:46,793
Automation fears, but I also
think they're ridiculous.

639
00:34:46,803 --> 00:34:50,193
Like we'll never get to a hundred percent
code automation and it seems crazy.

640
00:34:51,060 --> 00:34:52,020
Yeah, definitely.

641
00:34:52,060 --> 00:34:58,980
So I want to shift gears slightly,
and not just look at AI as an enabling

642
00:34:59,020 --> 00:35:01,060
technology to make us more productive.

643
00:35:01,390 --> 00:35:05,320
But if we put ourselves into
the shoes of a product builder,

644
00:35:05,710 --> 00:35:08,440
possibly of a tool builder, how.

645
00:35:08,680 --> 00:35:15,770
Can AI be a ingredient that we can put
into possibly local-first powered apps?

646
00:35:16,220 --> 00:35:20,870
and so given that you've worked at
Elicit, which is maybe you can briefly

647
00:35:20,870 --> 00:35:25,580
give a summary what Elicit is about and
what you've done there, but after that,

648
00:35:25,600 --> 00:35:28,190
maybe we could explore a little bit of.

649
00:35:28,645 --> 00:35:34,325
maybe you have thoughts on how to best
bring AI into products and how is that

650
00:35:34,785 --> 00:35:38,765
a challenge or an even better benefit
to do it in a local-first context?

651
00:35:39,420 --> 00:35:42,640
yeah, I actually, this is funny, like,
after I had written the talk and was

652
00:35:42,640 --> 00:35:46,240
talking to more people, I had that
realization of, like, oh, language models

653
00:35:46,240 --> 00:35:48,590
and local-first go really well together.

654
00:35:48,790 --> 00:35:51,620
I think this is actually Jeffrey Litt,
who's at Ink and Switch, that kind of

655
00:35:51,690 --> 00:35:55,290
got me onto realizing this, how they're,
like, actually perfect for each other.

656
00:35:55,580 --> 00:35:57,520
but I'll back up a bit
and talk about Elicit.

657
00:35:57,550 --> 00:36:01,983
So, yeah, I was the designer there
for two years, It is a tool that helps

658
00:36:01,993 --> 00:36:05,073
scientists and researchers do this thing
called systematic literature review,

659
00:36:05,383 --> 00:36:08,863
which is this frankly very long manual
boring process that no human wants

660
00:36:08,863 --> 00:36:11,903
to be doing, but they're sort of like
forced to do because they have to.

661
00:36:12,193 --> 00:36:14,978
where let's say they want to
do a study on like, vitamin D

662
00:36:14,978 --> 00:36:16,378
deficiency or something like this.

663
00:36:16,608 --> 00:36:19,578
They have to read every single
paper that's ever been done on

664
00:36:19,588 --> 00:36:21,488
like vitamin D deficiency studies.

665
00:36:21,488 --> 00:36:22,558
And like, what do we know?

666
00:36:22,768 --> 00:36:23,918
What's already been tested?

667
00:36:23,928 --> 00:36:25,728
What needs to be tested in the future?

668
00:36:26,008 --> 00:36:29,618
Just like read tens of thousands of
papers and extract all this data from it.

669
00:36:29,618 --> 00:36:31,958
Like how many people did
they study in each paper?

670
00:36:31,958 --> 00:36:33,398
And like, what were the results?

671
00:36:33,398 --> 00:36:35,448
, what was the effect
size in the population?

672
00:36:35,448 --> 00:36:36,748
Like just all this stuff.

673
00:36:36,918 --> 00:36:41,303
And usually humans, Open up PDFs one by
one and type this data into a spreadsheet.

674
00:36:41,453 --> 00:36:44,583
They're just like sitting there
for, it takes six months usually,

675
00:36:44,583 --> 00:36:46,743
it takes a couple people six
months to do one of these.

676
00:36:46,933 --> 00:36:49,503
And you have to do it for every
like new drug release to market

677
00:36:49,503 --> 00:36:50,643
or any new medical device.

678
00:36:51,103 --> 00:36:54,843
So there's this whole consultancy whose
whole job is to do manual data entry.

679
00:36:55,463 --> 00:36:57,803
and it turns out language models
are quite good at extracting

680
00:36:58,023 --> 00:36:59,773
structured data from these PDFs.

681
00:36:59,773 --> 00:37:03,998
Or if you prompt them in the right way
and you have Frankly, at times, quite

682
00:37:03,998 --> 00:37:07,168
sophisticated architectures to make them
accurate, but you can build them, which

683
00:37:07,168 --> 00:37:10,848
is what we focused on at Elicit, is like,
raising accuracy rates and making sure

684
00:37:10,858 --> 00:37:12,668
models got the right data out of papers.

685
00:37:13,188 --> 00:37:16,618
But you can get them to do it to over 95
percent accuracy, which is what humans

686
00:37:16,618 --> 00:37:18,618
roughly get out of doing this process.

687
00:37:19,448 --> 00:37:22,418
So you just speed up this thing, used
to take six months, you can do it in

688
00:37:22,418 --> 00:37:25,168
a couple days, maybe a week, of you
just going through and reviewing all

689
00:37:25,168 --> 00:37:27,377
the answers that the models extracted.

690
00:37:27,837 --> 00:37:31,477
So, yeah, working there for two
years, I learned a lot about, both

691
00:37:31,477 --> 00:37:34,707
just like prompt techniques and
architectures for making models accurate.

692
00:37:34,717 --> 00:37:37,497
It's actually quite hard, but,
but good to know it can be done.

693
00:37:37,517 --> 00:37:39,197
That was like really useful to learn.

694
00:37:39,707 --> 00:37:43,377
it definitely made me very skeptical
of most use cases of language

695
00:37:43,397 --> 00:37:46,777
models, I think, in that we found
one that was really appropriate.

696
00:37:46,827 --> 00:37:49,122
It's like, okay, you There's
data and a bunch of text.

697
00:37:49,142 --> 00:37:50,182
Get the data out of the text.

698
00:37:50,212 --> 00:37:51,372
That's like quite straightforward.

699
00:37:51,652 --> 00:37:54,042
But there's a lot of stuff people
are trying to use them for where

700
00:37:54,042 --> 00:37:57,362
I'm like, is a language model
the right hammer for this nail?

701
00:37:57,592 --> 00:37:58,702
Like, I don't know.

702
00:37:58,702 --> 00:38:01,832
You're trying to write
marketing copy for your company.

703
00:38:01,832 --> 00:38:04,362
I don't know that you want the
most generic, predictable text to

704
00:38:04,362 --> 00:38:06,562
really be the thing that you're
like putting out into the world.

705
00:38:06,592 --> 00:38:11,552
Or like, okay, some people are like,
yeah, I want to write 10, 000 SEO keyword

706
00:38:11,552 --> 00:38:14,302
stuffed articles to like get to the
top of Google, but and everyone does

707
00:38:14,302 --> 00:38:16,962
that and then there's no point in like
you, you doing that because you're not

708
00:38:16,962 --> 00:38:18,202
actually going to get any traffic from it.

709
00:38:18,572 --> 00:38:22,542
So, I'm strangely quite skeptical
or like negative on a lot of uses

710
00:38:22,542 --> 00:38:26,382
of language models, but the data
extraction, like summarization,

711
00:38:26,392 --> 00:38:30,682
like getting it to do very small
structured things over text, I actually

712
00:38:30,682 --> 00:38:31,782
think they're really good at that.

713
00:38:31,842 --> 00:38:35,232
And code generation and debugging
is actually one of those, right?

714
00:38:35,242 --> 00:38:37,792
Like, that's one of the things
where like, okay, we've proven

715
00:38:37,822 --> 00:38:40,502
they're actually useful for this, so
like, we should use them for this.

716
00:38:40,542 --> 00:38:43,932
This is like, they are shining here and
like, ignore the areas where they're

717
00:38:43,932 --> 00:38:47,452
not shining, like all the other, like,
everything turns into a chatbot kind

718
00:38:47,452 --> 00:38:48,482
of stuff, which we don't really need.

719
00:38:49,389 --> 00:38:51,599
yeah, so that's, that's the long
version of like, that was, that

720
00:38:51,599 --> 00:38:53,609
was what I realized at Elicit.

721
00:38:53,689 --> 00:38:56,289
but the thing with local-first
and language models that makes

722
00:38:56,289 --> 00:38:57,419
them go really well together.

723
00:38:58,329 --> 00:39:01,299
Language models perform better when
you have lots of really specific data

724
00:39:01,319 --> 00:39:05,379
for them to run things over, right,
to summarize or to extract data from.

725
00:39:05,769 --> 00:39:09,009
And if all the data is local on
your machine already, and you're

726
00:39:09,029 --> 00:39:11,609
not having to, like, go up to the
cloud, or it's not trapped in someone

727
00:39:11,609 --> 00:39:15,284
else's app to run a model over it,
You can just run a model locally.

728
00:39:15,284 --> 00:39:18,104
You don't need to be making a
call to OpenAI or to Anthropic,

729
00:39:18,374 --> 00:39:19,694
which gets really expensive.

730
00:39:20,064 --> 00:39:22,784
You could just be doing this all
on your machine with no delay,

731
00:39:22,804 --> 00:39:25,754
which is like, why are local-first
makes perfect sense if you want to

732
00:39:25,754 --> 00:39:27,084
actually be doing language model work.

733
00:39:27,494 --> 00:39:27,994
Yeah.

734
00:39:28,054 --> 00:39:30,734
So thank you so much for, for
the background, on, Elicit.

735
00:39:30,754 --> 00:39:35,464
I was not as aware of like the
entire, process that researchers

736
00:39:35,464 --> 00:39:39,574
need to go through and just
hearing the word manual data entry.

737
00:39:39,899 --> 00:39:40,839
it gives me shivers.

738
00:39:40,849 --> 00:39:45,589
So that sounds like a well
needed thing and whatever , makes

739
00:39:45,659 --> 00:39:47,549
research and truth easier.

740
00:39:47,862 --> 00:39:49,212
that is very welcome.

741
00:39:49,619 --> 00:39:54,439
also your insights in regards to where
LMs are a good fit versus not to.

742
00:39:54,839 --> 00:39:58,469
I've coming to on a much smaller
scale, but I'm coming to similar

743
00:39:58,469 --> 00:40:03,119
conclusions, for example, when I'm
writing documentations for, for some

744
00:40:03,159 --> 00:40:04,569
technologies that I'm working on.

745
00:40:04,979 --> 00:40:10,189
And this is where I typically disable LLMs
because like what they typically suggest

746
00:40:10,189 --> 00:40:12,939
to me is exactly not what I'm doing.

747
00:40:13,099 --> 00:40:16,669
I'm building a different thing
that challenges the status quo

748
00:40:16,819 --> 00:40:18,229
for very particular reasons.

749
00:40:18,239 --> 00:40:23,689
So I found it actually, it increases my
cognitive overhead of like trying to.

750
00:40:24,114 --> 00:40:27,694
like come up with a thought
and like a very fuzzy process.

751
00:40:27,994 --> 00:40:31,274
And then like, it's basically
constantly like slapping me in the face.

752
00:40:31,304 --> 00:40:32,484
Like, do you want to say this?

753
00:40:32,704 --> 00:40:34,074
No, exactly not.

754
00:40:34,514 --> 00:40:38,254
So, there's like use cases for it,
where it's good and where it's not good.

755
00:40:38,285 --> 00:40:43,152
but, I think also that giving it more
contextual information is exactly

756
00:40:43,152 --> 00:40:48,102
the, the key to make it feasible
and maybe make it even so that I do

757
00:40:48,102 --> 00:40:49,772
want to have it enabled for docs.

758
00:40:49,782 --> 00:40:53,402
So if I imagine that I give it
access to all of my source code.

759
00:40:53,450 --> 00:40:56,910
then it could actually draw,
draw the right conclusions.

760
00:40:57,190 --> 00:41:01,300
So , this use case where you have
your source code and you want to

761
00:41:01,300 --> 00:41:06,160
generate documentation, I think is
a much simpler one from a technical

762
00:41:06,160 --> 00:41:08,210
perspective because everything is static.

763
00:41:08,600 --> 00:41:12,410
I, don't need , my source code,
sure, maybe some of it, I don't

764
00:41:12,410 --> 00:41:15,310
want to have leaked, but a lot
of it's going to be public.

765
00:41:15,320 --> 00:41:18,360
So privacy concerns are
not as much of a concern.

766
00:41:18,980 --> 00:41:22,950
But where that is the context, if
we're now talking about the health

767
00:41:22,990 --> 00:41:27,780
app, this is where my context
is possibly very, very sensitive

768
00:41:27,780 --> 00:41:30,220
data or financial data, et cetera.

769
00:41:30,560 --> 00:41:34,304
So this is where the contextual
data is even more important to

770
00:41:34,304 --> 00:41:38,884
drive good results for the AI,
but it's so much more sensitive.

771
00:41:39,194 --> 00:41:44,744
And I think this is going to be a huge
challenge and a huge question, how

772
00:41:44,774 --> 00:41:46,554
different AI systems will be built.

773
00:41:46,554 --> 00:41:47,474
And  that's a key.

774
00:41:47,782 --> 00:41:50,362
topic that I'm interested in,
this is where I think where

775
00:41:50,362 --> 00:41:55,312
we've seen with Apple's recent AI
announcements, where they hijack the

776
00:41:55,312 --> 00:41:57,402
term AI to mean Apple intelligence.

777
00:41:57,692 --> 00:41:58,262
Well done.

778
00:42:00,382 --> 00:42:06,432
And now what Apple has announced
at the latest WWDC is where they

779
00:42:06,432 --> 00:42:09,002
basically shared their AI strategy.

780
00:42:09,377 --> 00:42:13,237
and what I like about it is that
most of the AI stuff is also

781
00:42:13,237 --> 00:42:14,997
happening locally on device.

782
00:42:15,457 --> 00:42:20,077
And I think the, the way how
to do that is, an approach that

783
00:42:20,337 --> 00:42:22,257
hopefully more technologies follow.

784
00:42:22,257 --> 00:42:26,037
And I think this will be sort of like
a bit of a dividing line, whether

785
00:42:26,087 --> 00:42:29,337
you're gonna do it locally or whether
you're going to do it in a cloud.

786
00:42:29,852 --> 00:42:35,522
And I hope that more products,
more technologies will enable

787
00:42:35,532 --> 00:42:37,162
all of that to happen locally.

788
00:42:37,172 --> 00:42:42,442
Since if I can keep my most sensitive
data locally on the device, and if I

789
00:42:42,442 --> 00:42:48,332
can run the AI model locally, it's not
just gonna give me the fastest results,

790
00:42:48,612 --> 00:42:52,472
but it's also, in my perspective,
kind of like the only sane way

791
00:42:52,672 --> 00:42:55,102
how to respect the user's privacy.

792
00:42:55,275 --> 00:43:00,496
It was more of a coin flip to go
with Google versus Apple before

793
00:43:00,726 --> 00:43:02,356
in terms of products, et cetera.

794
00:43:02,376 --> 00:43:07,536
But if Google's only way in the future
is to drive everything into the cloud

795
00:43:07,536 --> 00:43:12,936
and do AI there, and Apple's is to do it
locally, that's a very clear call for me.

796
00:43:13,326 --> 00:43:15,656
But I think that's a
major question overall.

797
00:43:15,656 --> 00:43:20,406
Like how do we run AIs locally and how do
we drive the right contextual data there?

798
00:43:20,781 --> 00:43:24,001
Yeah, this is something that I haven't
seen yet come up as like a SaaS or

799
00:43:24,001 --> 00:43:26,941
a service of any kind, or I guess
it'd be more of developer tooling.

800
00:43:27,221 --> 00:43:30,901
Like, there's plenty of, wherever it
is, like, toolchains on top of the, all

801
00:43:30,981 --> 00:43:36,685
the foundation model APIs, and like,
you know, analytics and, visibility

802
00:43:36,695 --> 00:43:39,425
and, like, tracking and all this
stuff, like, coming up around, around

803
00:43:39,485 --> 00:43:40,735
doing language models and product.

804
00:43:40,995 --> 00:43:44,340
But I'm waiting for someone to just be
like, hey, We help you run LLAMA locally

805
00:43:44,340 --> 00:43:48,000
on the user's device and then only when
needed, like, when, like, as Apple said

806
00:43:48,000 --> 00:43:51,550
in their presentation, only when you need
something that's more compute intensive

807
00:43:51,550 --> 00:43:53,460
do they send it up to a cloud server.

808
00:43:53,850 --> 00:43:58,300
Something that allows you to do hybrid,
local, and uh, remote, so that at least

809
00:43:59,030 --> 00:44:02,630
ideally the user, I mean, this is probably
more likely to happen in a B2B case, could

810
00:44:02,630 --> 00:44:07,660
say only do these kind of like, functions
on this kind of data, uh, locally, maybe

811
00:44:07,660 --> 00:44:10,800
this is more sensitive data, maybe this
is more sensitive stuff, but stuff that's

812
00:44:10,860 --> 00:44:15,730
maybe more complex or stuff over here,
you can send to OpenAI if needed, or to

813
00:44:15,730 --> 00:44:17,380
a cloud, I mean, to Anthropic if needed.

814
00:44:17,620 --> 00:44:19,110
So I haven't seen that happen yet.

815
00:44:19,110 --> 00:44:19,720
I don't know what that is.

816
00:44:19,720 --> 00:44:22,560
That's like hybrid language
model prompting, but that seems

817
00:44:22,560 --> 00:44:24,970
like a very obvious piece of
infrastructure we could build in.

818
00:44:25,543 --> 00:44:28,790
I'm wondering, like, what will
be the thing that wins the

819
00:44:28,790 --> 00:44:30,360
argument one way or another?

820
00:44:30,770 --> 00:44:35,750
one possible path could be, Oh, it gives
you the best performance or that it needs

821
00:44:35,750 --> 00:44:41,750
to work offline in certain scenarios,
whereas like, I think with local-first,

822
00:44:41,770 --> 00:44:47,845
we already see that the, the works offline
case is kind of like a, Argument that

823
00:44:47,875 --> 00:44:52,935
is not as compelling for many or not as
intuitive for many as you might think.

824
00:44:53,485 --> 00:44:58,638
but I think what I would hope will
be the winning argument is privacy.

825
00:44:59,008 --> 00:45:04,475
But I'm saying that as a European, and
I know that other people might, uh, not

826
00:45:04,475 --> 00:45:09,765
value privacy as much, but do you have
thoughts on what will be like a big

827
00:45:09,765 --> 00:45:11,805
lever in terms of one way or another?

828
00:45:12,205 --> 00:45:15,495
Yeah, I mean, I also agree on the
privacy bit, but I also know a lot of

829
00:45:15,515 --> 00:45:18,095
people who just, I don't know, doesn't,
don't, they don't care, or it's just

830
00:45:18,095 --> 00:45:19,225
like, oh, this is just whatever.

831
00:45:19,255 --> 00:45:22,625
This is like my, you know, notes
on my product development app.

832
00:45:22,625 --> 00:45:24,195
Why do I care, about privacy?

833
00:45:24,365 --> 00:45:25,655
But I think it's speed.

834
00:45:25,655 --> 00:45:28,175
Like, one of the biggest UX
challenges of the list that we faced

835
00:45:28,215 --> 00:45:31,855
is just that loading times are Or
just on a whole different level.

836
00:45:31,855 --> 00:45:35,075
It's just, it's, we're so used
to quick, quick loads, right?

837
00:45:35,135 --> 00:45:36,825
At the most one, two seconds.

838
00:45:36,875 --> 00:45:40,235
And even then users are getting, you
know, antsy and like, oh, this feels slow.

839
00:45:40,235 --> 00:45:41,375
This app isn't working.

840
00:45:41,765 --> 00:45:43,895
Sometimes you have a load
time with a language model.

841
00:45:43,895 --> 00:45:47,670
If it's doing a complex call of
like three minutes, like, What do

842
00:45:47,860 --> 00:45:49,240
you do with a user for 3 minutes?

843
00:45:49,600 --> 00:45:52,480
Like, there's only so many animations
you can play on the screen.

844
00:45:52,480 --> 00:45:54,870
Like, there's only so many
minigames you can have them

845
00:45:54,870 --> 00:45:56,080
play while this thing loads in.

846
00:45:56,420 --> 00:46:00,380
so having models locally on your machine
that could run language model functions

847
00:46:00,380 --> 00:46:02,910
faster would be a huge UX benefit.

848
00:46:03,130 --> 00:46:05,960
A lot of the time we're just
waiting for the OpenAI API to

849
00:46:05,960 --> 00:46:09,880
reply, or like, Maybe we're doing
multiple, you know, a hundred calls.

850
00:46:09,890 --> 00:46:13,210
So every single time there's a couple
seconds of delay on each one, this is just

851
00:46:13,220 --> 00:46:15,720
adding up into a huge, huge time sink.

852
00:46:15,950 --> 00:46:19,200
so that would be a big benefit, but I
of course agree on the privacy front,

853
00:46:19,200 --> 00:46:22,679
especially for  companies will care
about this, right, for proprietary data,

854
00:46:23,119 --> 00:46:25,989
but yeah, individual uses for finance
to health and anything where you just

855
00:46:25,989 --> 00:46:27,799
don't want it going off your machine.

856
00:46:28,434 --> 00:46:31,704
Yeah, so this is a topic I'm
highly interested in, want to

857
00:46:31,704 --> 00:46:33,694
explore also in future episodes.

858
00:46:34,024 --> 00:46:37,554
I think luckily there's so much
momentum and so much good stuff

859
00:46:37,554 --> 00:46:43,034
happening on the AI capability side
where models are getting more powerful,

860
00:46:43,194 --> 00:46:46,304
but also more efficient that makes
it possible to run them locally.

861
00:46:46,614 --> 00:46:51,479
I think Google announced or released,
uh, Recently, like a Google, uh,

862
00:46:51,749 --> 00:46:56,039
Google Chrome version, I think a
Canary version where you have, I think,

863
00:46:56,039 --> 00:47:01,969
Gemini Nano working actually already
locally where it can say window.

864
00:47:01,989 --> 00:47:04,449
ai and run some little prompts.

865
00:47:04,719 --> 00:47:09,059
So this shows some first,
building blocks in that direction.

866
00:47:09,569 --> 00:47:14,709
But, I'm more interested in
exploring and figuring out a path.

867
00:47:14,959 --> 00:47:15,839
How can we.

868
00:47:16,254 --> 00:47:21,274
Figure out the contextual data side,
since I think this is where I'm less

869
00:47:21,294 --> 00:47:28,044
concerned about a AI model that runs
locally, temporarily having, some

870
00:47:28,464 --> 00:47:32,784
contextual information about me that it
has like flushed again, like in a few

871
00:47:32,784 --> 00:47:38,319
seconds, what I'm more interested in is
exploring all of that contextual data

872
00:47:38,349 --> 00:47:43,059
that is highly personalized, that might
be text messages I'm sending to my close

873
00:47:43,059 --> 00:47:47,509
friends or to my family, that might be
health information, that might be my

874
00:47:47,579 --> 00:47:53,009
emails, that might be my personal notes
I'm taking after a nightmare, or whatever.

875
00:47:53,169 --> 00:47:58,819
Like, all of that stuff needs to be
accessible to the AI in a local way.

876
00:47:59,284 --> 00:48:04,374
And that is much easier to do if,
some entity, for example, Apple

877
00:48:04,394 --> 00:48:08,804
controls the overall ecosystem
and can do it in a way that is

878
00:48:08,814 --> 00:48:11,684
secure, privacy respecting and fast.

879
00:48:12,044 --> 00:48:16,124
But where we are all building
things for, for the web, this is

880
00:48:16,144 --> 00:48:19,834
where our playing field is much
more constrained to the browser.

881
00:48:19,844 --> 00:48:24,304
So one possible path That I could
imagine where this is going is

882
00:48:24,304 --> 00:48:29,094
that the browser takes even more
responsibilities of an operating system

883
00:48:29,554 --> 00:48:35,374
and where a lot of my contextual data
lives in the browser, which raises

884
00:48:35,420 --> 00:48:37,030
the stakes and the risks even further.

885
00:48:37,835 --> 00:48:42,945
That now like some cross site scripting
could access even more personal data.

886
00:48:42,965 --> 00:48:46,925
Since right now, with the stuff
that we have really saved in the

887
00:48:46,925 --> 00:48:49,785
browser is like close to nothing.

888
00:48:49,795 --> 00:48:52,955
This is actually one of the problems
we tried to solve with local-first

889
00:48:53,255 --> 00:48:57,042
that Right now we treat the web
browser like it's not capable to do

890
00:48:57,052 --> 00:48:58,802
anything, but we need to flip that.

891
00:48:58,802 --> 00:49:02,692
We need to store a lot in it to
make that happen, which brings

892
00:49:02,692 --> 00:49:03,932
up a lot of privacy questions.

893
00:49:03,942 --> 00:49:07,442
So lots of interesting
questions to explore there.

894
00:49:08,242 --> 00:49:11,022
Well, okay, wait, I have a good,
a good dumb question for you as

895
00:49:11,032 --> 00:49:14,072
like a non backend person, like
a non, like, databasey person.

896
00:49:14,505 --> 00:49:18,155
Could you just make either an Electron
app or web app that just accesses,

897
00:49:18,225 --> 00:49:19,555
like, a bunch of local files?

898
00:49:19,565 --> 00:49:22,500
Like, let's say, like, you've
got 10, 000 local markdown files

899
00:49:22,520 --> 00:49:24,840
that, like, your personal notes,
and a lot of them very sensitive.

900
00:49:24,840 --> 00:49:27,340
Maybe you're, like, journaling or
nightmares or whatever's in there.

901
00:49:27,570 --> 00:49:31,379
Is there a way for some web app to
just access those without it being uh,

902
00:49:31,389 --> 00:49:34,459
at risk of like cross site scripting
or some other attack like this.

903
00:49:35,329 --> 00:49:40,029
So, I mean, there's always risk and
there's always like the figuring out the

904
00:49:40,029 --> 00:49:44,459
right balance between making something
possible, making something convenient and

905
00:49:44,459 --> 00:49:47,559
keeping it secure and privacy respecting.

906
00:49:47,889 --> 00:49:53,349
So I think one capability that browsers
already offer that could enable

907
00:49:53,349 --> 00:49:55,139
that would be Chrome extensions.

908
00:49:55,539 --> 00:49:59,409
But this is also, I think in a
parallel universe, Chrome extensions

909
00:49:59,409 --> 00:50:01,279
would be even more common.

910
00:50:01,369 --> 00:50:06,349
and we'd use them maybe even more,
maybe in a parallel universe,

911
00:50:06,559 --> 00:50:10,889
Electron wouldn't have taken off as
much as it did and Chrome extensions

912
00:50:10,889 --> 00:50:12,699
instead would have been that medium.

913
00:50:13,009 --> 00:50:16,455
So, Chrome extensions could, or
browser extensions, generally,

914
00:50:16,885 --> 00:50:21,955
could be a bridge towards local
data, and I think that will be a, a

915
00:50:21,955 --> 00:50:23,935
mechanism that might be used for that.

916
00:50:24,469 --> 00:50:28,739
I'm actually building a Chrome
extension over the last couple

917
00:50:28,739 --> 00:50:31,339
of weeks for LiveStore, the
staff tool that I'm building.

918
00:50:31,739 --> 00:50:34,035
And it's, really complex to build.

919
00:50:34,345 --> 00:50:37,925
And one of the big reasons why it's
complex to build is because the

920
00:50:37,925 --> 00:50:43,255
browsers are already very intentional
about trying to minimize the,

921
00:50:43,485 --> 00:50:45,155
the sort of like security risks.

922
00:50:45,675 --> 00:50:48,285
And I think this will
be even more important.

923
00:50:48,345 --> 00:50:52,445
And I think we need to, strike like
an interest, find a nice balance

924
00:50:52,685 --> 00:50:58,250
where it's secure, but still
gives you the capabilities and in

925
00:50:58,250 --> 00:51:03,050
a way that a end user is able to
make the right decision for them.

926
00:51:03,590 --> 00:51:07,600
And so I think, yeah, that's going
to be interesting balance to strike.

927
00:51:08,080 --> 00:51:08,410
Okay.

928
00:51:08,550 --> 00:51:08,910
Okay.

929
00:51:09,030 --> 00:51:09,230
Okay.

930
00:51:09,230 --> 00:51:09,920
That gives me more hope.

931
00:51:10,530 --> 00:51:13,684
Cause yeah, I'm in the phase
of experimenting with, um, you

932
00:51:13,684 --> 00:51:16,074
know, Obsidian, local-first,
like note taking tools.

933
00:51:16,084 --> 00:51:16,424
Yeah.

934
00:51:16,654 --> 00:51:16,904
Right.

935
00:51:16,914 --> 00:51:19,014
So like all my All my notes are in there.

936
00:51:19,014 --> 00:51:21,084
I was in something else before
that was all cloud based and

937
00:51:21,084 --> 00:51:22,154
actually going to local-first.

938
00:51:22,174 --> 00:51:25,964
I was already on the edge of being like,
Oh, personal notes should really be, Oh,

939
00:51:25,964 --> 00:51:27,254
you should own that on your own machine.

940
00:51:27,254 --> 00:51:28,044
That should be marked down.

941
00:51:28,044 --> 00:51:29,954
That shouldn't be stored in
someone else's cloud server.

942
00:51:30,414 --> 00:51:32,254
so went through the process
of moving them all into this

943
00:51:32,264 --> 00:51:33,574
like local-first Obsidian app.

944
00:51:34,007 --> 00:51:37,407
and then now exploring building
plugins to like build on top of that,

945
00:51:37,437 --> 00:51:40,027
like integrate language models, like
do more interesting things with this

946
00:51:40,027 --> 00:51:42,077
like huge database of notes I have.

947
00:51:42,370 --> 00:51:45,615
but it made me realize all I needed
was some sort of like, Interface or

948
00:51:45,615 --> 00:51:48,535
runtime or primitives in place, which
is what the browser gives you, or what

949
00:51:48,535 --> 00:51:49,875
something like Obsidian gives you.

950
00:51:50,165 --> 00:51:52,365
And then people being able to
build things on top of that.

951
00:51:52,375 --> 00:51:54,075
That's when you get into
the more interesting stuff.

952
00:51:54,315 --> 00:51:58,935
But making sure that base layer of like
somewhere to store data, some security

953
00:51:58,965 --> 00:52:00,155
and making sure it's local-first.

954
00:52:00,175 --> 00:52:02,905
Like once that's in place, people
can build much more capable things.

955
00:52:03,232 --> 00:52:07,342
So maybe this is a good time to
shift gears again a little bit.

956
00:52:07,622 --> 00:52:11,182
you've been mentioning Obsidian
and in the past, and I think still

957
00:52:11,182 --> 00:52:16,262
today, you're a very active person
in the tools for thought space and

958
00:52:16,282 --> 00:52:20,532
Obsidian, obviously being one of
the prominent tools in that space.

959
00:52:20,897 --> 00:52:25,307
Do you have thoughts on how
local-first could be an interesting

960
00:52:25,307 --> 00:52:29,707
lever to make those experiences even
better, both in terms of like end

961
00:52:29,707 --> 00:52:33,697
user apps that you're using, but
also in terms of you as a builder?

962
00:52:34,352 --> 00:52:38,272
Yeah, yeah, I mean, I kind of had this
like, I've been so dumb moment, I guess,

963
00:52:38,272 --> 00:52:41,342
with the, with the tools for thought
note taking thing, or realization, I

964
00:52:41,342 --> 00:52:44,952
should say, like around, around the time
of the local-first conference, where

965
00:52:44,982 --> 00:52:48,012
for years I had been using, I was like
early to roam research, and I moved to

966
00:52:48,012 --> 00:52:51,432
this app called Tana, which is like,
Gorgeously designed, like, totally acts

967
00:52:51,432 --> 00:52:55,322
like a really flexible database, and they
have a really beautiful outliner, things

968
00:52:55,332 --> 00:52:58,072
where everything has types and schemas,
and it's just the sort of thing I love.

969
00:52:58,082 --> 00:53:00,792
Like, types and schemas
everywhere, super structured data.

970
00:53:01,112 --> 00:53:03,372
and their product is great,
but it's not local-first.

971
00:53:03,392 --> 00:53:04,462
I don't think it's ever going to be.

972
00:53:04,462 --> 00:53:05,642
It's nowhere near their roadmap.

973
00:53:05,642 --> 00:53:09,622
And I just had this moment of realizing,
like, After, after going to the conference

974
00:53:09,632 --> 00:53:14,012
and like hearing all the arguments
against it, I mean, for it and against it.

975
00:53:14,012 --> 00:53:18,192
And I was like, Oh, I, even if there's a
UX cost to switch into something that's

976
00:53:18,192 --> 00:53:19,812
local-first, I like absolutely have to.

977
00:53:19,812 --> 00:53:23,202
This is like crazy that I've been using
something that doesn't work on airplanes.

978
00:53:23,202 --> 00:53:24,462
That is my note taking database.

979
00:53:24,462 --> 00:53:25,192
It's just like nuts.

980
00:53:25,282 --> 00:53:27,172
Doesn't work on that too, but it's wild.

981
00:53:27,655 --> 00:53:31,605
Well, you just don't think about, you
just don't think during airplanes.

982
00:53:32,595 --> 00:53:37,225
No, no, I know, I know, because you
kind of go, oh that's just, you know,

983
00:53:37,225 --> 00:53:40,825
all software doesn't work offline, of
course, this is just the way of the

984
00:53:40,825 --> 00:53:44,705
world, like I just have to accept this
reality, it was like my mindset before,

985
00:53:45,075 --> 00:53:48,185
and then had this switch of like, oh
no, like that's totally unacceptable,

986
00:53:48,785 --> 00:53:52,285
I absolutely cannot use, like, Software
that doesn't work online anymore.

987
00:53:52,305 --> 00:53:53,225
That's just like nuts.

988
00:53:53,635 --> 00:53:55,095
even Figma is sometimes on the edge of it.

989
00:53:55,095 --> 00:53:57,855
It doesn't always work
like perfectly offline.

990
00:53:57,885 --> 00:54:01,325
If you're trying to finish like a huge
design presentation on the flight on the

991
00:54:01,325 --> 00:54:04,885
way over to your job, it's like, this
needs to, this needs to work, you guys.

992
00:54:04,885 --> 00:54:06,945
You can't have this not
work when I go offline.

993
00:54:07,445 --> 00:54:09,725
so anyway, I made the
big switch to Obsidian.

994
00:54:09,735 --> 00:54:11,412
It was like a fair amount of work.

995
00:54:11,412 --> 00:54:13,925
Something only someone who
like really cares a lot about.

996
00:54:14,370 --> 00:54:17,820
notes and structured notes and like
knowledge bases, I guess would enjoy

997
00:54:17,820 --> 00:54:19,170
doing it, but it was worth it for me.

998
00:54:19,520 --> 00:54:23,660
and it opened up my mind to what
was possible now that I had my

999
00:54:23,660 --> 00:54:26,280
whole giant notes database local.

1000
00:54:26,690 --> 00:54:29,740
And now I could, and as I said,
they have this plugin ecosystem

1001
00:54:29,740 --> 00:54:30,910
where anyone can build plugins.

1002
00:54:30,910 --> 00:54:32,200
It's all in JavaScript on top of it.

1003
00:54:32,240 --> 00:54:35,580
And I was like, oh, wow,
I can extend this now.

1004
00:54:35,590 --> 00:54:36,620
This is my environment.

1005
00:54:36,630 --> 00:54:38,480
Like, This is not just my data.

1006
00:54:38,650 --> 00:54:40,900
I now have control over the
functionality of this thing.

1007
00:54:40,900 --> 00:54:42,530
This is totally malleable software.

1008
00:54:42,530 --> 00:54:43,800
This is end user programming.

1009
00:54:43,810 --> 00:54:47,120
Like, I'm going to build my own
spaced repetition language model

1010
00:54:47,130 --> 00:54:50,390
like crazy, Zettelkasten reviewer
system on top of this thing.

1011
00:54:50,740 --> 00:54:54,160
Um, but no one else, I don't,
well, other people might want it.

1012
00:54:54,160 --> 00:54:55,780
We'll see if I get them to work properly.

1013
00:54:55,780 --> 00:55:00,150
But, um, It just, it just was like,
oh, so much more is possible in

1014
00:55:00,150 --> 00:55:04,990
this really exciting, empowering
way where I went, oh, I own this.

1015
00:55:05,180 --> 00:55:09,100
Like I fully have control of this in a
way that I didn't with the previous tools.

1016
00:55:09,130 --> 00:55:11,740
I was always checking the change log.

1017
00:55:11,740 --> 00:55:12,670
What have they just released?

1018
00:55:12,710 --> 00:55:15,010
Like, are they going to
prioritize my feature?

1019
00:55:15,040 --> 00:55:16,590
Are they going to make the changes I want?

1020
00:55:16,985 --> 00:55:20,305
I would often write crazy CSS
stuff to hack the interface to

1021
00:55:20,305 --> 00:55:21,395
make it the way I wanted, right?

1022
00:55:21,705 --> 00:55:25,515
Just removing elements, moving
elements, changing the, the size and

1023
00:55:25,515 --> 00:55:27,175
structure of things for my preferences.

1024
00:55:27,415 --> 00:55:31,265
And again, not, most people do
not do this, but I am someone

1025
00:55:31,265 --> 00:55:33,725
that wants it to work and feel the
way I want it to work and feel.

1026
00:55:34,055 --> 00:55:36,815
so it was very liberating, and that
made me realize like, oh, local-first

1027
00:55:36,835 --> 00:55:40,605
software is actually much more
about the user having more agency

1028
00:55:40,605 --> 00:55:41,685
and control over the software.

1029
00:55:41,735 --> 00:55:44,925
They can like write their own hacks
around it in a way that's just not

1030
00:55:44,925 --> 00:55:46,395
possible with cloud based apps.

1031
00:55:46,918 --> 00:55:47,362
Yeah.

1032
00:55:47,462 --> 00:55:52,832
And I think this is another way to think
about the, the affordances that enable

1033
00:55:52,982 --> 00:55:59,492
the Barefoot developer movement, is
that also for  the experienced folks who

1034
00:55:59,522 --> 00:56:06,437
build, much more sophisticated products,
they have now much more capacity that

1035
00:56:06,437 --> 00:56:12,107
they don't need to put into running
massive Kubernetes backend systems.

1036
00:56:12,477 --> 00:56:15,337
if they want to go a little bit
more ambitious about the products

1037
00:56:15,337 --> 00:56:18,807
they're building, they could now
put those resources, that capacity

1038
00:56:19,147 --> 00:56:24,157
into facilitating more end user
programming inside of that software.

1039
00:56:24,477 --> 00:56:29,447
I think unfortunately, it's like more the
exception, than the norm that software

1040
00:56:29,457 --> 00:56:34,687
facilitates that, because it is quite
difficult to find the, what is the, the

1041
00:56:34,687 --> 00:56:39,677
right interface, the right modalities,
If there's a plugin system or those

1042
00:56:39,677 --> 00:56:43,987
sorts of things, you need to be very
intentionable of like, how far do we go?

1043
00:56:43,997 --> 00:56:46,577
How flexible do we want to make this?

1044
00:56:46,847 --> 00:56:50,547
It was like, if you want to go even
more flexibility, you might as well

1045
00:56:50,547 --> 00:56:53,977
just like throw up your hands and
say, okay, you built this as a web

1046
00:56:53,977 --> 00:56:55,607
app and we only give you an SDK.

1047
00:56:55,977 --> 00:56:58,397
and so I think there's an
interesting spectrum there.

1048
00:56:58,477 --> 00:56:59,317
And, I think.

1049
00:56:59,612 --> 00:57:03,872
Building things local-first
can free up capacity that can

1050
00:57:03,872 --> 00:57:07,992
be reinvested into making more
software end user programmable.

1051
00:57:08,549 --> 00:57:13,249
So I love those, um, those use cases
and like your recent success stories

1052
00:57:13,259 --> 00:57:16,779
that you found with, sort of the
local-first mindset, bringing that

1053
00:57:16,829 --> 00:57:19,509
into the tools for thought space.

1054
00:57:20,039 --> 00:57:26,517
Is there, any other thing in regards to
local-first where you wish or you hope

1055
00:57:26,777 --> 00:57:29,497
that local-first enables a certain thing.

1056
00:57:29,817 --> 00:57:31,767
what is like on your local-first wishlist?

1057
00:57:32,267 --> 00:57:36,367
Ooh, I mean, I definitely
want the quick spin up an app.

1058
00:57:36,397 --> 00:57:39,537
I mean, I know this is like, we mentioned
like things like Jazz and DxOS are trying

1059
00:57:39,537 --> 00:57:43,657
to do this, just develop a tooling that
makes building a local-first app easy.

1060
00:57:43,727 --> 00:57:44,397
Does not exist.

1061
00:57:44,397 --> 00:57:44,977
I tried.

1062
00:57:44,977 --> 00:57:46,907
I tried to build a local-first
app a couple of times.

1063
00:57:47,597 --> 00:57:52,217
And it was just that the, the developer
experience is not quite there yet.

1064
00:57:52,227 --> 00:57:55,197
So I think there's a lot to do
around DX and UX of just people being

1065
00:57:55,207 --> 00:57:56,267
able to build these kind of apps.

1066
00:57:56,937 --> 00:57:59,427
in terms of things they enable, I
don't know if they have that many more.

1067
00:57:59,427 --> 00:58:04,432
I mean, I certainly have specific examples
where I'm like, there's lots of personal

1068
00:58:04,462 --> 00:58:08,062
things that I would want to build my own
little apps for and I just want easy ways

1069
00:58:08,072 --> 00:58:11,502
to do that and that's like I mentioned
things like, I always want to do trips

1070
00:58:11,502 --> 00:58:15,032
with people like, you know, like groups of
like a dozen or even more but it's so hard

1071
00:58:15,042 --> 00:58:19,002
to just do all these small things in the
middle that like software so far doesn't

1072
00:58:19,002 --> 00:58:22,592
enable in these weird ways like Find out
when everyone's free during the same week

1073
00:58:22,602 --> 00:58:26,832
in an entire year and then figure out
all the flights and all the like finances

1074
00:58:26,832 --> 00:58:30,137
and the cooking and find like an airbnb
somewhere that would fit everyone You It's

1075
00:58:30,137 --> 00:58:32,027
just like a big ops and logistics problem.

1076
00:58:32,097 --> 00:58:34,337
And there's tons of these examples
in everyone's personal lives.

1077
00:58:35,050 --> 00:58:37,340
it's the kind of thing that like,
if it was local-first, who knows

1078
00:58:37,340 --> 00:58:40,220
if you're going to have like phone
signal out in the middle of wherever

1079
00:58:40,220 --> 00:58:42,440
you're going, and you're still going
to want to have access to all your

1080
00:58:42,440 --> 00:58:45,770
like timetables and finance sheets
and who's cooking dinner that night.

1081
00:58:46,147 --> 00:58:49,287
that's just the kind of smaller examples
that I think I'd, I'd like pull on is

1082
00:58:49,697 --> 00:58:51,327
there's always those for personal stuff.

1083
00:58:52,154 --> 00:58:58,484
So let me say what, once we are reaching
that point where it is super easy for

1084
00:58:58,484 --> 00:59:04,804
front end developers to build local-first,
home cooked software, I think your close

1085
00:59:04,824 --> 00:59:09,594
friends can be very happy to and very
much looking forward to be traded to

1086
00:59:09,594 --> 00:59:12,104
some locally cooked software from you.

1087
00:59:12,774 --> 00:59:15,784
Yeah, I will host a local-first
software retreat if we ever

1088
00:59:15,904 --> 00:59:17,404
manage to get those apps working.

1089
00:59:17,544 --> 00:59:20,084
If you could just make that easier, I'd
just be like, great, we're just getting

1090
00:59:20,084 --> 00:59:23,184
whole groups of people together to do
these weird camping weeks where we all

1091
00:59:23,184 --> 00:59:24,494
just build home cooking software together.

1092
00:59:25,320 --> 00:59:28,160
I think that's a, that's
a nice goal to aspire to.

1093
00:59:28,160 --> 00:59:32,290
And luckily there's many, many smart
folks like some of the ones that you've

1094
00:59:32,290 --> 00:59:34,150
mentioned who are working towards that.

1095
00:59:34,480 --> 00:59:40,274
It's just, yeah, to, to absorb as much
complexity as possible and to build it in

1096
00:59:40,274 --> 00:59:44,204
a way that developer experience is nice
and where it's not a leaky abstraction.

1097
00:59:44,534 --> 00:59:47,214
That is quite the undertaking
and takes a little bit of time,

1098
00:59:47,244 --> 00:59:49,174
but I think it's on, on its way.

1099
00:59:49,644 --> 00:59:51,274
Maybe as a last question.

1100
00:59:51,469 --> 00:59:54,979
Given that you've come to Berlin to
the local-first conference and there

1101
00:59:54,979 --> 00:59:59,779
were so many interesting people there,
I'm wondering whether besides kind of

1102
00:59:59,839 --> 01:00:04,159
opening the eyes for you, in regards
to local-first software and not

1103
01:00:04,159 --> 01:00:08,739
local-first software and ruining some
non local-first software for you, where

1104
01:00:08,739 --> 01:00:12,329
there's some other takeaways, some other
insights from conversations with people?

1105
01:00:13,049 --> 01:00:15,549
I was impressed at how
much work had been done.

1106
01:00:15,549 --> 01:00:18,559
I mean, we had a few people speak
who had been part of like the offline

1107
01:00:18,559 --> 01:00:21,239
first movement before local-first
got coined as a term, who said

1108
01:00:21,239 --> 01:00:23,929
like, this has been around since,
I want to forget the earliest year,

1109
01:00:23,929 --> 01:00:27,219
what, 2008, 2009 or something,
people started trying to do this.

1110
01:00:27,562 --> 01:00:31,482
I was impressed by how much like
previous art there was, but also

1111
01:00:31,482 --> 01:00:33,072
how it hadn't progressed that much.

1112
01:00:33,072 --> 01:00:36,642
Like maybe other things became popular
in the tech space at the time, or it

1113
01:00:36,652 --> 01:00:40,052
didn't have this same like cultural
energy behind it that it kind of does now.

1114
01:00:40,422 --> 01:00:43,242
But it was both like, wow, this has
been going on for ages, and we haven't

1115
01:00:43,242 --> 01:00:46,372
actually gotten to a place where it's,
like, standardized or easy to do yet,

1116
01:00:46,752 --> 01:00:49,912
But then all the people who presented
at the conference, it made me get this

1117
01:00:49,912 --> 01:00:51,862
sense of like, Oh, things are picking up.

1118
01:00:51,872 --> 01:00:53,042
People are working things out.

1119
01:00:53,052 --> 01:00:56,302
Like a bunch of these like
wonderfully smart people have

1120
01:00:56,302 --> 01:00:58,762
solved a bunch of complex problems
over the last couple of years.

1121
01:00:58,772 --> 01:00:59,382
Like, great.

1122
01:00:59,412 --> 01:01:02,342
We are like hitting inflection points,
you know, CRDTs and like Automerge

1123
01:01:02,342 --> 01:01:04,922
and things like this are like
actually making a huge difference.

1124
01:01:05,492 --> 01:01:10,112
so I think I was just kind of blown away
by how much sophisticated, hard technical

1125
01:01:10,112 --> 01:01:11,942
work had already been invested into this.

1126
01:01:13,002 --> 01:01:16,582
philosophy or dream, that made me
go, Oh, this has to happen now.

1127
01:01:16,582 --> 01:01:18,302
Like this has to, this has to pan out.

1128
01:01:18,482 --> 01:01:20,802
Like we've hit the apex,
we're over the hump.

1129
01:01:21,452 --> 01:01:24,922
Yeah, this was certainly the
goal with the conference to just

1130
01:01:24,972 --> 01:01:26,402
bring together all the people.

1131
01:01:26,402 --> 01:01:27,212
There's so much.

1132
01:01:27,517 --> 01:01:34,037
Momentum already happening, but a lot
of it is like mostly felt on a given

1133
01:01:34,037 --> 01:01:39,037
day on someone's solitary desk and
like they're working on something and

1134
01:01:39,037 --> 01:01:42,897
think, Oh my gosh, this is so cool,
but like, does anyone else care?

1135
01:01:43,097 --> 01:01:45,047
And then bring all of
those people together.

1136
01:01:45,297 --> 01:01:50,767
The momentum compounds, and then you
go even further and show like how this

1137
01:01:50,967 --> 01:01:53,157
can have like a massive global impact.

1138
01:01:53,440 --> 01:01:54,120
this is sweet.

1139
01:01:54,120 --> 01:01:57,320
We certainly met all of those goals
and exceeded them for ourselves.

1140
01:01:57,330 --> 01:02:01,680
And thank you so much for contributing in
such a meaningful way to, to that event.

1141
01:02:02,105 --> 01:02:03,155
Yeah, no, I loved it.

1142
01:02:03,165 --> 01:02:06,432
And I'll also add on that I think I
was also impressed by, everyone in this

1143
01:02:06,432 --> 01:02:10,972
community is like, maybe, maybe by nature
of being at a conference like this, which

1144
01:02:10,972 --> 01:02:14,112
is trying to say, let's build software
differently, like, let's do a radical

1145
01:02:14,112 --> 01:02:18,742
change to the way software works, was,
you know, Then the kind of person who

1146
01:02:18,742 --> 01:02:22,702
was also thinking very creatively out
of the box, like out of the norm about

1147
01:02:22,702 --> 01:02:25,982
how we should build software, what
software is, like who builds software.

1148
01:02:26,259 --> 01:02:29,959
it was a, it's a very like holistic,
I think is the word I want to use,

1149
01:02:29,989 --> 01:02:31,619
approach to understanding what.

1150
01:02:32,174 --> 01:02:35,544
Software and programming is, which is what
I always love at the right conferences.

1151
01:02:35,544 --> 01:02:37,994
It's like, okay, we are not
just showing each other like how

1152
01:02:37,994 --> 01:02:41,414
to do API calls with some new
framework, like React on the screen.

1153
01:02:41,414 --> 01:02:42,574
Like, please God, no, not anymore.

1154
01:02:42,844 --> 01:02:46,734
But if someone could please talk about
like how this fits into like developer

1155
01:02:46,734 --> 01:02:49,694
culture or wider culture, I felt
like there was a lot of that at the

1156
01:02:49,704 --> 01:02:51,144
conference that I really appreciated.

1157
01:02:51,954 --> 01:02:58,904
Yeah, that's what I think makes it such
an inclusive and wide space, since at the

1158
01:02:58,904 --> 01:03:04,624
end of the day, the, also the local-first
essay was not very prescriptive in terms

1159
01:03:04,624 --> 01:03:11,730
of like, you ought to use CRDTs, but
laid out those ideals of like, of things

1160
01:03:11,740 --> 01:03:13,820
that I think most people can get behind.

1161
01:03:14,180 --> 01:03:18,800
and some might see it as like a nice
to have bonus and some others say

1162
01:03:18,800 --> 01:03:22,920
like, Absolutely, I won't touch any
software that doesn't respect all

1163
01:03:22,920 --> 01:03:27,520
of those ideals, but I think this,
kind of spans a very wide open tent.

1164
01:03:27,970 --> 01:03:29,360
Yeah, I feel like it's sort of.

1165
01:03:29,835 --> 01:03:32,035
Like the older people who
have been in software a while

1166
01:03:32,035 --> 01:03:32,995
sort of already knew this.

1167
01:03:32,995 --> 01:03:35,855
They're like, yeah, you don't trust
random companies with your data.

1168
01:03:35,875 --> 01:03:37,025
Like we've seen enough of them die.

1169
01:03:37,035 --> 01:03:39,365
Like they're very, like,
I keep everything locally.

1170
01:03:39,365 --> 01:03:40,305
I make it all myself.

1171
01:03:40,645 --> 01:03:45,385
And then I feel like, you know, younger
people, let's say people like born after

1172
01:03:45,395 --> 01:03:49,995
like 1985 or something, you know, we
just, we Didn't live through that, that

1173
01:03:49,995 --> 01:03:51,675
period of everything dying off as much.

1174
01:03:51,695 --> 01:03:54,685
And so a little bit more naive, a little
bit more like, yeah, of course, all my

1175
01:03:54,685 --> 01:03:58,365
data lives in the cloud at some random
person's server, of course I don't own

1176
01:03:58,365 --> 01:04:02,175
it, of course I don't have the ability
to edit my apps, the sort of, blinkered

1177
01:04:02,215 --> 01:04:05,175
by what we think is possible and what we
think we're allowed to do in software.

1178
01:04:05,185 --> 01:04:08,605
And this is kind of like unblinkering
people being like, okay, you've been

1179
01:04:08,605 --> 01:04:13,565
living in this paradigm, but this
is not the way things have to be.

1180
01:04:13,625 --> 01:04:14,535
We could change this.

1181
01:04:14,585 --> 01:04:18,515
This is just like how things unfolded
because of market like forces.

1182
01:04:18,545 --> 01:04:18,835
But.

1183
01:04:19,360 --> 01:04:21,690
What if, what if you actually
had control over your software?

1184
01:04:21,700 --> 01:04:22,570
Like crazy idea.

1185
01:04:23,284 --> 01:04:23,854
I love it.

1186
01:04:24,424 --> 01:04:27,534
Maggie, thank you so much for
this wonderful conversation.

1187
01:04:27,604 --> 01:04:31,014
Thank you so much again for
contributing in such a great way

1188
01:04:31,014 --> 01:04:35,694
to the conference, coining a whole
new term and inspiring many, many

1189
01:04:35,694 --> 01:04:40,424
developers and barefoot developers,
soon to be barefoot developers.

1190
01:04:40,564 --> 01:04:42,494
So thank you so much for
taking the time today.

1191
01:04:42,874 --> 01:04:43,614
Yeah, I really loved it.

1192
01:04:43,654 --> 01:04:44,654
Thanks so much for having me chat.

1193
01:04:45,518 --> 01:04:47,928
Thank you for listening to
the local-first FM podcast.

1194
01:04:48,158 --> 01:04:51,668
If you've enjoyed this episode and haven't
done so already, please subscribe and

1195
01:04:51,668 --> 01:04:53,228
leave a review wherever you're listening.

1196
01:04:53,598 --> 01:04:55,598
Please also share this
episode with others.

1197
01:04:55,898 --> 01:04:58,698
Spreading the word about the
podcast is a great way to

1198
01:04:58,698 --> 01:05:00,298
support it and to keep it going.

1199
01:05:00,768 --> 01:05:04,778
A special thanks again to Rocicorp
and Expo for supporting this podcast.

1200
01:05:04,948 --> 01:05:05,738
See you next time.