1
00:00:00,000 --> 00:00:03,319
You know, in the end, I kind of hope all
software will be local-first, but there's

2
00:00:03,329 --> 00:00:09,980
varying degrees to which paying that,
being early tax, the pioneer taxes, as you

3
00:00:09,980 --> 00:00:13,273
described it, may be worth it depending
on the domain that you're building for.

4
00:00:13,273 --> 00:00:16,013
But of course, over time, that
pioneer tax gets less and less.

5
00:00:16,023 --> 00:00:18,996
It's already gotten way less than
last year, and probably in the

6
00:00:19,366 --> 00:00:20,996
last six months, it will get less.

7
00:00:21,376 --> 00:00:25,273
It's going to continue going down,
and so that makes the trade off.

8
00:00:25,668 --> 00:00:26,838
to think about less and less.

9
00:00:26,838 --> 00:00:30,378
And eventually it just becomes
the pragmatic solution to just

10
00:00:30,378 --> 00:00:32,298
say like, Oh, obviously you're
going to do things that way.

11
00:00:32,298 --> 00:00:34,298
That's just kind of the best way.

12
00:00:34,858 --> 00:00:36,988
Welcome to the local-first FM podcast.

13
00:00:37,088 --> 00:00:40,068
I'm your host, Johannes Schickling,
and I'm a web developer, a

14
00:00:40,068 --> 00:00:43,328
startup founder, and love the
craft of software engineering.

15
00:00:43,788 --> 00:00:47,928
For the past few years, I've been on a
journey to build a modern, high quality

16
00:00:47,928 --> 00:00:50,028
music app using web technologies.

17
00:00:50,248 --> 00:00:54,328
And in doing so, I've been falling down
the rabbit hole of local-first software.

18
00:00:54,738 --> 00:00:58,718
In this episode, I'm speaking to Adam
Wiggins, who's the founder of Heroku

19
00:00:58,948 --> 00:01:03,068
and one of the original co-authors of
the local-first essay by Ink & Switch.

20
00:01:03,618 --> 00:01:07,668
As Adam is also a co-organizer of the
first Local-First Conference, in this

21
00:01:07,668 --> 00:01:11,498
conversation, we reflect on the event,
share our learnings, and discuss a

22
00:01:11,498 --> 00:01:15,698
couple of key topics, such as a new
definition of local-first software.

23
00:01:16,168 --> 00:01:19,768
Before getting started, also a
big thank you to Rosicorp and

24
00:01:19,778 --> 00:01:21,928
Expo for supporting this podcast.

25
00:01:22,298 --> 00:01:24,428
And now my conversation with Adam.

26
00:01:25,151 --> 00:01:26,681
Hey Adam, welcome to the show.

27
00:01:26,691 --> 00:01:27,361
How are you doing?

28
00:01:27,688 --> 00:01:30,018
Hey Johannes, I'm doing really well.

29
00:01:30,028 --> 00:01:34,118
Still kind of glowing with the
buzz of a successful conference.

30
00:01:34,998 --> 00:01:37,538
Yeah, I'm super excited
to have you on the show.

31
00:01:37,618 --> 00:01:41,528
Uh, and to be fair, this show probably
wouldn't exist without you since you've

32
00:01:41,548 --> 00:01:46,291
provided a lot of guidance behind the
scenes, given that you've, run this, this

33
00:01:46,321 --> 00:01:52,061
amazing podcast for Metamuse, which has
always been a lot of inspiration to me.

34
00:01:52,456 --> 00:01:55,726
And so you've certainly been a bit
of a catalyst for me to start this

35
00:01:55,756 --> 00:02:00,196
podcast, but for the audience who's
maybe not as familiar with you, would

36
00:02:00,196 --> 00:02:03,996
you mind briefly giving a background
and what led you to local-first?

37
00:02:04,373 --> 00:02:04,973
Certainly.

38
00:02:05,373 --> 00:02:09,243
Well, I think a lot of folks might
know a company I started called

39
00:02:09,243 --> 00:02:13,783
Heroku, which does web app deployment,
very cloud centric, which is sort

40
00:02:13,783 --> 00:02:17,943
of part of the story of what brought
me to local-first is going all in

41
00:02:17,953 --> 00:02:20,663
on cloud when that was on its rise.

42
00:02:21,046 --> 00:02:25,716
Since then, I founded a industrial
research lab called Ink & Switch, which

43
00:02:25,746 --> 00:02:30,586
I'm guessing listeners of the podcast
may often know that that was the place

44
00:02:30,586 --> 00:02:35,406
where we gestated first the research,
the kind of CRDT and peer to peer stuff

45
00:02:35,446 --> 00:02:40,226
that led into us forming this position
piece, which we eventually decided to

46
00:02:40,236 --> 00:02:44,536
give the label local-first software
and indeed has continued to try to

47
00:02:44,596 --> 00:02:46,516
push forward in that, in that field.

48
00:02:47,346 --> 00:02:51,426
And after that, I went to work on a spin
out from the research lab called Muse,

49
00:02:51,806 --> 00:02:55,386
which is an infinite canvas for thinking,
did that for about four years before

50
00:02:55,396 --> 00:02:59,379
handing it over to my colleague who's
still running it, and, we built that

51
00:02:59,419 --> 00:03:04,609
as a fully local-first system, kind of
homegrown, and, Yeah, that's, uh, that's

52
00:03:04,609 --> 00:03:06,059
what brought me, brought me to today.

53
00:03:06,636 --> 00:03:11,529
Yeah, I feel like there's a lot to unpack
and to go deeper, but that is not the

54
00:03:11,529 --> 00:03:16,769
focus for today's episode, since, you and
I have not just been collaborating on the

55
00:03:16,779 --> 00:03:23,479
podcast, but also on another undertaking,
which is the first Local-First Conference

56
00:03:23,539 --> 00:03:25,669
that we did together in Berlin.

57
00:03:26,239 --> 00:03:32,188
And so this conference kind of came to
be as I did last year, when Jeoffrey

58
00:03:32,188 --> 00:03:36,928
Litt was in town, I wanted to meet with
Jeoffrey and a whole bunch of other people

59
00:03:36,928 --> 00:03:38,558
and the common theme was local-first.

60
00:03:38,868 --> 00:03:44,228
So I felt like a good way to accommodate
all of that is like led to me doing

61
00:03:44,248 --> 00:03:46,358
a local-first meetup in Berlin.

62
00:03:46,631 --> 00:03:50,261
That went so well and had so many
people show up and so many interesting

63
00:03:50,261 --> 00:03:54,231
conversations that at a minimum,
I was thinking of doing the meetup

64
00:03:54,291 --> 00:03:59,681
again, but I was floating the idea
of doing a Local-First Conference,

65
00:03:59,681 --> 00:04:01,431
and taking sort of that next step.

66
00:04:01,431 --> 00:04:04,741
I was floating this idea with you
and I was floating this idea with a

67
00:04:04,741 --> 00:04:08,798
few other friends who I organized,
the GraphQL conferences in the past.

68
00:04:08,838 --> 00:04:10,288
So one thing led to another.

69
00:04:10,818 --> 00:04:16,431
And, jokingly thinking about starting this
conference led to us actually grouping

70
00:04:16,431 --> 00:04:18,321
up, doing the conference together.

71
00:04:18,761 --> 00:04:22,561
And, I think it went
absolutely brilliantly.

72
00:04:22,591 --> 00:04:27,011
So, so many interesting folks Giving
amazing talks, so many interesting

73
00:04:27,031 --> 00:04:32,351
conversations of in between the
talks and people came from all

74
00:04:32,351 --> 00:04:38,331
across the world, from like Hawaii to
Australia to Singapore and Bangkok.

75
00:04:38,341 --> 00:04:43,699
And so that went way beyond my
expectations, but I suppose only

76
00:04:43,749 --> 00:04:47,189
a few amount of the people who are
listening to the podcast maybe had

77
00:04:47,439 --> 00:04:51,049
the chance to actually attend since
the tickets were kind of flying

78
00:04:51,069 --> 00:04:52,519
off the shelves pretty quickly.

79
00:04:52,839 --> 00:04:58,469
So would you mind providing a recap
of like what the conference, how

80
00:04:58,469 --> 00:05:00,999
that actually went down for, for
the few days where it happened?

81
00:05:01,469 --> 00:05:03,269
Yeah, there's a lot to tell there.

82
00:05:03,639 --> 00:05:07,539
Uh, if I can add just slightly to
your, to your origin story, uh, there,

83
00:05:07,819 --> 00:05:10,459
I do think it's interesting to note
that, you know, you talked about the

84
00:05:10,459 --> 00:05:14,169
meetup that you organized last year
and all the energy that came from that.

85
00:05:14,549 --> 00:05:18,249
I mean, I think you and I were, were
discussing around that time, you

86
00:05:18,249 --> 00:05:22,429
know, over lunch or something like
that, that like we saw this surge in

87
00:05:22,429 --> 00:05:26,679
interest in local-first, well funded
companies who are popping up to build

88
00:05:26,679 --> 00:05:30,479
infrastructure, more products who are
either using that terminology in their

89
00:05:30,489 --> 00:05:32,749
marketing or building in that, that way.

90
00:05:32,759 --> 00:05:37,549
And this is sort of surprising because
the paper itself is five years old.

91
00:05:37,559 --> 00:05:41,469
A lot of the research and technology
is closer to a decade old.

92
00:05:41,949 --> 00:05:43,509
Why now in particular?

93
00:05:43,509 --> 00:05:47,239
And I think the answer is ideas just take
a long time to disseminate or I'm not

94
00:05:47,239 --> 00:05:50,883
even sure why, but we were just observing
this and saying, This is pretty exciting.

95
00:05:50,893 --> 00:05:52,783
And then what should we do to help that?

96
00:05:52,863 --> 00:05:56,763
And I was brainstorming along the lines
of like, maybe it's the time to make

97
00:05:56,773 --> 00:05:58,423
a foundation or something like that.

98
00:05:58,423 --> 00:06:02,093
And you, you kind of felt no, and
I think your instincts were right.

99
00:06:02,113 --> 00:06:04,023
And ultimately, yeah,
you organized the meetup.

100
00:06:04,373 --> 00:06:07,223
That was an incredible amount
of turnout and energy there.

101
00:06:07,533 --> 00:06:10,383
You said, I'm going to start a
podcast, which you have done and,

102
00:06:10,383 --> 00:06:14,143
and it's going great from what I can,
uh, what I can tell as a listener.

103
00:06:14,473 --> 00:06:18,623
And then this beginning of this year,
you said, you know, maybe it's the time

104
00:06:18,623 --> 00:06:22,883
for a conference to really try to put
it on the map, not just as a kind of an

105
00:06:22,893 --> 00:06:26,783
academic thing, because there have been
programming local-first days connected to

106
00:06:26,783 --> 00:06:31,303
academic conferences, but as a thing for
builders and a thing for, this is a thing.

107
00:06:31,753 --> 00:06:35,063
This is a technology or a set
of ideas about how to build

108
00:06:35,383 --> 00:06:36,913
applications that is real.

109
00:06:36,913 --> 00:06:37,713
It is here now.

110
00:06:37,713 --> 00:06:38,533
You can use it.

111
00:06:38,843 --> 00:06:39,743
It's exciting.

112
00:06:39,813 --> 00:06:43,703
And, you know, meet other people
who are, meet the other weirdos

113
00:06:43,703 --> 00:06:44,763
who are interested in this.

114
00:06:45,296 --> 00:06:50,676
I think this very distinctly marked
a moment for me where There were

115
00:06:50,736 --> 00:06:55,386
so many people and, most notably
a bunch of people who I've never

116
00:06:55,386 --> 00:06:56,796
seen before, who I've never met.

117
00:06:57,086 --> 00:07:01,966
So this kind of like tightly
knit group of local-first experts

118
00:07:02,466 --> 00:07:06,066
seems to have like really grown
already into a wider audience.

119
00:07:06,646 --> 00:07:10,946
Who, taking those ideas, building
apps that I wasn't aware of.

120
00:07:10,986 --> 00:07:16,116
And so this is growing beyond this, this,
core group, which I think is a, is a

121
00:07:16,126 --> 00:07:20,676
brilliant sign of success that the ideas
are, going to where they need to go.

122
00:07:21,119 --> 00:07:21,849
Yeah, that's a great point.

123
00:07:21,849 --> 00:07:23,169
I think that was part
of the thing last year.

124
00:07:23,169 --> 00:07:27,439
It was like, up until that point,
if anything ever came along, a

125
00:07:27,549 --> 00:07:32,939
library, a product, an essay that
referenced the concept, I'm like,

126
00:07:33,079 --> 00:07:34,079
oh yeah, I know who that is.

127
00:07:34,149 --> 00:07:37,519
I know them from this core
community, this small circle of

128
00:07:37,519 --> 00:07:38,769
people who's been interested in it.

129
00:07:38,779 --> 00:07:42,169
And last year, it started to be more
and more things popping up where

130
00:07:42,229 --> 00:07:43,784
I just thought, I'm Who is this?

131
00:07:43,784 --> 00:07:44,594
I've never met this person.

132
00:07:44,604 --> 00:07:45,224
That's good.

133
00:07:45,444 --> 00:07:47,794
It's growing beyond its, its origins.

134
00:07:47,916 --> 00:07:48,496
Exactly.

135
00:07:48,526 --> 00:07:52,686
And I think what's also been interesting
in the conference, and I'll invite you

136
00:07:52,686 --> 00:07:57,966
to provide a recap to, to that shortly,
but it's been so interesting that

137
00:07:57,986 --> 00:08:03,899
like local-first has sort of a diffuse
timeline where there's certainly the

138
00:08:03,919 --> 00:08:08,559
very notable point in time where you
and Peter and Martin, et cetera, have

139
00:08:08,559 --> 00:08:10,389
like written this, this amazing essay.

140
00:08:10,759 --> 00:08:14,966
But the ideas of local-first,
already were out there before that.

141
00:08:15,106 --> 00:08:17,776
They were maybe not as
crisply written down.

142
00:08:17,776 --> 00:08:21,596
And so at this conference, we also
had people who've been de facto doing

143
00:08:21,596 --> 00:08:26,396
local-first software before the term
was like as clearly written down.

144
00:08:26,656 --> 00:08:30,894
And so we brought together all of like
those sort of like Real old school,

145
00:08:30,894 --> 00:08:35,344
like OG, local-first people and
sort of like the people who just got

146
00:08:35,344 --> 00:08:37,394
attracted by the essay and beyond that.

147
00:08:37,834 --> 00:08:43,194
So, yeah, I'm curious, maybe you
can recap, what was the goal for how

148
00:08:43,194 --> 00:08:46,184
we laid out the conference and what
did happen over the conference days?

149
00:08:46,566 --> 00:08:52,546
Yeah, so we wanted to make it big enough
to feel, well, I guess like a conference,

150
00:08:52,546 --> 00:08:54,576
like an event, like something serious.

151
00:08:54,596 --> 00:08:58,156
This is a community with some gravitas to
it, but small enough to still be intimate.

152
00:08:58,176 --> 00:08:59,346
We want to be able to talk to everyone.

153
00:08:59,596 --> 00:09:02,776
And honestly, we really didn't know
the level of interest there would be.

154
00:09:02,796 --> 00:09:05,036
As you pointed out, we, we
sold out way too quickly.

155
00:09:05,036 --> 00:09:06,156
We had to turn lots of.

156
00:09:06,461 --> 00:09:09,751
Wonderful people away and speaker
plus ones and everything like that.

157
00:09:10,121 --> 00:09:13,341
So, so maybe we, we underestimated
the interest, which is, I guess, a

158
00:09:13,341 --> 00:09:15,851
good problem to have, but yeah, we
had a venue for about 200 people.

159
00:09:16,301 --> 00:09:20,411
Uh, we ended up with 18 speakers,
which was a lot to fit into to one day.

160
00:09:20,791 --> 00:09:24,901
Um, although I think the, the rapid fire
nature of it also helped create a lot

161
00:09:24,901 --> 00:09:28,961
of energy and keep the signal, the noise
or the, density, I guess, of information

162
00:09:28,971 --> 00:09:30,431
high, which I liked quite a bit.

163
00:09:30,648 --> 00:09:33,721
So that was sort of the main day
event in a beautiful venue that, you

164
00:09:33,721 --> 00:09:37,071
and, and our other, co conspirator
Emma had, had used in the past.

165
00:09:37,341 --> 00:09:40,861
and then we did a second event that was
kind of, or a second day that we sort

166
00:09:40,861 --> 00:09:45,181
of added on a little later when we saw
the interest, which we call an Expo Day.

167
00:09:45,501 --> 00:09:49,411
This was run by, our friend Peter Van
Hardenburg, where basically bringing

168
00:09:49,421 --> 00:09:52,861
all the people who are building
infrastructure, that is, say, libraries

169
00:09:52,901 --> 00:09:58,906
or, um, services that provides some
kind of framework or, or way to, to

170
00:09:58,906 --> 00:10:02,116
do local-first versus, you know, just
sitting down to write your own CRDT

171
00:10:02,126 --> 00:10:06,189
from scratch, and get them to get up,
give a demo, help everyone walk through

172
00:10:06,189 --> 00:10:10,069
it on their laptops, get started,
and then provide hands on support.

173
00:10:10,069 --> 00:10:13,699
So hopefully going from the speaker
day, or the intention anyway is to

174
00:10:13,709 --> 00:10:16,609
go from the speaker day with the
talks to get everyone inspired.

175
00:10:17,023 --> 00:10:20,453
and then go into a day that was more
about building and making things.

176
00:10:20,503 --> 00:10:22,946
And I think, indeed, that is,
that is how it worked out.

177
00:10:23,266 --> 00:10:26,833
And then, the other, I think,
awesome thing that happened, in

178
00:10:26,833 --> 00:10:30,779
addition to, the main event is
we actually had satellite events.

179
00:10:30,779 --> 00:10:33,779
We had folks who, uh, did
things before and after.

180
00:10:33,779 --> 00:10:36,649
One of the more notable ones, I think,
was that there was a Future of Coding

181
00:10:36,959 --> 00:10:39,039
meetup that someone organized for the day.

182
00:10:39,689 --> 00:10:44,284
After, I got word, uh, later that
a bunch of the folks working on the

183
00:10:44,284 --> 00:10:47,504
identity problem, which is, remains
kind of one of the big unsolved problems

184
00:10:47,504 --> 00:10:51,334
of local-first, got together and
did like a 12 hour marathon session.

185
00:10:51,634 --> 00:10:54,674
and there's a, uh, a blog post we
can maybe link to in the show notes,

186
00:10:54,674 --> 00:10:58,304
which was kind of the output of,
what the state of the art is there.

187
00:10:58,654 --> 00:11:02,084
And then I think there was just
a ton of follow on, uh, work.

188
00:11:02,224 --> 00:11:04,304
Kind of energy or something
like that on, on Twitter.

189
00:11:04,904 --> 00:11:08,934
So there's various threads around people
reflecting on the conference, of course.

190
00:11:09,264 --> 00:11:11,064
Paul Butler had a really
excellent write up.

191
00:11:11,064 --> 00:11:12,554
Again, maybe we can link that as well.

192
00:11:12,894 --> 00:11:16,974
But also just a lot of people discussing
and debating, and I think therefore

193
00:11:16,974 --> 00:11:18,464
surfacing the term for new people.

194
00:11:18,464 --> 00:11:20,204
A lot of folks coming in and
being like, wait, what is,

195
00:11:20,424 --> 00:11:21,424
what are we talking about here?

196
00:11:21,604 --> 00:11:22,744
What is this local-first thing?

197
00:11:23,114 --> 00:11:27,114
But people also having  good genuine
arguments about, like, is this, you

198
00:11:27,114 --> 00:11:30,364
know, is this trend something that is
worth paying attention to, what are the

199
00:11:30,374 --> 00:11:34,721
real benefits here, why do you want to
do things this way, and so the, just the

200
00:11:34,721 --> 00:11:39,649
sense that, I think, again, part of our
goal for the event was help  give this

201
00:11:39,809 --> 00:11:45,109
community a center point and put it on
the map and further expand the community

202
00:11:45,109 --> 00:11:49,359
beyond this core set of people who've
been interested in it for a long time.

203
00:11:49,359 --> 00:11:51,902
And I, at least I feel like
it really, accomplished that.

204
00:11:51,932 --> 00:11:54,772
What's your, what's your read
on the, uh, you know, looking

205
00:11:54,772 --> 00:11:55,752
back post talk a little bit

206
00:11:56,237 --> 00:11:57,277
yeah, absolutely.

207
00:11:57,307 --> 00:12:02,477
So I found it so fascinating how
we tried to create a bit of a

208
00:12:02,487 --> 00:12:06,627
structure of like a conference
day, as opposed to an unconference.

209
00:12:06,637 --> 00:12:11,437
It's like certainly a more structured,
a more curated experience where people

210
00:12:11,617 --> 00:12:13,167
like need to come to the same place.

211
00:12:13,167 --> 00:12:16,557
It was very important for us that
we wanted to make it a, like, more

212
00:12:16,727 --> 00:12:21,407
put the focus on the in person
experience, throughout COVID, etc.

213
00:12:21,407 --> 00:12:24,787
I've attended many
online only events, etc.

214
00:12:24,787 --> 00:12:29,107
And it's just not the same, like , You
can't compare meeting someone, like

215
00:12:29,157 --> 00:12:33,067
going really deep, very quickly on a
certain topic, grabbing a coffee with

216
00:12:33,067 --> 00:12:37,817
them, going even deeper and exchanging
ideas in a very like organic way.

217
00:12:37,967 --> 00:12:40,807
You can't do that over
text chat or over Zoom.

218
00:12:40,807 --> 00:12:45,167
So doing that in person where
other people can chime in, this

219
00:12:45,167 --> 00:12:46,547
was certainly the bread and butter.

220
00:12:46,917 --> 00:12:52,102
and so combining that with inviting
like people who have deep expertise

221
00:12:52,552 --> 00:12:54,942
so they can give talks, et cetera.

222
00:12:55,162 --> 00:12:58,842
This was the foundation, but
where this then led to that it

223
00:12:58,852 --> 00:13:00,412
wasn't just the conference day.

224
00:13:00,412 --> 00:13:04,952
And then we did the, the, the expo
day after, but that like kind of

225
00:13:05,142 --> 00:13:09,462
organically and spontaneously,
other people contributed whole

226
00:13:09,542 --> 00:13:10,952
satellite events around it.

227
00:13:10,962 --> 00:13:14,242
It really felt like a whole, not
just a Local-First Conference

228
00:13:14,282 --> 00:13:19,332
day, but a whole local-first week
where we had amazing people coming

229
00:13:19,332 --> 00:13:20,812
from, from all over the world.

230
00:13:21,172 --> 00:13:25,002
And so for me, basically started,
even though the conference day was on

231
00:13:25,012 --> 00:13:30,547
Thursday, For me, it started on Monday
night when, Steve Ruiz and other people

232
00:13:30,687 --> 00:13:34,717
came in and when we went to a beer
garden until midnight every day, and

233
00:13:34,717 --> 00:13:39,007
we're just going deep on, on syncing
and CRTs and trade offs, et cetera.

234
00:13:39,017 --> 00:13:40,067
And that, that was amazing.

235
00:13:40,127 --> 00:13:42,307
Um, and so just to see.

236
00:13:42,542 --> 00:13:46,472
The, the energy and like the different
sort of paths that people have,

237
00:13:46,692 --> 00:13:49,862
where some of them are building apps,
some of them are building tools.

238
00:13:49,872 --> 00:13:54,472
Some of them combine both or tackle it
from an entirely different perspective.

239
00:13:54,902 --> 00:13:59,382
this was just a wonderful, uh,
coming together of different people.

240
00:13:59,422 --> 00:14:00,792
So this was the core of it for me.

241
00:14:01,079 --> 00:14:06,276
The different people aspect of things
was both a goal, a top level goal for me.

242
00:14:06,316 --> 00:14:10,546
Uh, and also my biggest concern
about whether it would work.

243
00:14:10,926 --> 00:14:13,366
So basically I saw it as a chance
to, you know, we talked about

244
00:14:13,366 --> 00:14:14,766
expanding that core community.

245
00:14:14,766 --> 00:14:19,656
I saw it as something where you had
people, especially around the academic

246
00:14:19,656 --> 00:14:23,606
world or connected to Ink and Switch in
the research world, or have been working

247
00:14:23,606 --> 00:14:28,516
on this realm of things for a long time,
or often come at it, and I put myself

248
00:14:28,516 --> 00:14:32,686
in this category from an ideological
perspective, this way of building

249
00:14:32,696 --> 00:14:37,586
represents a way that I think computers
can be better for humanity on net.

250
00:14:37,856 --> 00:14:41,416
It's not just about, of course, I love
the better developer experience and

251
00:14:41,416 --> 00:14:44,536
the lower operational cost and some
of these benefits, but I think that

252
00:14:44,826 --> 00:14:49,969
there is a philosophical aspect to it
that is, for me, is the heart of it.

253
00:14:50,329 --> 00:14:55,724
But also, I think, to grow and to be, to
go into the real world and to be relevant

254
00:14:55,944 --> 00:14:59,814
in the real world, you need to, in some
cases, be more pragmatic than that.

255
00:14:59,824 --> 00:15:03,104
The way the one person put it in a,
in a conversation with me is they're

256
00:15:03,104 --> 00:15:06,164
like, I came to this cause it's like
a way to save money on my cloud bill.

257
00:15:06,494 --> 00:15:07,184
And it's just like.

258
00:15:07,589 --> 00:15:10,639
Clouds, you know, my cloud bill
keeps killing my startups because

259
00:15:10,639 --> 00:15:12,739
it run up a too, too big a cost.

260
00:15:12,739 --> 00:15:14,009
And this is a way to cut that down.

261
00:15:14,009 --> 00:15:17,516
And that sounds so reductive
and,  almost even offensive.

262
00:15:17,526 --> 00:15:19,936
Maybe if you do come at it from
the ideological perspective, but

263
00:15:19,936 --> 00:15:23,086
also that, that makes sense that
there are a variety of benefits.

264
00:15:23,086 --> 00:15:25,726
There's a variety of paths
of why you would come here.

265
00:15:25,756 --> 00:15:29,876
And so to, you know, I think the big
tent approach of there's room for, for

266
00:15:29,876 --> 00:15:32,136
everyone, if we can find common ground.

267
00:15:32,156 --> 00:15:36,671
So we really were trying to bring in
that core community, of course, but

268
00:15:36,681 --> 00:15:40,851
also people who are more pragmatic,
you know, they're building a company,

269
00:15:40,851 --> 00:15:44,211
they're an engineer, they're a designer,
something they want to get some specific

270
00:15:44,251 --> 00:15:48,051
immediate benefit for their business,
or they see a commercial opportunity.

271
00:15:48,051 --> 00:15:51,251
For example, we've had a few investors
here, you know, I think it's still

272
00:15:51,251 --> 00:15:55,666
pretty early for that, but a few folks
who, you know, see that there's, uh,

273
00:15:55,676 --> 00:15:57,016
there's commercial opportunity there.

274
00:15:57,299 --> 00:16:01,669
and the 3rd demographic, if you, if
you want to think of the, you know,

275
00:16:01,749 --> 00:16:06,479
the longtime core community, idealism
driven folks, and then the builders or

276
00:16:06,479 --> 00:16:10,869
commercial opportunity, pragmatic folks
as, as another demographic, a 3rd one,

277
00:16:11,044 --> 00:16:14,744
Actually, it would just be the local-first
curious and some of the best conversations

278
00:16:14,744 --> 00:16:18,344
I had, I think, were, uh, with a lot
of those folks, many of whom, you know,

279
00:16:18,434 --> 00:16:21,484
basically just said, I'd never heard of
this term up until when this conference

280
00:16:21,484 --> 00:16:24,537
was announced, but I, I see there's
something going on here and I I wanted to

281
00:16:24,547 --> 00:16:27,507
find out about it and it was great to get
all those people together and our goal

282
00:16:27,507 --> 00:16:28,797
was to get all those people together.

283
00:16:28,797 --> 00:16:32,027
But there was also a chance that
those people could very much clash.

284
00:16:32,289 --> 00:16:37,009
the, uh, folks who see pragmatic benefits
in it, and the folks who come from

285
00:16:37,009 --> 00:16:40,859
a status quo perspective on building
applications, and the folks who are

286
00:16:40,859 --> 00:16:45,789
long time members of the community
might just not like each other,

287
00:16:45,839 --> 00:16:47,459
get along, or share enough values.

288
00:16:47,699 --> 00:16:53,494
so that was a concern for me, but I think
100% The way it bore out was we have

289
00:16:53,534 --> 00:16:55,244
way more in common than differences.

290
00:16:55,544 --> 00:16:56,614
Yeah, most certainly.

291
00:16:56,654 --> 00:17:02,011
I think we struck a really nice balance
there where, it was very approachable

292
00:17:02,111 --> 00:17:06,634
for experienced engineers who've
like experienced different kind of

293
00:17:06,664 --> 00:17:11,464
problems building cloud apps and
building on different platforms where

294
00:17:11,464 --> 00:17:15,804
they might not be yet all familiar
with the ideas of local-first, but I

295
00:17:15,814 --> 00:17:17,774
think they could throughout the stay.

296
00:17:18,084 --> 00:17:22,654
Uh, it really clicked for them how
local-first provides an interesting

297
00:17:22,654 --> 00:17:26,764
alternative that addresses a lot of
the problems that they have, as well

298
00:17:26,764 --> 00:17:31,714
as for people who are already very
deep in local-first of the last couple

299
00:17:31,714 --> 00:17:35,341
of years, where you could learn a lot
about different sort of trade offs and

300
00:17:35,341 --> 00:17:39,931
different experience paths of people who
went already very deep on certain things.

301
00:17:39,981 --> 00:17:42,051
So I think we struck a
really nice balance there.

302
00:17:42,666 --> 00:17:49,076
So the meat of the conference day on
Thursday were most notably the talks.

303
00:17:49,396 --> 00:17:54,386
So I'm curious, given that you and I
were both responsible in the organizing

304
00:17:54,406 --> 00:17:56,266
team to put together those talks.

305
00:17:56,326 --> 00:17:59,516
I'm super excited how
everything, shaped out there.

306
00:17:59,556 --> 00:18:03,956
And, I think we managed to strike a
really nice balance on like a spectrum

307
00:18:04,336 --> 00:18:10,196
of, of speakers, some who already,
Go super deep on like local-first

308
00:18:10,216 --> 00:18:15,096
technological parts for many years,
some are more on the pragmatic end,

309
00:18:15,136 --> 00:18:19,666
might not meet all the ideals of
local-first, but reach millions of users.

310
00:18:19,666 --> 00:18:21,916
And I think that's all kind
of like nicely converging.

311
00:18:22,336 --> 00:18:26,596
so I'm curious which talks, which
speakers stood out most for you and,

312
00:18:26,656 --> 00:18:28,196
what are you still thinking about there?

313
00:18:28,402 --> 00:18:32,502
Yeah, well, I suppose it's not surprising
that you and I both, since we directly

314
00:18:32,592 --> 00:18:35,612
made the speaker lineup and got to
pick all of our favorite people and

315
00:18:35,612 --> 00:18:39,712
put them in an order that we liked,
uh, that we would both be probably

316
00:18:39,712 --> 00:18:41,242
pretty, pretty pleased with the outcome.

317
00:18:41,286 --> 00:18:44,249
I guess it's, I guess it's a
good sign, that if anyone should

318
00:18:44,249 --> 00:18:45,269
enjoy it, it should be us.

319
00:18:45,269 --> 00:18:50,094
But yeah, I, this is the only time I have
ever listened to every single minute of

320
00:18:50,094 --> 00:18:52,824
a talk in the entire day of a conference.

321
00:18:52,851 --> 00:18:56,441
usually there's some point I get a
little bored or restless or, yeah,

322
00:18:56,441 --> 00:18:59,261
I just want to stretch my legs or
just get, you know, caught up in a

323
00:18:59,261 --> 00:19:02,764
conversation and I, and, and I want to
stick with that, but I really, all of

324
00:19:02,764 --> 00:19:06,954
these speakers had such an interesting
thing to add to, like you said, that

325
00:19:06,954 --> 00:19:08,974
bigger stew of different perspectives.

326
00:19:09,154 --> 00:19:13,254
We also took the approach of making
the time slots really tight, which had

327
00:19:13,412 --> 00:19:15,972
Sometimes I felt bad, I've seen some
of the speakers have a little bit of

328
00:19:15,972 --> 00:19:20,042
anxiety about, you know, squeezing their,
their content down, but I think it,

329
00:19:20,162 --> 00:19:25,262
it part of was what kept stuff moving
and again, the density of the, the

330
00:19:25,262 --> 00:19:28,322
information just meant that like, there
wasn't, there wasn't a moment to get

331
00:19:28,322 --> 00:19:30,462
bored, which I, which I really enjoyed.

332
00:19:30,707 --> 00:19:34,447
Yeah, it'd be hard to pick favorites, you
know, but if you were going to look at

333
00:19:34,447 --> 00:19:37,747
some of the, you know, the temp polls, of
course, we have, you know, our opening,

334
00:19:38,157 --> 00:19:41,767
um, kind of closest thing to a local-first
celebrity, which was Martin Kleppmann,

335
00:19:41,767 --> 00:19:46,487
and he dug in on, you know, five years on
from writing the initial paper, how would

336
00:19:46,497 --> 00:19:48,682
he You know, what would he add to that?

337
00:19:48,682 --> 00:19:50,042
Or how would he change?

338
00:19:50,322 --> 00:19:52,792
Um, you know, what have
we learned in that time?

339
00:19:52,792 --> 00:19:55,332
And he touched on the kind of
the definition of local-first,

340
00:19:55,352 --> 00:19:58,752
which I think is a, is an ongoing
question for the community.

341
00:19:59,652 --> 00:20:03,762
Uh, we followed that up pretty directly
with Tuomas Aertmann from Linear, and I

342
00:20:03,772 --> 00:20:05,582
think this is one of the bigger success.

343
00:20:05,872 --> 00:20:08,632
I mean, Linear is obviously a huge
success story in the startup world,

344
00:20:08,972 --> 00:20:11,767
um, but the fact that they, I think he
probably kind of built this way from

345
00:20:11,767 --> 00:20:15,557
the get go because he believes this is
just the only way to build software.

346
00:20:16,067 --> 00:20:19,567
He jokes about like, when he sits down to
ever start a new thing, the first thing

347
00:20:19,567 --> 00:20:21,057
he always does is write a sync engine.

348
00:20:21,687 --> 00:20:23,077
That's what he did here.

349
00:20:23,277 --> 00:20:26,947
Hopefully in the future, we have enough
off the shelf stuff that's not necessary

350
00:20:26,947 --> 00:20:31,387
anymore, but you can very directly
point to Linear is known for being so

351
00:20:31,397 --> 00:20:36,137
high performance and, uh, that makes it
really stand apart from all the other

352
00:20:36,437 --> 00:20:38,407
SaaS alternatives in the industry.

353
00:20:38,867 --> 00:20:41,997
And, yeah, again, you can, you can
debate the degree to which of those

354
00:20:41,997 --> 00:20:45,587
local-first principles they fulfill,
but in terms of like a very high profile

355
00:20:45,587 --> 00:20:49,567
successful example where we're using
local-first in how they built their

356
00:20:49,567 --> 00:20:53,847
product is directly connected to why
they are so successful in their business

357
00:20:53,867 --> 00:20:55,057
and how they are differentiated.

358
00:20:55,467 --> 00:20:58,477
So I think that was a powerful one
too, to take the, you know, the sort

359
00:20:58,477 --> 00:21:01,894
of community elder combined with,
um, you know, a pragmatic example

360
00:21:01,894 --> 00:21:03,544
of how a product can be successful.

361
00:21:03,609 --> 00:21:08,499
And then, yeah, maybe some, you know,
two other notable ones to me would be

362
00:21:08,499 --> 00:21:12,979
Aaron Goodman's talk, where he basically
announced on stage his next iteration

363
00:21:12,989 --> 00:21:16,509
of the, I guess it's the RepliCache
Reflect, and now what he's calling Zero.

364
00:21:17,019 --> 00:21:19,559
He's really been grappling
with this space, I think.

365
00:21:19,739 --> 00:21:22,139
I think he was your first guest,
if I'm not mistaken, on the

366
00:21:22,139 --> 00:21:23,539
podcast here, or one of the first?

367
00:21:23,819 --> 00:21:24,559
The second one.

368
00:21:24,679 --> 00:21:25,759
Peter was the first one.

369
00:21:25,779 --> 00:21:26,179
Yeah.

370
00:21:26,562 --> 00:21:26,812
Yeah.

371
00:21:27,029 --> 00:21:29,439
He's been grappling with this
in the real world, I think.

372
00:21:29,644 --> 00:21:32,104
In the sense of building
infrastructure for others,

373
00:21:32,247 --> 00:21:34,237
probably, almost as long as anyone.

374
00:21:34,237 --> 00:21:36,667
And he's been through these iterations
and he talked about the partial

375
00:21:36,677 --> 00:21:38,187
sync and gave an amazing demo.

376
00:21:38,671 --> 00:21:42,611
And then the, the, the closing,
closing talk was, uh, Maggie Appleton,

377
00:21:42,611 --> 00:21:46,891
who's always amazing, but she gave
a talk on barefoot developers, kind

378
00:21:46,891 --> 00:21:49,661
of this concept, bringing together
end user programming, which of course

379
00:21:49,661 --> 00:21:51,421
is very near and dear to my heart.

380
00:21:51,421 --> 00:21:54,781
If you know anything about my, my
writing and, and, uh, interests.

381
00:21:55,066 --> 00:21:58,586
Putting that together with language
models and AI and local-first, and that

382
00:21:58,596 --> 00:22:02,346
all of these things fit together in a,
uh, in a way that's very significant.

383
00:22:02,782 --> 00:22:06,122
many, many folks talked about her, her
talk as being a highlight of the day.

384
00:22:06,122 --> 00:22:09,972
So those were just a few that, um,
seemed quite notable, let's say.

385
00:22:10,742 --> 00:22:11,922
What were some of your favorites?

386
00:22:12,402 --> 00:22:15,592
Yeah, I, I certainly agree
with your picks here.

387
00:22:15,992 --> 00:22:21,672
Um, I'm actually the, the ones that you
mentioned, I, I'm going to also have some

388
00:22:21,672 --> 00:22:26,952
of those on the, the podcast since there's
so many interesting points in there that I

389
00:22:26,952 --> 00:22:31,977
want to, I want to Dive deeper in whether
it's like how, Tomas had the foresight

390
00:22:32,217 --> 00:22:37,557
to bet on a sync engine when building
a new product and, how that, like, I

391
00:22:37,567 --> 00:22:42,017
think he mentioned it on stage, it's like
they, they can basically all focus on

392
00:22:42,017 --> 00:22:46,467
the front end engineering team, and kind
of cut their engineering team in half,

393
00:22:46,507 --> 00:22:52,277
keep the company small and thus ship much
more quickly and how that's just turning

394
00:22:52,287 --> 00:22:54,577
into a massive competitive advantage.

395
00:22:54,837 --> 00:22:55,767
So I think that's.

396
00:22:56,123 --> 00:22:59,562
You know, underexplored and
underappreciated outside

397
00:22:59,562 --> 00:23:01,152
of the local-first bubble.

398
00:23:01,602 --> 00:23:04,342
So, that's something I
want to explore more.

399
00:23:04,422 --> 00:23:08,992
And, I think, he also made an interesting
point , he has written a great blog post

400
00:23:09,032 --> 00:23:14,932
about how like a typical MVP of a product
is no longer enough to really make it in

401
00:23:14,932 --> 00:23:17,372
today's competitive landscape of products.

402
00:23:18,002 --> 00:23:22,442
And how you need to just, the bar
is really high for building products

403
00:23:22,452 --> 00:23:27,642
and Linear has now shown where the
bar is at and kind of the only way to

404
00:23:27,642 --> 00:23:31,886
get there, I think, is by following
the local-first architecture for

405
00:23:31,886 --> 00:23:33,896
productivity and personal apps like that.

406
00:23:33,896 --> 00:23:37,316
So I think it was really
inspiring to hear his talk there.

407
00:23:38,046 --> 00:23:42,606
And then, we also heard from, from a
bunch of builders who've been building

408
00:23:42,606 --> 00:23:47,389
local-first and local-first technologies
already for, at some point, more

409
00:23:47,389 --> 00:23:52,496
than a decade and who at some point
learned like, oh, the way how I always

410
00:23:52,596 --> 00:23:54,936
build things is called local-first.

411
00:23:54,956 --> 00:23:56,106
And that's really interesting.

412
00:23:56,336 --> 00:24:01,776
And, then also, uh, from a tool builder's
perspective, hearing about the interesting

413
00:24:01,776 --> 00:24:03,626
challenges and design trade offs.

414
00:24:04,126 --> 00:24:09,376
So what Aaron has announced with Ciro
on stage was certainly very interesting.

415
00:24:09,436 --> 00:24:13,726
I think it kind of takes a step
away from some of the local-first

416
00:24:13,746 --> 00:24:18,096
ideals, but on the other hand,
makes it even more approachable.

417
00:24:18,381 --> 00:24:21,271
for people who are more coming
from the cloud world and might

418
00:24:21,271 --> 00:24:23,021
be a bit of a gateway drug.

419
00:24:23,031 --> 00:24:26,561
Also bringing more people into
the local-first ecosystem.

420
00:24:26,864 --> 00:24:31,774
And, Maggie's talk was like on a whole
different level , and this is something

421
00:24:31,774 --> 00:24:36,949
I was really excited about, that this
worked out since, she's been,  on my

422
00:24:36,949 --> 00:24:39,009
radar for a long, long, long time.

423
00:24:39,009 --> 00:24:43,809
Like when she started out  creating
those amazing visuals for like Egghead

424
00:24:43,809 --> 00:24:46,099
videos, for Egghead courses, et cetera.

425
00:24:46,519 --> 00:24:52,689
This is where I like always appreciated
how thoughtful shegoes about communicating

426
00:24:53,082 --> 00:24:57,272
difficult concepts and how, how much
she thinks about those concepts that

427
00:24:57,272 --> 00:24:58,746
she can communicate those to others.

428
00:24:59,322 --> 00:25:03,372
And I think here, she's really taking
it to the next level by immersing

429
00:25:03,402 --> 00:25:09,102
herself in the local-first ecosystem
that she has not really been directly

430
00:25:09,262 --> 00:25:14,100
part of before but I think she
has picked up all the right ideas.

431
00:25:14,154 --> 00:25:19,066
In preparation and connected the dots for
herself with other topics that are really

432
00:25:19,066 --> 00:25:24,266
top of mind for her, end user programming,
and coining a whole new term in the, in

433
00:25:24,266 --> 00:25:29,476
the process, uh, as Sparefit Developers,
which is a topic I want to explore

434
00:25:29,476 --> 00:25:31,286
with her on a, on a future episode.

435
00:25:31,642 --> 00:25:35,992
So certainly, um, some, some
brilliant highlights and I think

436
00:25:36,012 --> 00:25:41,616
Martin, also in a very nice way,
reframed the state of the local-first

437
00:25:41,636 --> 00:25:44,736
ecosystem, like redefine the goal.

438
00:25:44,746 --> 00:25:46,196
What is local-first software?

439
00:25:46,222 --> 00:25:51,212
what is maybe not local-first software, I
think was a brilliant way to start today.

440
00:25:51,522 --> 00:25:55,432
So now that we've covered the
different talk highlights from, from

441
00:25:55,432 --> 00:25:59,842
our perspectives, I'm curious, what
are some of the core themes, core

442
00:25:59,842 --> 00:26:02,522
learnings that are top of mind for you?

443
00:26:03,001 --> 00:26:06,651
Well, certainly we touched on already that
bringing together these different people

444
00:26:06,651 --> 00:26:12,211
who came to this, world with different
motivations and different backgrounds do

445
00:26:12,401 --> 00:26:14,681
click and gel and share values together.

446
00:26:14,681 --> 00:26:18,121
So I think that was, a
happy, a happy learning.

447
00:26:18,384 --> 00:26:20,354
Getting a little more
kind of nuts and bolts.

448
00:26:20,384 --> 00:26:25,244
Uh, one of the things that really struck
me was just the element of UI performance.

449
00:26:25,254 --> 00:26:27,324
And obviously we're just talking
about Linear there, but, we

450
00:26:27,324 --> 00:26:28,674
had some demos specifically.

451
00:26:28,674 --> 00:26:32,514
You showed your app, Overtone,
sort of flipping between playlists

452
00:26:32,514 --> 00:26:34,014
and comparing that to Spotify.

453
00:26:34,297 --> 00:26:36,984
then, Aaron showed,
yeah, the demo was Zero.

454
00:26:37,014 --> 00:26:39,344
And we also saw there was a third one.

455
00:26:39,354 --> 00:26:40,184
Maybe it was jazz.

456
00:26:40,494 --> 00:26:41,424
In any case.

457
00:26:41,924 --> 00:26:42,354
Yeah.

458
00:26:42,574 --> 00:26:46,804
The thing that struck me seeing these
different demos, so completely different

459
00:26:46,804 --> 00:26:49,834
people building in many cases, pretty
different products, but all of them

460
00:26:49,834 --> 00:26:54,034
had this feel that was fundamentally
different from most of the software

461
00:26:54,204 --> 00:26:55,464
that we use in our daily lives.

462
00:26:55,934 --> 00:26:57,244
And we've talked about.

463
00:26:57,809 --> 00:27:01,199
UIs should be fast or, you
know, no spinners or whatever.

464
00:27:01,199 --> 00:27:04,279
And I think the way we wrote that in
the original essay, I was thinking

465
00:27:04,279 --> 00:27:07,999
like, okay, I log into Google drive
and it spins for five seconds,

466
00:27:08,059 --> 00:27:11,949
like literally 5, 000 milliseconds
before I get a paint on the screen.

467
00:27:12,579 --> 00:27:14,009
Okay, we can do better than that.

468
00:27:14,059 --> 00:27:17,549
Maybe we could, you know, get things
back in under a thousand milliseconds

469
00:27:17,999 --> 00:27:22,814
or under 500 milliseconds, but all of
these demos show Next frame performance.

470
00:27:22,874 --> 00:27:26,514
That's something where it's, there's
literally just no delay for in

471
00:27:26,514 --> 00:27:32,134
terms of like human perception and
it feels fundamentally different.

472
00:27:32,774 --> 00:27:37,764
And to me, uh, when I think of how
much human kind of energy and just

473
00:27:37,984 --> 00:27:43,074
like soul is lost on waiting for
software all the time, the idea of a

474
00:27:43,074 --> 00:27:48,289
new generation software that is kind of
next frame by default is, Very exciting.

475
00:27:48,569 --> 00:27:53,889
And seeing them side by side, again,
that several other, um, many people

476
00:27:53,889 --> 00:27:57,479
building towards this have ended on
a thing that has this fundamentally

477
00:27:57,479 --> 00:28:01,879
same feel that is the same as each
other, but different from everything

478
00:28:01,879 --> 00:28:04,929
else we know outside of, I don't know,
maybe like video games or something.

479
00:28:05,239 --> 00:28:07,644
That was That would, for
me, was very powerful.

480
00:28:08,011 --> 00:28:12,661
And I think it's like, was not necessarily
a new idea, but just reconfirming

481
00:28:12,671 --> 00:28:16,731
that, seeing that in different
contexts, uh, reestablished for me,

482
00:28:16,731 --> 00:28:18,491
like, Hey, this is worthwhile doing.

483
00:28:18,891 --> 00:28:23,691
and it's just every time I, for
example, do a search in Notion,

484
00:28:23,761 --> 00:28:28,491
particularly, uh, when you're in this
weird middle ground between having

485
00:28:28,521 --> 00:28:34,495
perfect connectivity and offline, this
is where like more traditional, kind

486
00:28:34,984 --> 00:28:39,934
Cache driven, web driven, software is
like trapped in this middle ground.

487
00:28:39,984 --> 00:28:44,744
like I was just riding on a train two
days ago and I was dreading the moment

488
00:28:44,754 --> 00:28:49,414
where I knew I needed to like change my
Notion page and I need to navigate there.

489
00:28:49,824 --> 00:28:54,784
And the, uh, I knew this, I had this
page open yesterday and I wanted to

490
00:28:54,784 --> 00:29:00,194
navigate it and like, it literally took
me 30 seconds until enough packets kind

491
00:29:00,194 --> 00:29:02,164
of flew in and I could navigate there.

492
00:29:02,694 --> 00:29:05,414
And, uh, this can be so different.

493
00:29:05,424 --> 00:29:09,694
And I think it's, uh, the, the different
demos in the conference showed that to us.

494
00:29:10,314 --> 00:29:15,681
So UI performance, and also the, the
different perspectives from, tool builders

495
00:29:15,691 --> 00:29:19,751
and app builders and people outside of
the local-first ecosystem all connecting.

496
00:29:20,221 --> 00:29:24,327
Anything else that, stood out for you
as a, as a theme or a new learning?

497
00:29:24,956 --> 00:29:28,257
Well, obviously sync engines
were, a frequent topic, that

498
00:29:28,347 --> 00:29:29,457
touched on in many ways.

499
00:29:29,827 --> 00:29:36,377
One thing I was quite struck by is how
much similarity in, I guess, architecture,

500
00:29:36,387 --> 00:29:39,947
if that's a word for it, between all
of these different presentations,

501
00:29:39,947 --> 00:29:43,297
which included, you obviously have
the infrastructure creators like

502
00:29:43,417 --> 00:29:48,567
Jazz and DXOS and ElectricSQL and so
forth, where they are very explicitly

503
00:29:48,567 --> 00:29:52,917
and intentionally trying to design
a good general purpose sync engine

504
00:29:52,927 --> 00:29:55,567
infrastructure, architecture, API thing.

505
00:29:55,877 --> 00:29:59,057
For lots of apps to use, but
also we heard a version of that

506
00:29:59,057 --> 00:30:00,627
from many of the app developers.

507
00:30:00,627 --> 00:30:03,757
So for example, GoodNotes, and they're
a really interesting case where a

508
00:30:03,757 --> 00:30:05,437
very successful existing business.

509
00:30:05,437 --> 00:30:07,077
They have like 30 million active users.

510
00:30:07,077 --> 00:30:09,957
They're basically on every
iPad in the world, effectively.

511
00:30:10,357 --> 00:30:13,217
and they, you know, they came to
local-first because they needed a

512
00:30:13,217 --> 00:30:16,537
solution for essentially merging
together rich text changes.

513
00:30:16,937 --> 00:30:20,867
And they're describing how they're,
they're using Automerge to do that, but

514
00:30:20,867 --> 00:30:26,982
their core, Architecture, again, is this
kind of event log model that then is fed

515
00:30:26,982 --> 00:30:32,172
in and, you know, turned in, reactively
rendered, and there's, um, that kind

516
00:30:32,172 --> 00:30:36,552
of event or transaction based system is
something you hear repeated again and

517
00:30:36,552 --> 00:30:41,302
again, and indeed that, uh, there are
many other kind of concepts in the, call

518
00:30:41,302 --> 00:30:44,122
them the architecture diagrams, whether
they actually put a diagram on screen

519
00:30:44,122 --> 00:30:47,862
or not, or just talking about it, you
saw that, again, all these builders,

520
00:30:47,872 --> 00:30:51,070
some coming from the app side, some
coming from the tool side, basically

521
00:30:51,080 --> 00:30:52,950
arrived at kind of the same solution.

522
00:30:53,260 --> 00:30:57,350
And again, that to me is surprising,
but also heartening in the sense that

523
00:30:57,610 --> 00:31:01,714
you give a lot of, different smart and
capable people the same set of starting

524
00:31:01,724 --> 00:31:03,834
conditions and problem statements.

525
00:31:03,864 --> 00:31:07,234
And if they arrive at a similar
solution, that means that solution

526
00:31:07,234 --> 00:31:13,374
is something General purpose of wide
utility, kind of a right solution if

527
00:31:13,374 --> 00:31:14,784
that's, if that's the word for it.

528
00:31:14,844 --> 00:31:17,314
So that was, that was very notable to me.

529
00:31:17,624 --> 00:31:20,584
Indeed, one of the points that
Martin made in his opening talk was,

530
00:31:20,964 --> 00:31:24,914
in a few years, he'd like to see
about going and getting an internet

531
00:31:25,024 --> 00:31:27,594
standard made for a sync protocol.

532
00:31:28,094 --> 00:31:31,364
And, uh, When he gave that, he's
mentioned that to me privately.

533
00:31:31,374 --> 00:31:33,654
And when he mentioned in his talk,
I'm kind of like, yeah, I don't know.

534
00:31:33,654 --> 00:31:35,664
Are we really like three
years away from that?

535
00:31:35,704 --> 00:31:38,504
Like kind of seems like it's
still too early for that.

536
00:31:38,504 --> 00:31:42,654
But then as I saw these architectural
similarities across all these kind of

537
00:31:42,724 --> 00:31:47,154
sync engine solutions, I was left with
the feeling of like, Oh, actually I do

538
00:31:47,154 --> 00:31:48,304
think we're a lot, I think he's right.

539
00:31:48,304 --> 00:31:50,604
I think we are a lot closer
than, than I thought we were.

540
00:31:50,912 --> 00:31:55,822
Yeah, and I, I think this is a, this
is the topic that I can't wait to,

541
00:31:55,862 --> 00:31:58,702
to see materialize more into reality.

542
00:31:58,702 --> 00:32:01,532
And I think there's like
a longer timeframe there.

543
00:32:01,542 --> 00:32:05,762
Maybe in three years from now,
we do the first early drafts

544
00:32:05,922 --> 00:32:07,482
of like a standardization.

545
00:32:07,752 --> 00:32:10,997
Yeah, it's probably start the
process in three years, not finish.

546
00:32:12,200 --> 00:32:15,560
Exactly but until,
until there's like a  1.

547
00:32:15,810 --> 00:32:17,830
0 of something.

548
00:32:17,830 --> 00:32:20,072
There's like a reference
implementation, etc.

549
00:32:20,292 --> 00:32:25,412
That's going to take a longer time and
until maybe there are some pieces that

550
00:32:25,412 --> 00:32:30,592
need to actually trickle into browsers
or operating systems, that's, uh, even

551
00:32:30,592 --> 00:32:34,582
further down the road, but I think
we're certainly reaching a point where

552
00:32:34,872 --> 00:32:39,392
we've explored a bunch of different
approaches in the ecosystem where we can

553
00:32:39,392 --> 00:32:41,892
now try to converge on some of those.

554
00:32:42,432 --> 00:32:48,492
And, what you've mentioned before, the
kind of impromptu working group around

555
00:32:48,512 --> 00:32:52,622
authentication problems, et cetera, that
is a major aspect and there are other

556
00:32:52,622 --> 00:32:56,842
major aspects that need to still be
figured out, but it's really amazing to

557
00:32:56,842 --> 00:33:02,252
see how collaborative the entire ecosystem
is where, yeah, different vendors and

558
00:33:02,252 --> 00:33:06,889
different individual tool builders, app
builders, all come together, share their

559
00:33:06,899 --> 00:33:13,699
experience, and, trying to, to help create
like some sort of, convergent technology

560
00:33:13,699 --> 00:33:15,949
into existence, that's really cool to see.

561
00:33:16,222 --> 00:33:20,992
Another way to frame that same, same
direction you're going is kind of solve

562
00:33:21,002 --> 00:33:22,762
problems versus unsolved problems.

563
00:33:23,082 --> 00:33:24,662
And so increasingly, I think.

564
00:33:24,952 --> 00:33:28,824
A lot of the stuff in the sync engine
side of things, can and should have

565
00:33:28,824 --> 00:33:33,594
many sort of competing solutions out of
the marketplace, um, that fit different

566
00:33:33,964 --> 00:33:37,394
styles and, you know, maybe different
language ecosystems and things like that.

567
00:33:37,944 --> 00:33:44,529
But in some senses, how to do a sync
engine in this way, is mostly figured out.

568
00:33:44,979 --> 00:33:50,792
And actually one of my goals for the,
the conference content was that the

569
00:33:51,062 --> 00:33:55,142
term CRDT should not appear too often.

570
00:33:55,702 --> 00:33:59,449
Um, because typically, again, you
go to, some of the past events, that

571
00:33:59,449 --> 00:34:01,529
have, have existed with this or attend.

572
00:34:01,839 --> 00:34:05,459
You know, a conference or a meetup
or just have a conversation with

573
00:34:05,459 --> 00:34:10,129
someone or anytime the topic comes
up on Hacker News and people tend

574
00:34:10,129 --> 00:34:12,889
to be focused around the, yeah, but
how do you merge changes together?

575
00:34:13,409 --> 00:34:18,249
And there is still plenty of interesting
research being done on the CRDT side

576
00:34:18,249 --> 00:34:21,109
of things, and there will always
be need for new data types as we.

577
00:34:21,342 --> 00:34:23,857
expand the different applications
that people are applying this to,

578
00:34:23,857 --> 00:34:28,947
but ultimately how to build a basic
CRDT and put that into a sync engine

579
00:34:29,187 --> 00:34:32,897
and make that work reliably across
different devices and multi user,

580
00:34:33,507 --> 00:34:35,077
basically have that figured out.

581
00:34:35,077 --> 00:34:38,527
It's just now, it's a small matter
of engineering now, which is still

582
00:34:38,567 --> 00:34:43,677
a huge challenge, but in the sense
of like being a figured out thing.

583
00:34:44,187 --> 00:34:45,837
I think we're, we're basically there.

584
00:34:46,067 --> 00:34:49,527
Whereas there are other things here,
and, uh, this was, uh, you know, a

585
00:34:49,527 --> 00:34:52,167
topic for the day, to some extent,
is what are the unsolved problems?

586
00:34:52,567 --> 00:34:57,897
Um, that includes things like, uh,
schema and, uh, schema migrations, uh,

587
00:34:57,897 --> 00:35:01,494
over time, identity, as I previously
mentioned, kind of authentication,

588
00:35:02,104 --> 00:35:04,414
um, and, and permissions generally.

589
00:35:05,064 --> 00:35:06,244
And there's other stuff as well.

590
00:35:06,421 --> 00:35:10,551
but yeah, I think that as a community,
a way to kind of collaborate loosely,

591
00:35:10,551 --> 00:35:14,261
even though we're all working on our
own projects, is to think in terms of

592
00:35:14,261 --> 00:35:18,461
like, what are the relatively solved
problems that we can codify with, I

593
00:35:18,461 --> 00:35:21,781
don't know, writing or, you know, open
source libraries or things like that.

594
00:35:21,781 --> 00:35:25,681
We say this, this we basically have
settled on the right way to do it.

595
00:35:26,081 --> 00:35:28,176
and there's many implementations of that.

596
00:35:28,386 --> 00:35:33,696
and then other areas where we still need a
wide and diverse set of active experiments

597
00:35:33,696 --> 00:35:37,226
to try to figure out how are we going to,
how are we going to solve this problem

598
00:35:37,226 --> 00:35:39,636
in a local-first, uh, compatible way.

599
00:35:39,962 --> 00:35:45,352
This is also what stood out to me and
talking to speakers, talking to, to

600
00:35:45,352 --> 00:35:48,512
other attendees, is how have they.

601
00:35:48,744 --> 00:35:54,064
who ship products, who shipped apps, how
have they navigated the trade off space?

602
00:35:54,454 --> 00:35:58,554
some have like used off the
shelf, technologies such as

603
00:35:58,564 --> 00:36:00,614
like AutoMerge, Yjs, etc.

604
00:36:00,874 --> 00:36:06,584
But then you're sort of at the mercy of
how far those technologies are along and,

605
00:36:06,627 --> 00:36:14,237
the inherent or current insufficiencies
of those technologies are also, hard

606
00:36:14,307 --> 00:36:17,207
to, advance for, for you yourself.

607
00:36:17,677 --> 00:36:23,157
And, uh, I think there's a notable
other approach for, for app builders,

608
00:36:23,457 --> 00:36:27,397
which is that they don't yet use one
of those off the shelf technologies,

609
00:36:27,787 --> 00:36:29,027
but they've rolled their own.

610
00:36:29,107 --> 00:36:32,714
And, whether that's Good Notes or
whether that's Linear, et cetera,

611
00:36:32,974 --> 00:36:37,367
they've all started so early that They
were convinced this is the right idea,

612
00:36:37,367 --> 00:36:41,217
this is the right approach, but we
don't want to wait five years for the

613
00:36:41,247 --> 00:36:44,707
technologies to be there or to be mature
enough, so they built it themselves.

614
00:36:44,717 --> 00:36:49,867
And I think this is something that
so many of those local-first apps

615
00:36:50,237 --> 00:36:54,734
have that in common, which is very
encouraging for me because, at the

616
00:36:54,734 --> 00:37:00,934
core of it, Those you can make really
drastic trade offs, um, that fit your

617
00:37:00,984 --> 00:37:06,034
app use case and your app requirements
that might not need all the guarantees

618
00:37:06,044 --> 00:37:07,834
something like AutoMerge can provide.

619
00:37:07,834 --> 00:37:11,944
And this can help you going kind
of almost counter intuitively

620
00:37:12,144 --> 00:37:16,567
where, only very few would build
their own Ruby on Rails to ship.

621
00:37:16,777 --> 00:37:22,457
A Rails app, but it, in a way you
can get away with way stricter

622
00:37:22,517 --> 00:37:24,587
trade offs for your specific apps.

623
00:37:24,607 --> 00:37:29,507
So building your own syncing stack
is actually not as much work.

624
00:37:29,557 --> 00:37:34,206
If you, have sort of like a, Like two
months from Linear, if you have that

625
00:37:34,206 --> 00:37:38,946
sort of experience and, if you're
daring enough that you feel like this

626
00:37:38,946 --> 00:37:43,056
is something that you want to do, but
I think that's a, that's a similarity.

627
00:37:43,526 --> 00:37:49,336
And what is most interesting to me about
that as well is that the trade off space

628
00:37:49,436 --> 00:37:54,968
is traversed in a very heterogeneous way.

629
00:37:55,058 --> 00:38:01,798
So, depending on how someone has struck
some trade offs, they might be way

630
00:38:01,798 --> 00:38:03,908
further along to solve certain problems.

631
00:38:04,158 --> 00:38:10,149
So, if you, for example, follow more of
like a event sourced architecture, then

632
00:38:10,159 --> 00:38:14,849
you might have entirely different ways to
deal with the schema migration problem.

633
00:38:15,219 --> 00:38:20,666
Uh, for example, if you, implement your
own CRDT stack or you have other benefits.

634
00:38:20,986 --> 00:38:26,426
So, and I think this now gives us a
pool of experiences where one technology

635
00:38:26,426 --> 00:38:31,046
can learn from the entirely different
architectural approach and, uh,

636
00:38:31,126 --> 00:38:33,459
sort of cross pollinate, the ideas.

637
00:38:33,919 --> 00:38:38,709
And so this was really interesting
to exchange those ideas and that

638
00:38:38,769 --> 00:38:40,109
was kind of my main takeaway.

639
00:38:40,336 --> 00:38:41,066
Absolutely.

640
00:38:41,766 --> 00:38:45,016
I think, you know, maybe the last
takeaway I would probably mention was

641
00:38:45,026 --> 00:38:49,446
just, um, probably some of my favorite
conversations there were talking to the

642
00:38:50,056 --> 00:38:53,986
People I put in the local-first curious
demographic, sometimes they were, you

643
00:38:53,986 --> 00:38:58,296
know, colleagues with someone who was
deeper in that world and this was a chance

644
00:38:58,306 --> 00:39:02,336
for them to better understand this, this
weird thing their colleague was into.

645
00:39:02,636 --> 00:39:06,016
In some cases, they just had
seen the buzz online and wanted

646
00:39:06,016 --> 00:39:07,326
to, to find out about it.

647
00:39:07,511 --> 00:39:11,541
Yeah, for, for example, the, you know,
schema migrations being something that is,

648
00:39:11,778 --> 00:39:16,958
at least the many in the community feel
is, is, is largely an unsolved problem.

649
00:39:17,218 --> 00:39:21,378
And then that caused one person I was
talking to be like, whoa, whoa, whoa, I

650
00:39:21,378 --> 00:39:24,948
don't want to have anything to do with the
technology that, that hasn't solved this.

651
00:39:25,154 --> 00:39:28,424
because you know, this is so, that's
such a fundamental thing to, you

652
00:39:28,424 --> 00:39:31,744
know, building an app in the long term
and with a data stack you can trust.

653
00:39:32,119 --> 00:39:34,779
Which I thought was a, which I thought
was an interesting perspective.

654
00:39:34,989 --> 00:39:36,399
And I was kind of like,
don't worry, we'll solve it.

655
00:39:36,659 --> 00:39:40,589
And that didn't necessarily, you know,
put their, put them at ease, but it is a,

656
00:39:40,609 --> 00:39:43,939
you know, it was a good illustration of
the fact that we are trying to go across

657
00:39:43,939 --> 00:39:50,699
the cusp of the threshold from, you know,
academic, big idea, ivory tower into real

658
00:39:50,699 --> 00:39:55,513
world thing you can use, but you know,
it's, it's, it is still an intermediary,

659
00:39:55,743 --> 00:39:57,413
intermediary state very much.

660
00:39:57,748 --> 00:39:58,858
Very much bleeding edge.

661
00:39:59,348 --> 00:40:04,298
Another person I talked to said basically
that, you know, they were new to it,

662
00:40:04,308 --> 00:40:09,328
but they, the energy that they felt,
was really, um, unique and interesting.

663
00:40:09,398 --> 00:40:13,134
And they, made a comparison I, I
found very positive, which was to

664
00:40:13,134 --> 00:40:16,434
say they basically hadn't felt the
same thing since being part of, or

665
00:40:16,444 --> 00:40:20,864
being around in the React world circa
2013, where kind of, and obviously

666
00:40:20,864 --> 00:40:23,764
there, there was a, a main library
that everything centered around, but I

667
00:40:23,764 --> 00:40:25,574
think in general, the idea of reactive.

668
00:40:25,824 --> 00:40:30,978
UIs and reactive rendering as kind of
the right solution for, for building

669
00:40:30,978 --> 00:40:35,018
applications of all kinds was,
you know, was kind of this fresh,

670
00:40:35,318 --> 00:40:38,568
um, but, but clearly correct idea.

671
00:40:38,788 --> 00:40:42,298
But similarly there, I guess, coming
back to the, you know, still a work

672
00:40:42,298 --> 00:40:46,028
in progress, bleeding edge Stuff to
figure out if you were part of the

673
00:40:46,028 --> 00:40:50,228
React community back then, things
like state management, you would, you

674
00:40:50,228 --> 00:40:53,548
know, you would pick up a library that
was supposed to be the, uh, you know,

675
00:40:53,738 --> 00:40:55,288
this is the way the community does it.

676
00:40:55,288 --> 00:40:57,168
This is the state of
the art and you use it.

677
00:40:57,168 --> 00:40:59,288
And six months later, that
library is deprecated.

678
00:40:59,288 --> 00:41:02,538
And another one is, is now considered
the, and you're like, wait a minute, I'm

679
00:41:02,538 --> 00:41:05,748
trying to build an application here and
I'm not just sort of on shifting sands.

680
00:41:05,958 --> 00:41:08,958
And that is, you know, that of course
is the trade off being, being part of a

681
00:41:08,958 --> 00:41:13,234
community that's still so so young and,
and in the process of figuring it out.

682
00:41:13,234 --> 00:41:14,904
But to me, it's what makes it so exciting.

683
00:41:14,914 --> 00:41:19,304
Cause there are so many problems to
solve and not only engineering and

684
00:41:19,304 --> 00:41:24,454
technology wise, but design wise, we
need whole new UX and UI patterns in

685
00:41:24,454 --> 00:41:26,264
many cases to describe things like.

686
00:41:26,614 --> 00:41:28,454
Sync state, pick a very simple one.

687
00:41:28,814 --> 00:41:33,124
So that being on the frontier in that way
is to me, uh, uh, is quite a lot of fun.

688
00:41:33,794 --> 00:41:35,774
Yeah, it was certainly my happy place.

689
00:41:35,814 --> 00:41:41,554
I consider myself to be like a
technical pioneer and the conference

690
00:41:41,554 --> 00:41:46,394
had an incredible density of other
technical pioneers where it could just

691
00:41:46,594 --> 00:41:52,413
exchange sort of weird battle stories
of how you deal with, taming the

692
00:41:52,423 --> 00:41:58,043
browser to, to do what you want and,
to make things work cross platform or

693
00:41:58,043 --> 00:42:00,403
certain performance tricks, et cetera.

694
00:42:00,403 --> 00:42:02,503
So it was certainly my, my happy place.

695
00:42:02,999 --> 00:42:07,709
I want to slightly shift gears and
talk about another theme that stood

696
00:42:07,709 --> 00:42:12,029
out for me across the different
conversations I had, and also across

697
00:42:12,069 --> 00:42:16,213
the different talks that we heard,
which was more around centered around

698
00:42:16,233 --> 00:42:18,993
the definition of local-first itself.

699
00:42:19,033 --> 00:42:23,719
And Martin kicked off the day
by reiterating, the, the initial

700
00:42:23,729 --> 00:42:26,129
ideals for, for local-first.

701
00:42:26,149 --> 00:42:31,646
And I invite everyone to watch Martin's
amazing, keynote talk there as well

702
00:42:31,666 --> 00:42:36,236
to, to hear those, those words for
yourself, but I think the ideas were.

703
00:42:36,436 --> 00:42:41,776
Kind of reflecting on the initial
essay, how the initial essay laid out,

704
00:42:41,926 --> 00:42:46,166
the, the seven ideals for local-first
software, but that was never really

705
00:42:46,166 --> 00:42:50,636
like a strict definition of what
is local-first software actually.

706
00:42:50,856 --> 00:42:54,151
And also importantly, what
is not local-first software.

707
00:42:54,191 --> 00:42:59,814
So Martin provided, some new ideas about
that, which maybe you want to recap

708
00:42:59,814 --> 00:43:04,734
them here, but this also then led to
an interesting follow up conversation

709
00:43:05,084 --> 00:43:10,364
of like many of the products that were
showed throughout the conference would

710
00:43:10,374 --> 00:43:13,204
not fully qualify as local-first software.

711
00:43:13,504 --> 00:43:17,554
And I think this is, some people
feel more passionate about, like,

712
00:43:17,964 --> 00:43:21,611
very strictly, defining, oh, this
is local-first software, whereas

713
00:43:21,651 --> 00:43:23,191
this is not local-first software.

714
00:43:23,641 --> 00:43:28,451
And I think there's this interesting trade
off and interesting tension for, for us

715
00:43:28,521 --> 00:43:35,421
as a, as a community, as an ecosystem That
I would like to see is that we see, um,

716
00:43:35,691 --> 00:43:40,401
that see like an app sort of like on a
progression, on a spectrum of like growing

717
00:43:40,401 --> 00:43:46,761
up to become local-first and as a powering
technologies such as Automerge, et cetera.

718
00:43:47,061 --> 00:43:50,791
As they mature, it's gonna make
it much easier to build fully

719
00:43:50,791 --> 00:43:52,561
compliant local-first software.

720
00:43:52,861 --> 00:43:53,521
But kinda.

721
00:43:53,731 --> 00:43:58,401
grappling with that definition of
local, pure local-first software, I'd be

722
00:43:58,401 --> 00:44:01,301
curious whether you have some thoughts
on that and want to reflect on it.

723
00:44:01,479 --> 00:44:05,639
Yeah, this is an important question as
the community grows up and especially

724
00:44:05,639 --> 00:44:09,939
again, comparing to a community built
around a particular open source library

725
00:44:09,939 --> 00:44:13,079
or something like that, you don't
have that same definitional thing.

726
00:44:13,089 --> 00:44:15,869
Although even there, you can sometimes
have something where a major new

727
00:44:15,869 --> 00:44:19,519
version, it takes the library in a
different direction and then people

728
00:44:19,519 --> 00:44:21,549
say, this isn't what I was here for.

729
00:44:21,549 --> 00:44:23,799
This isn't the core of
what we're all about.

730
00:44:24,269 --> 00:44:27,369
local-first is unique in that
it is, yeah, philosophy and a

731
00:44:27,369 --> 00:44:29,313
set of ideals, that we think.

732
00:44:29,613 --> 00:44:33,563
imagines a better world or a better
type of software, but not a specific

733
00:44:33,823 --> 00:44:35,883
implementation or single library.

734
00:44:36,163 --> 00:44:40,043
and we always, you know, that initial
definition of the, the goal is data

735
00:44:40,043 --> 00:44:44,583
ownership for people who use computers
for creative and productive purposes.

736
00:44:45,123 --> 00:44:49,918
If I'm writing a book, The book belongs to
me, and the software should reflect that.

737
00:44:50,121 --> 00:44:53,641
and then the seven ideals are sort of
like the, also, in some sense, you could

738
00:44:53,641 --> 00:44:55,601
also describe them as user benefits.

739
00:44:55,901 --> 00:45:00,201
These are things that you get as a
result of kind of building in this

740
00:45:00,551 --> 00:45:04,451
way, and that therefore you can, as we
conceptualize it then, essentially create

741
00:45:04,451 --> 00:45:06,731
a scorecard, and that implies a spectrum.

742
00:45:06,791 --> 00:45:10,121
If you score a zero out of seven,
I think it's fair to say you don't

743
00:45:10,181 --> 00:45:11,691
really count as local-first software.

744
00:45:12,061 --> 00:45:13,201
Uh, you know, try again.

745
00:45:13,201 --> 00:45:15,891
If you score two out of seven,
well, you know, it's a start.

746
00:45:16,151 --> 00:45:17,171
That's, that's pretty good.

747
00:45:17,591 --> 00:45:21,481
If you score five or six out of
seven, then you're doing great.

748
00:45:21,491 --> 00:45:26,601
I mean, I think to some extent it's
almost not even fully achievable in

749
00:45:26,601 --> 00:45:30,621
the real world to, to have truly seven
out of seven and also have a, you

750
00:45:30,621 --> 00:45:32,491
know, a product that's widely used.

751
00:45:32,641 --> 00:45:35,941
I think that will change, I think, as
we continue to, if we push the, push

752
00:45:35,941 --> 00:45:39,481
the boundaries on this, there is a day
when you can imagine that all software,

753
00:45:39,701 --> 00:45:42,811
again, you referenced that earlier, like
things built into the operating system,

754
00:45:43,131 --> 00:45:46,971
fundamentally, I think that the, the
ultimate utopia for local-first or the

755
00:45:46,971 --> 00:45:51,951
ultimate, again, idealized world that
I picture with it is our computers are

756
00:45:51,951 --> 00:45:55,691
fundamentally built in this way and things
are built into the operating system or

757
00:45:55,691 --> 00:46:00,981
into a platform like web technologies
that is specifically designed to support,

758
00:46:01,301 --> 00:46:04,081
um, this way of software existing.

759
00:46:04,101 --> 00:46:07,191
But until then, you know, we'll
take, you know, I think Muse, for

760
00:46:07,191 --> 00:46:10,471
example, we  called that local-first
software, but we probably scored a

761
00:46:10,631 --> 00:46:12,361
three or a four out of the seven.

762
00:46:12,651 --> 00:46:15,961
And that was because we identified,
coming back to that trade offs point you

763
00:46:15,961 --> 00:46:20,111
were making earlier, we identified Here
are the things that we think are really

764
00:46:20,111 --> 00:46:24,691
ready for primetime now, where now was
a couple of years ago, and, that we can

765
00:46:24,691 --> 00:46:29,111
implement on our team and that sort of
benefits our business and our users.

766
00:46:29,331 --> 00:46:32,621
Here's some other ones that we're just
going to leave out of scope for now.

767
00:46:32,631 --> 00:46:37,081
That's aspirational for the future, but
right at this moment, it's not pragmatic

768
00:46:37,081 --> 00:46:39,061
for us to, for us to pursue that.

769
00:46:39,271 --> 00:46:43,331
So I think this is sort of the, this
very interesting striking a fine balance

770
00:46:43,351 --> 00:46:48,631
between being pragmatic and being
idealistic, and where being pragmatic

771
00:46:48,671 --> 00:46:53,914
might help you shipping sooner, whereas
being idealistic, might take you longer.

772
00:46:54,134 --> 00:46:58,879
But, uh, enables your users with,
providing more of the benefits and

773
00:46:58,889 --> 00:47:00,789
ultimately full data ownership.

774
00:47:00,789 --> 00:47:04,923
And I think the, the hardest, ideal
to kind of reach right now, which

775
00:47:04,933 --> 00:47:09,913
Martin spelled out, uh, very explicitly
is like, if the, the app builders

776
00:47:10,053 --> 00:47:12,243
go out of business, the app still.

777
00:47:12,428 --> 00:47:17,188
can work and, so that the app is
not, degraded in functionality.

778
00:47:17,498 --> 00:47:22,058
And I think that takes a lot from
a company like Linear, et cetera.

779
00:47:22,068 --> 00:47:27,088
That's probably takes most of the
backseat and accomplishing the ideals,

780
00:47:27,088 --> 00:47:31,138
very understandably so, because
you building an app, et cetera.

781
00:47:31,414 --> 00:47:35,214
got to, for most people got to pay
the bills and this is the hardest

782
00:47:35,214 --> 00:47:40,816
to achieve and, probably also helps
the least in the short term in terms

783
00:47:40,816 --> 00:47:42,346
of getting new users, et cetera.

784
00:47:42,366 --> 00:47:47,773
So I hope that we'll reach at some point,
from a technological advancement that

785
00:47:47,773 --> 00:47:52,503
this is just so easy, that self hosting
becomes so easy, that data ownership,

786
00:47:52,743 --> 00:47:56,993
the operating system all supports that,
that we have a generic sync server.

787
00:47:57,263 --> 00:48:02,333
that we get this ideal almost for free
by using the right technologies, but

788
00:48:02,333 --> 00:48:06,753
I think right now you need to fight
the hardest to achieve that ideal.

789
00:48:07,106 --> 00:48:07,866
Yes, that's right.

790
00:48:07,866 --> 00:48:11,486
And again, that comes into built into
the platforms and the operating systems

791
00:48:11,486 --> 00:48:13,726
and the foundational layer, right?

792
00:48:13,766 --> 00:48:18,646
Like you can try to talk users into
using, I don't know, end to end

793
00:48:18,656 --> 00:48:24,146
encryption in their email by like
generating PGP keys or whatever, but

794
00:48:24,166 --> 00:48:26,886
ultimately, things like the mobile.

795
00:48:27,171 --> 00:48:30,971
Operating system platforms with their
secure enclaves and key management

796
00:48:30,981 --> 00:48:36,271
built in and biometrics and secure
messaging apps that kind of make all

797
00:48:36,271 --> 00:48:41,051
that easy and make it just, again,
part of the foundations where a

798
00:48:41,061 --> 00:48:44,821
regular person can, an app developer
can build this reasonably and a

799
00:48:44,821 --> 00:48:46,911
regular person using it can access it.

800
00:48:47,211 --> 00:48:50,421
It requires more than what any individual.

801
00:48:50,606 --> 00:48:53,276
builder or any individual
app creator can, can do.

802
00:48:53,276 --> 00:48:55,936
So, so you do your best,
uh, with what you have.

803
00:48:55,946 --> 00:48:56,186
Yeah.

804
00:48:56,186 --> 00:48:57,726
So to, yeah, exactly.

805
00:48:57,726 --> 00:49:00,806
So Martin's description, which you
should definitely watch the video of

806
00:49:00,806 --> 00:49:06,826
his talk, but is the thing that makes
something local-first is that no one can

807
00:49:06,836 --> 00:49:09,336
kind of take your data away from you.

808
00:49:09,676 --> 00:49:14,426
And I think in these, it's hard to
separate the data and the app to some

809
00:49:14,426 --> 00:49:17,726
extent, because While there are standard
file formats and things like that, the

810
00:49:17,726 --> 00:49:22,536
reality is just that, like, if Notion
stops working, but I have an export of a

811
00:49:22,536 --> 00:49:28,976
zip file of a bunch of HTML or however it
exports, it's like, well, I kind of have

812
00:49:28,976 --> 00:49:32,736
my data, but not really, I don't, without
the functionality of the application and

813
00:49:32,736 --> 00:49:36,926
the way to navigate links and search and
add new things, whatever, I kind of have,

814
00:49:37,136 --> 00:49:41,336
I really have lost something, like My
corpus of whatever I had in Notion to,

815
00:49:41,676 --> 00:49:43,816
in this example, would be lost to me.

816
00:49:44,243 --> 00:49:47,583
and his description is basically,
yeah, the company going out of

817
00:49:47,583 --> 00:49:51,523
business and being acquired and the
owner deciding to, you know, do a

818
00:49:51,523 --> 00:49:54,994
hard pivot in some direction that, you
know, you know, kicks out a bunch of

819
00:49:55,004 --> 00:49:59,804
the former users and customers, uh,
or just simply, yeah, servers going

820
00:49:59,804 --> 00:50:03,144
offline, right, is the short, is the,
is the near term version of that.

821
00:50:03,464 --> 00:50:06,424
And that, you know, the classic thing
of like, oh, Slack's down, GitHub's

822
00:50:06,434 --> 00:50:12,024
down, or whatever means now I can't
work, that, that would not be the case.

823
00:50:12,224 --> 00:50:17,079
So, I really like that as like a much,
A really boiled down litmus test that

824
00:50:17,079 --> 00:50:22,359
if you have that, all the other stuff is
probably going to tend to come with it.

825
00:50:22,649 --> 00:50:25,009
so I like it as a, again,
an aspirational thing.

826
00:50:25,009 --> 00:50:26,359
I think it's a longer term thing.

827
00:50:26,359 --> 00:50:28,999
I think it's a thing where we're
all trying to move towards.

828
00:50:29,089 --> 00:50:31,649
You can build in that way today,
but again, there are, there are

829
00:50:31,649 --> 00:50:34,449
trade offs to make, especially
if you're a commercial business.

830
00:50:34,779 --> 00:50:37,589
Depending on what exact domain you're in
and what platform you're on and so forth.

831
00:50:37,649 --> 00:50:40,669
For example, it's probably a lot easier
to do that if you're in a, uh, kind

832
00:50:40,669 --> 00:50:43,359
of like a building a native app and
then if you're building a web app.

833
00:50:43,689 --> 00:50:46,339
, but I, I think that is a
really nice, definition.

834
00:50:46,339 --> 00:50:51,669
Now he also said in his talk, you know,
while he is a, a cornerstone person in

835
00:50:51,669 --> 00:50:53,663
this, community, it is a community, right?

836
00:50:53,673 --> 00:50:57,523
No one has, you know, there, there's no,
uh, there's no benevolent dictators here.

837
00:50:57,728 --> 00:51:01,631
Or dictators of any kind, I guess,
and he, he has a lot of moral

838
00:51:01,641 --> 00:51:04,441
authority, but he can't just
say this is, this is what it is.

839
00:51:04,441 --> 00:51:07,291
We all have to decide that for ourselves.

840
00:51:07,291 --> 00:51:12,201
And so, to some extent, I think also this
could kick off a discussion about that for

841
00:51:12,201 --> 00:51:14,631
the community have sort of with itself.

842
00:51:14,911 --> 00:51:16,091
And again, I have my opinions.

843
00:51:16,091 --> 00:51:16,741
You have yours.

844
00:51:16,761 --> 00:51:21,771
Martin has his, um, but I think Again,
we, we may play key roles in the

845
00:51:21,791 --> 00:51:23,291
community and helping get things started.

846
00:51:23,291 --> 00:51:26,341
But what makes it as a community
is we're all defining it together.

847
00:51:26,341 --> 00:51:30,281
So I think to me, it's very healthy to
have those discussions and hopefully it

848
00:51:30,281 --> 00:51:34,631
doesn't turn into a purity or a holier
than thou discussion, but it does turn

849
00:51:34,631 --> 00:51:39,481
into a practically speaking, what unites
us, what are we doing here and how do we

850
00:51:39,481 --> 00:51:44,051
agree on, you know, what the kind of what
our goals are and our values together.

851
00:51:44,453 --> 00:51:50,233
Exactly, and I think the conference,
is a great result and a great milestone

852
00:51:50,263 --> 00:51:55,673
in that spirit, where it attracted
people who've been doing local-first

853
00:51:55,693 --> 00:52:00,203
software development for way longer than
the essay has been around, brought in

854
00:52:00,203 --> 00:52:04,343
people who found out about the ideas
of local-first because of the essay.

855
00:52:04,703 --> 00:52:09,683
And now this community is like
growing in a very organic way to

856
00:52:10,003 --> 00:52:13,853
propagate those ideas and kind of
figure out the right trade offs.

857
00:52:13,853 --> 00:52:18,553
And ultimately it is still about
the benefits for the users and

858
00:52:18,553 --> 00:52:19,823
the benefits for developers.

859
00:52:19,873 --> 00:52:22,033
This is what brings people to the table.

860
00:52:22,383 --> 00:52:26,583
So I'm very excited how all of that
is like very organically evolving.

861
00:52:27,043 --> 00:52:28,633
So I'm curious whether.

862
00:52:29,123 --> 00:52:34,803
The conference has somehow changed your
own perspective on local-first, since in a

863
00:52:34,803 --> 00:52:38,946
way, when you wrote  that essay, I'm, I'm
sure there was sort of like an interesting

864
00:52:38,956 --> 00:52:43,426
balance between seeing, Oh, this is
achievable and theoretically possible,

865
00:52:43,746 --> 00:52:48,076
but probably also a bit of like a kick
in the butt for the developer community

866
00:52:48,076 --> 00:52:49,816
is like, Hey, we can do this differently.

867
00:52:50,156 --> 00:52:53,386
But, I'm not sure whether you
would have put down money on that

868
00:52:53,386 --> 00:52:56,866
day when you published it to say
like, uh, everything's going to be.

869
00:52:57,121 --> 00:52:58,771
in the future like that.

870
00:52:59,061 --> 00:53:03,801
So I'm curious whether the conference
as a very, very concrete point in

871
00:53:03,811 --> 00:53:08,131
time has changed your perspective and
outlook on the future of local-first?

872
00:53:08,518 --> 00:53:09,028
It has.

873
00:53:09,028 --> 00:53:14,094
I mean, the, mainly just the energy
and it hasn't changed my sense on like,

874
00:53:14,104 --> 00:53:18,516
what the direction should be or, or,
Again, coming back to this is, this

875
00:53:18,526 --> 00:53:20,486
is how I would like the world to be.

876
00:53:20,896 --> 00:53:23,376
How I would like the world of
technology or software to be.

877
00:53:24,016 --> 00:53:28,236
That has been the same since probably
I saw the first experiments, uh, that

878
00:53:28,236 --> 00:53:33,826
Peter was leading back at Ink and Switch
circa 2017, and I saw what software could

879
00:53:33,836 --> 00:53:39,246
be like, how fast the data ownership
piece, the developer experience, the

880
00:53:39,246 --> 00:53:43,323
simplicity of not needing to run servers
were very few, when I saw those, those

881
00:53:43,323 --> 00:53:46,283
first demos, they weren't, they were
working software, but they weren't.

882
00:53:46,558 --> 00:53:47,518
You know, production ready.

883
00:53:47,518 --> 00:53:48,538
And I knew that at the time.

884
00:53:48,538 --> 00:53:51,608
And, and when we wrote the essay, we
felt we had learned enough that we

885
00:53:51,608 --> 00:53:55,811
could write down these, these ideas in
a way that we hope would be compelling.

886
00:53:56,461 --> 00:53:59,311
But absolutely at the time, someone
came to me and said, Oh, great.

887
00:53:59,311 --> 00:54:00,431
Should I build my app in this way?

888
00:54:00,601 --> 00:54:02,461
I would be like, probably not.

889
00:54:02,871 --> 00:54:06,821
Uh, and indeed, even today, if someone
was asking for pragmatic advice, I

890
00:54:06,821 --> 00:54:11,461
would say, okay, well tell me exactly
what domain you're in, exactly what

891
00:54:11,461 --> 00:54:15,561
stage you're in, what kind of users
you have, because it remains, you know,

892
00:54:15,561 --> 00:54:17,131
there's a lot of trade offs being so.

893
00:54:17,388 --> 00:54:21,431
so on the bleeding edge, but I think
the conference mainly convinced me that

894
00:54:21,441 --> 00:54:25,521
certainly there's more people doing
this, actually doing it directly, like

895
00:54:25,521 --> 00:54:30,284
doing it as a day job or a very serious
side project, than I thought there's

896
00:54:30,304 --> 00:54:34,134
more interest from the wider world of
application developers than I thought.

897
00:54:34,364 --> 00:54:39,784
and that, yeah, maybe, maybe the time
is now in the sense of, I'm not sure

898
00:54:39,784 --> 00:54:41,734
what the action is there, I guess.

899
00:54:42,064 --> 00:54:45,634
Um, but if, if, if a person does want to
do something in the space and again, the

900
00:54:45,634 --> 00:54:50,384
action we've chosen to take is put on a
conference, cause that's what felt right.

901
00:54:50,384 --> 00:54:54,931
And indeed we can, um, you know, discuss
the, is there a next year, piece of it.

902
00:54:54,941 --> 00:54:58,108
But, certainly there's
something really here.

903
00:54:58,588 --> 00:55:00,338
You can see that it's taking shape.

904
00:55:00,548 --> 00:55:04,288
and if this is something I think you're
interested in getting involved in

905
00:55:04,408 --> 00:55:06,748
now is absolutely the perfect time.

906
00:55:06,818 --> 00:55:08,568
That's my, that's my takeaway.

907
00:55:08,598 --> 00:55:12,268
And for me, you know, I was obviously,
I've obviously been involved a long time,

908
00:55:12,268 --> 00:55:15,848
but it's basically reignited my interest,
you know, in some ways I drifted away

909
00:55:15,848 --> 00:55:18,908
from it in the last few years because I
was working on other things and because,

910
00:55:19,358 --> 00:55:22,353
yeah, essentially it hadn't reached
this level of maturity either in the

911
00:55:22,353 --> 00:55:26,223
technology or in the kind of the ideas
finding their way in the community.

912
00:55:26,223 --> 00:55:29,443
But now I see, uh, the
incredible resonance it has.

913
00:55:29,463 --> 00:55:31,293
I say, okay, there's,
there's something here.

914
00:55:31,804 --> 00:55:38,154
Yeah, and I want to share one anecdote
or memory that's still in my mind

915
00:55:38,164 --> 00:55:42,794
from, I think, a lunch that you
and I had in Berlin sometime last

916
00:55:42,834 --> 00:55:47,824
summer, where I think you've asked
it even sometimes before then, it's

917
00:55:47,824 --> 00:55:51,829
like, hey, why is no one building a
Ruby on Rails for, for local-first?

918
00:55:51,849 --> 00:55:55,199
And so this was at that point,
I think was like one and a half

919
00:55:55,209 --> 00:55:57,579
years into building Overtone.

920
00:55:57,609 --> 00:56:01,973
And I've been, working on Riffle together
with Jeoffrey, et cetera, but it was so

921
00:56:01,973 --> 00:56:08,484
tailor made for Overtone that, at least
from my perspective, I didn't really see

922
00:56:08,484 --> 00:56:15,919
a path how Rffle could turn into a Ruby
on Rails that can empower local-first

923
00:56:16,139 --> 00:56:20,389
and also the other technologies in the
local-first ecosystem weren't quite

924
00:56:20,399 --> 00:56:22,379
ready and on that trajectory yet.

925
00:56:22,709 --> 00:56:27,424
But I think within the last year, I can
really see, A bunch of technologies,

926
00:56:27,481 --> 00:56:32,371
really nicely being on the trajectory
of being that Ruby on Rails or pick any

927
00:56:32,681 --> 00:56:37,361
other analogies that like facilitates
this, like new way of building.

928
00:56:37,451 --> 00:56:40,931
I can see this much more clearly
now than, than ever before.

929
00:56:40,951 --> 00:56:44,711
And so I think finally I get
to give you a different answer

930
00:56:44,721 --> 00:56:46,651
than what we had at that lunch.

931
00:56:46,741 --> 00:56:50,041
And I think this is just going to
be such a multiplier and there's

932
00:56:50,041 --> 00:56:54,451
different trade offs, different
flavors and shapes of Ruby on Rail is.

933
00:56:54,951 --> 00:56:59,258
But I think this will be another
inflection point that allows those

934
00:56:59,388 --> 00:57:03,088
local-first curious people, maybe
not the pioneers, but the local-first

935
00:57:03,108 --> 00:57:08,038
curious to flip their default to
building a new app local-first

936
00:57:08,228 --> 00:57:11,218
without paying the pioneer's tax.

937
00:57:11,698 --> 00:57:15,788
And, maybe we've reached or gotten a lot
closer to that point in a year from now.

938
00:57:16,068 --> 00:57:17,578
So I'm very much looking forward to that.

939
00:57:17,974 --> 00:57:18,494
Absolutely.

940
00:57:18,494 --> 00:57:18,644
Yeah.

941
00:57:18,644 --> 00:57:22,314
If you put it in the frame of the
crossing the chasm adoption curve.

942
00:57:22,934 --> 00:57:26,814
Which I think a lot of folks have seen,
and if not, you can do a web search for

943
00:57:26,814 --> 00:57:31,254
it, but there's the early adopters who
are there often because it is novel,

944
00:57:31,484 --> 00:57:35,094
because it's exciting, because there's
interesting new stuff that you can't

945
00:57:35,094 --> 00:57:40,084
get, but They're not really there for,
yeah, pragmatism is not the The thing

946
00:57:40,094 --> 00:57:44,814
they're there for that literally the
novelty and that there's a little bit of

947
00:57:44,814 --> 00:57:49,094
a chasm you have to jump over but then
the next big block of people who might

948
00:57:49,474 --> 00:57:54,494
adopt are what they label pragmatists
and those are people for whom they have

949
00:57:54,494 --> 00:58:00,089
a pain to solve that is so strong that
they are willing to step outside of

950
00:58:00,089 --> 00:58:04,659
the status quo of known good solutions
a little bit to find that solution.

951
00:58:04,659 --> 00:58:07,949
That comes back to the, you know, someone
asked me to advise them on, should I

952
00:58:07,949 --> 00:58:10,579
build my, my new app local-first today?

953
00:58:10,579 --> 00:58:13,869
And I would want to know a lot of the
details because you would, if there's a

954
00:58:13,869 --> 00:58:17,859
very specific problem to solve, this is
exactly the case for you with Overtone

955
00:58:18,149 --> 00:58:21,709
and the kind of music ownership, piece
of it for the, for the audio files.

956
00:58:21,959 --> 00:58:23,309
That's something that's really.

957
00:58:23,499 --> 00:58:24,089
Good fit.

958
00:58:24,376 --> 00:58:28,326
other things maybe are You know, in the
end, I kind of hope all software will

959
00:58:28,326 --> 00:58:33,156
be local-first, but there's varying
degrees to which paying that, being

960
00:58:33,166 --> 00:58:38,239
early tax, the pioneer taxes, as you
described it, may be worth it depending

961
00:58:38,239 --> 00:58:39,429
on the domain that you're building for.

962
00:58:39,429 --> 00:58:42,169
But of course, over time, that
pioneer tax gets less and less.

963
00:58:42,179 --> 00:58:45,153
It's already gotten way less than
last year, and probably in the

964
00:58:45,523 --> 00:58:47,153
last six months, it will get less.

965
00:58:47,533 --> 00:58:51,429
It's going to continue going down,
and so that makes the trade off.

966
00:58:51,824 --> 00:58:52,994
to think about less and less.

967
00:58:52,994 --> 00:58:56,534
And eventually it just becomes
the pragmatic solution to just

968
00:58:56,534 --> 00:58:58,454
say like, Oh, obviously you're
going to do things that way.

969
00:58:58,454 --> 00:59:00,454
That's just kind of the best way.

970
00:59:01,058 --> 00:59:01,758
That's awesome.

971
00:59:02,308 --> 00:59:03,818
Adam, what is next for you?

972
00:59:03,838 --> 00:59:08,758
You've been a true pioneer for
the entire local-first ecosystem.

973
00:59:08,768 --> 00:59:11,998
You've been working on Muse
over the last couple of months.

974
00:59:12,278 --> 00:59:16,298
I've seen you involved in a couple
of other interesting projects.

975
00:59:16,838 --> 00:59:21,888
So for, for those of you who follow
you closely, what can we expect?

976
00:59:22,396 --> 00:59:27,906
Yeah, well, I'm taking some time this
year to just kind of wander a bit, try

977
00:59:27,906 --> 00:59:29,716
some weird projects, work with new people.

978
00:59:29,726 --> 00:59:34,456
Indeed, that's how I ended up, uh,
being open to the idea of helping

979
00:59:34,456 --> 00:59:36,846
put on a conference, which is
something I'd never done before.

980
00:59:37,196 --> 00:59:40,136
Uh, so when you approached me for
that, I, I said, yeah, this, this

981
00:59:40,136 --> 00:59:41,766
fits into my, fits into my theme.

982
00:59:41,786 --> 00:59:42,906
I've always wanted the chance to work.

983
00:59:43,271 --> 00:59:44,081
Directly with you.

984
00:59:44,081 --> 00:59:46,641
And, uh, it's obviously the
right time for the community.

985
00:59:46,641 --> 00:59:49,081
And yeah, just an interesting
learning experience for me.

986
00:59:49,751 --> 00:59:53,861
Um, yeah, relatedly, got to work with
Jeoffrey Litt and Ink and Switch on the

987
00:59:53,861 --> 00:59:58,304
Patchwork project doing universal version
control, which to me is a, is an idea

988
00:59:58,304 --> 01:00:00,434
that is built on local-first quite a bit.

989
01:00:00,434 --> 01:00:04,284
I see local-first in some ways as like the
first layer, when you have that foundation

990
01:00:04,494 --> 01:00:07,844
of a new kind of computing down, you
can build a lot of cool things on top

991
01:00:07,844 --> 01:00:12,024
of that and the, the universal version
control steps us in that direction.

992
01:00:12,283 --> 01:00:16,843
and then I'm also at the moment wrapping
a project with Elicit, which is an

993
01:00:16,853 --> 01:00:21,293
AI powered kind of literature search
tool, so it basically helps scientists,

994
01:00:21,293 --> 01:00:25,263
particularly doing systematic reviews,
so that for me has been a chance to get a

995
01:00:25,263 --> 01:00:27,393
real crash course in the language model.

996
01:00:27,748 --> 01:00:30,688
And AI, world of things,
working with some really world

997
01:00:30,688 --> 01:00:32,408
class machine learning people.

998
01:00:32,958 --> 01:00:37,038
So, and, and see what that's like to
apply to a, to a real world problem.

999
01:00:37,528 --> 01:00:39,668
Uh, and after this, we'll, uh, we'll see.

1000
01:00:39,668 --> 01:00:43,818
But I'm, I'm continuing to kind of wander
around, do, do interesting small projects.

1001
01:00:43,964 --> 01:00:46,974
in terms of, yeah, obviously
my interests around everything.

1002
01:00:47,309 --> 01:00:51,589
That Ink & Switch ever works on like end
user programming and, and, uh, infinite

1003
01:00:51,589 --> 01:00:56,866
canvases and local-first, will continue to
be the center point for my, for my career.

1004
01:00:56,866 --> 01:01:02,036
So I'm always looking for opportunities
to push those, those ideas, uh, forward.

1005
01:01:02,036 --> 01:01:05,906
And again, coming out of this conference,
it's just this feeling that there's

1006
01:01:05,906 --> 01:01:10,966
something really happening in local-first
and, you know, I want to try to help push

1007
01:01:10,966 --> 01:01:12,826
that forward in, in whatever way I can.

1008
01:01:12,836 --> 01:01:15,496
What, what exact way that
will be, uh, haven't, haven't

1009
01:01:15,496 --> 01:01:16,556
quite figured that out yet.

1010
01:01:16,728 --> 01:01:22,618
Well, thank you so much for your wandering
for over the past couple of decades.

1011
01:01:22,668 --> 01:01:27,958
I think this has always served as an
incredible well of inspiration to me

1012
01:01:27,988 --> 01:01:33,338
and many others, whether it's how you
showed how simple software deployment

1013
01:01:33,338 --> 01:01:38,775
can be with Heroku, and what has led
you to, together with Peter and the

1014
01:01:38,775 --> 01:01:45,015
others, frame the ideas and the ideals of
local-first and then also ship beautiful

1015
01:01:45,030 --> 01:01:50,140
software with Muse and the projects
that you've been involved with since.

1016
01:01:50,210 --> 01:01:53,640
I can't wait to see where your
mind takes you in the future.

1017
01:01:53,700 --> 01:01:55,020
So thank you so much for that.

1018
01:01:55,020 --> 01:01:56,720
And thank you so much
for coming on the show.

1019
01:01:56,927 --> 01:01:59,347
Thank you for, for all
the, all the lovely words.

1020
01:01:59,377 --> 01:02:00,937
And, uh, yeah, thanks for having me.

1021
01:02:00,957 --> 01:02:03,867
It's a lot of fun and all looking
forward to continuing listening.

1022
01:02:04,466 --> 01:02:06,876
Thank you for listening to
the local-first FM podcast.

1023
01:02:07,106 --> 01:02:10,616
If you've enjoyed this episode and haven't
done so already, please subscribe and

1024
01:02:10,616 --> 01:02:12,176
leave a review wherever you're listening.

1025
01:02:12,546 --> 01:02:14,546
Please also share this
episode with others.

1026
01:02:14,846 --> 01:02:17,646
Spreading the word about the
podcast is a great way to

1027
01:02:17,646 --> 01:02:19,246
support it and to keep it going.

1028
01:02:19,716 --> 01:02:23,726
A special thanks again to Rocicorp
and Expo for supporting this podcast.

1029
01:02:23,896 --> 01:02:24,686
See you next time.