Special episode: Apps vs Files with Gordon Brander, Peter van Hardenberg & Jess Martin.
This is a special episode which was recorded as a Twitter space conversation between Gordon Brander, Peter Van Hardenberg, and Jess Martin.
This conversation explores the ideas and trade offs of apps versus files.
Mentioned in podcast
Links:
- Website: localfirst.fm
- X/Twitter: x.com/localfirstfm
- YouTube: youtube.com/@localfirstfm
Transcript
Introduction
00:00Welcome back to the
local first FM podcast.
00:02We're currently on holiday break, but
we've prepared a special episode for you,
00:06which was recorded as a Twitter space
conversation between Gordon Brander,
00:10Peter Van Hardenberg, and Jess Martin.
00:13This conversation explores the ideas
and trade offs of apps versus files.
00:17I hope you like it.
00:19All right.
00:19I guess we're going to get
started here pretty soon.
00:21So my thinking on this would feel
something like we've all been at a
00:25conference and we've heard an interesting
talk, maybe enlightening talk even,
00:29where the person shared like five
minutes of thoughts, but not even like
00:33a full, they didn't fully elaborate
on everything they wanted to say.
00:37And the two of us said, Hey, you
want to go sit down at a conference
00:39table and talk through this?
00:40Cause I feel like there's
some interesting stuff here.
00:42And I have thoughts on it, and I
would like to work them out, out loud.
00:46So that's kind of my framing.
00:48I love that.
00:49We are all, I think, building in one way
or another, around this problem as well.
00:54Is that right, Jess?
00:55Yeah, more or less.
00:56Yeah.
00:56Do you want to maybe, like, recap
what the motivating question was?
01:01Absolutely.
01:01the reason this is called File, Symbol,
App, File over App is, Kepano from
01:07Obsidian posted a little, I guess
a Twitter post that also he has, I
01:12guess there is a link on his website
to a fuller article about this.
01:16And it's a philosophy that, Kepano holds.
01:18And then the tool called Obsidian,
also embodies this philosophy.
01:23And, I'm not gonna go
into the whole thing now.
01:26I'm gonna kind of assume that most people
are, can like, go and read the, the post,
01:31and kind of get his thoughts, more fully.
01:34But I, the basic idea is that the tools
that we use should store that data.
01:42In a way that we own the data,
and he calls that files, and
01:47that we, and that the data lives
beyond the application itself.
01:51So once we've, like, even if the app
goes away, we've still got the file,
01:57and that file gives us some ability
to, continue interacting with that
02:02data that we've spent such a hard
time, or had such a long time creating.
02:07That's the, that was the impetus.
02:09And I think the reason that I wanted
to chat about it and reached out to
02:14Gordon and Peter reached out as well,
is because I mostly agree with what
02:18Kepano is saying, and yet there are
some subtleties at which I, I think
02:22that probably we would, if Kepano was
here, that we would, we would part ways.
02:28So I'm curious to kind of work
out where the subtleties are and
02:32then talk about, you know, some
real systems that embody this.
Files vs. Apps
02:35Well, let me, let me make the opposing
case because I think it's important
02:38to have both perspectives here, which
is files got their asses kicked.
02:43Right?
02:43Like, you want to email
people your Google Docs?
02:47That, that's the case here?
02:48Oh, I get it.
02:49I get it.
02:49Yeah.
02:49You don't want to be able
to share a link to a thing.
02:52You want to have to send it and then
choose a file name for it and get it back.
02:56And then, something, something,
merging, something, question mark?
03:00Make a small change, change the
name of the file, send it back,
03:03final Underscore, final, March
03:057th, 24th, final, final, as
submitted, dot, doc, dot, you
03:11know, word, x, dot, whatever.
03:13so I mean, files got beat
because they're worse.
03:15What people want is places, not things.
03:17And so, okay, now I'm going to,
I'm going to undermine my argument,
03:20but like the desirable properties
of a Google doc are that a Google
03:24doc is a place, not a thing, right?
03:26So when you join a Google
doc, you are given a key.
03:30To a place where you
can go and collaborate.
03:34Now, everything that's wrong with Google
docs also falls out of this, I think.
03:38But like, what's great about a file
is also what's bad about a file.
03:41What's great about a file is that it's
a thing that you have, you can't take it
03:44away from somebody else who has it, but
also they can't take it away from you.
03:48Right.
03:48They have a copy.
03:49They can edit it privately.
03:50Right.
03:51They can share it themselves.
03:52They can decide what
they want to do with it.
03:54But like, there are lots of power
dynamics as well in terms of
03:57like, places versus things, right.
04:00Which is like, if you've given someone
a thing, it's hard to get it back.
04:03But if you let someone into a
place, you retain perimeter control.
04:06You can choose who's let in, in the
future, if they're allowed back.
04:10Right.
04:11And while there's sort of a fiction about
like actually retaining control over
04:14data, like You know, I can screenshot it.
04:16I can copy paste it.
04:17I can exfiltrate any number of ways.
04:20You know, that's like an extra step
I have to take versus if I email
04:23you a PDF, you've just got it.
04:25So I think like, that's the, that's
the beauty of the place is that it
04:28gives people, it gives the person who
creates the data a lot more agency
04:32over its destiny, and it gives
you a natural collaboration point,
04:38you know, kind of by definition.
04:39Yeah.
04:40And I think, I know that Gordon was.
04:43Wanting to talk about collaboration as
well as like a natural place where files
04:46kind of fall down But I think one of the
things that you're mentioning here One
04:50of the things that I think is included
in the file over app that isn't mentioned
04:54explicitly is the file system, right?
04:57It's the it's the container for the
file of like where does that file live?
05:02What is the place at which it actually
lives because it does have a place.
05:05It's just not a Internet
accessible place via URL.
05:08and I think that is, that's actually
part of Kipano's argument is that
05:13the place where the file lives
is a better place than the cloud.
05:17He's saying the file lives on a local
file system on a device that you
05:21control, like a hard drive that is yours.
05:24And that makes it.
05:25in some place, in some sense
is a special place or a better
05:28place than some of the cloud.
05:30And that's what you were mentioning as
well, Peter, that like the cloud places
05:34enable, certain things, file system shaped
spaces, places enable certain things.
05:40Like, how can we get the
best of both of those worlds?
05:42Oh, well, that's a different thing, right?
05:44You're claiming like, also, this is a
little bit of a category error, right?
05:47Like you're arguing, Like
Apple over refrigerator.
05:51Oh, between file and app?
05:52You're talking about Kepano or
the argument that I just made?
05:54Well, just the, the sort of
framing of the discussion, right?
05:57Like, there are plenty of
apps that work on files.
06:00Right?
06:00It's, it's not The problem here is, Like,
apps do not imply the death of files.
06:06But there is a culture and a
community set of values and certain
06:10sets of expectations, right?
06:12Like, are we talking about
mobile apps or web apps?
06:15You know, there, this is a, like a,
I think there's a, there's a lot of
06:18articulation points potentially here.
06:20For sure.
06:21And I think the only point that
I was making to try and simplify
06:23that, that first point is just where
does the thing live is whether the,
06:28whether the file or the app, is
the file living on my local device?
06:33Is it living in the cloud?
06:35how do I get to it?
06:36Do I have to have a network
connection to get to it?
06:37Can I get to it, locally
without a network connection?
06:40I think those are all wrapped
into Kipano's thinking about
06:44the philosophy of File Over App.
06:45Yeah, I guess, Kipano and, and all of us
are kind of, you know, thinking through
Interoperability
06:51I think he's making a pretty
strong rhetorical point.
06:54I guess I, I prefer to look at
this in terms of design goals and
06:58kind of the qualities of different
materials that you can work with
07:01rather than what's good or what's bad.
07:03Though I am personally, I'm very drawn
to capturing my notes in files myself.
07:09You know, I've got 10 years worth of
notes, you know, in a folder that syncs,
07:14and I've used plenty of SaaS tools over
the years, some of which have gone out
07:19of business and I've lost those thoughts.
07:21So when I think about, you
know, why files, why, why is
07:24Kapano interested in files?
07:26you know, there's some areas that
I resonate with and I, you know,
07:29I think files, to your point, they
live in a place that you control.
07:35the file system is a sort
of user on substrate.
07:39It's old.
07:41It was designed in, you know, the
sixties and seventies and didn't
07:44anticipate a lot of the things that
we ended up doing with networks.
07:48It has a lot of problems around
security and conflicts and many
07:53other things that we can get into.
07:54But I guess the one thing it does do.
07:57That the web tends not to do and
many apps tend not to do is it does
08:01leave you in control of that content.
08:03And that's kind of interesting
because it means often you can
08:06open that data in multiple apps.
08:10no one can
08:11tell you no.
08:13That the opening in multiple apps
was the other side of this thing that
08:16I think is like, not actually true.
08:21Except in a few very narrow
cases, which are the ones that
08:24programmers live in, but that much
of the rest of the world does not.
08:28Well, you know, much of the rest of
the world doesn't live on desktop
08:32machines with file systems anymore.
08:34I think, again, it's just, it's
not about it is or it isn't.
08:37It's about, there are different
jobs that people are solving.
08:40I think, you know, there are
actually a number of things
08:42that open up in multiple apps.
08:44They tend to have strong power laws.
08:46Like there's only a handful that end up.
08:49working out in this way, but I think
that it's better when you have this
08:52sort of user owned substrate where those
use cases can emerge, permissionlessly.
08:58Well, the thing is,
08:59like, I'm reflecting on like the file
format wars of the nineties, right.
09:03And like the EU legislation to try
and like force Microsoft to open,
09:08you know, the office suites file
formats to other participants.
09:11And, you know, I don't think that
was terribly successful, but, you
09:14know, that, that this is, um, just
because you have the file doesn't mean
09:18that you really own it in a sense.
09:20Like there are certain properties
of it that are quite desirable.
09:23And I think this longevity is,
is really remarkable and a really
09:26excellent point to bring up, but yeah,
there's a tension here between like,
09:31open file does not imply openness.
09:33Sure, though that can
emerge retroactively.
09:36Like we saw that happen with PSD
and with, you know, the doc format.
09:40Like PDFs were proprietary, right?
09:42Like they I was going to say PDFs
09:43the same way.
09:44So the thing that lets that
emerge is that, that substrate
09:48that belongs to the user.
09:48If it was up to the app, if it was
up to Photoshop, they would say, no,
09:52a competitor can't open up our file.
09:54but they don't get to make that choice.
09:55I can open it up and, you
know, Affinity Designer or in.
09:59some sort of other app.
10:00And we saw the same thing happen
around image formats, around
10:03video formats, around 3d formats.
10:06They tend to be things that are pretty
low level and have like very broad
10:09expressive power so that there's
a wide range of jobs to be done.
10:13That people want to, to do with them.
10:16I also think there's like a
Lindy effect around these things.
10:18They consolidate around a few, like
text, plain text has a lot of problems,
10:22but I fully expect it's going to be
here in, you know, 10 years, 20 years,
10:26maybe even a hundred years, define
it in whatever way you like, but I,
10:30I suspect whatever way you define it,
it's going to last longer than, you
10:34know, the, the Notion API, like notion.
10:37com.
10:37Oh, certainly.
10:37Yeah, yeah.
10:39Yeah, I guess I'm just
pointing out plain text.
10:40It's, I often think of
it as a fixed point, but.
10:43You know, if you look back at, the
history of plain text, right, we go
10:46from like ASCII encoding and having
to, you know, I don't know if you
10:50were ever opened up like, fileid.
10:53diz from like Eastern European countries,
which had different ASCII encodings than
10:57your, you know, Windows computer did,
back in the like late eighties, early
11:00nineties, but you get these sort of,
11:02Yeah, plain text across Windows and
Mac had, different file endings.
11:07That's right, yeah.
11:08You would hand a text file back
and forth, and it would, you
11:10wouldn't have line breaks where you
expected them to be, or you'd have
11:13additional line break characters.
11:14Control M symbols, yeah.
11:16no, that's, I thought, there was,
there was a couple areas, like,
11:20I think, Gordon made the point
that Kapano's making a really
11:23interesting rhetorical argument here.
11:25I love that he picks a fight
here, and that he has a very, it's
11:28a really nice mantra, but he's
definitely cheating a little bit.
11:31He cheats files as if they don't
have an encoding, like, as if, like,
11:35plain text is some given thing,
but plain text is an encoding.
11:40that we had to, like, as you come to
adopt it widely enough that there are a
11:44large set of readers for that file format.
11:47And I think that when you get
beyond, I think whether it's
11:51programmer usage or not, it's when
you get beyond the document format.
11:54That's when things start to
get, this argument is more
11:58difficult to, not as clear.
12:01because, you know, I, like canvases,
for example, are everywhere now.
12:06And there's no single file format for
exporting the contents of a canvas,
12:12whether it's Muse export or tldraw has the
tldr file, all of these things, they're
12:17not compatible with one another, it
feels like the early days of text files,
12:20like BDH was just mentioning, where
you've got a bunch of different formats.
12:25And the weird part about saying
file over app is that you still
12:28need a reader for the file.
12:30Like you have to have some code
somewhere that reads that file.
12:34And so it saying files are
better than apps or files or
12:37should be preferred over apps.
12:39It's like, well, a file without
an app is literally useless.
12:42Like you have to have an app to,
manipulate that file in some way.
12:46Can you define what you mean?
12:48Like the word app is, is
carrying a lot of water here.
12:50Can you, can you unpack that word a bit?
12:53Sure.
12:54I think when I simplify file over app, I
think what he's saying is data over logic.
12:58Okay.
12:59In other words, the, the data or data over
behavior, the data stored at rest in some
13:05way that you can carry it into the future,
own it, copy it from device to device,
13:09that's his idea for files, I believe.
13:11and he's making that, I think he's
making, And then for app, he's saying,
13:18he's basically, I feel like collapsing,
apps into databases, basically, of
13:24like databases that you don't own.
13:25you can't take your individual
records from that database and,
13:29and do something with them.
13:30They're stored in this, mash of things.
13:33at least that's why I understood it is
like data over the application logic.
13:36The term we use at Ink & Switch
is tools, not apps.
13:39Can you expand on that a little bit?
13:41the concept is that an app in its
sort of cultural construction, though
13:47not necessarily in its technical
requirements, generally implies that,
13:51you know, it holds the data inside it.
13:53I think mobile apps and web apps both
have different kind of habits here, right?
13:57Like, For the most part, a mobile
app is a hermetically sealed box.
14:01Nothing gets in or out of it.
14:03You can't open your Apple Notes
in Dropbox or, you know, Notepad
14:06or, you know, anything else.
14:08That's not necessarily true, but it
is practically, culturally the case.
14:12And so the idea is that tools operate
on some kind of material, right?
14:16And so Obsidian has strong tool culture.
14:19Right?
14:19Like one of the interesting things
with Obsidian and reflecting on
14:22Gordon's comments is just that like
Markdown and like plain, Obsidian
14:26doesn't operate on plain text.
14:28It operates on Markdown, but
there's no such thing as Markdown.
14:31There's like as many Markdowns as
there are apps that use some grammar
14:35of Markdown, but you get like a
certain amount of interoperability
14:39because it's like these really
nice, graceful degradation patterns.
14:43Yeah.
14:43Markdown is like an escalator.
14:45It can't break.
14:45It can only become text.
14:47Right.
14:48So like, it's kind of an inspired choice
from that perspective, but I think your,
14:53your point is well taken like these
formats, they tend to layer and it sort
14:59of necessarily like interoperability
is an ecological condition.
15:02It's something that emerges over time.
15:04You don't design it.
15:05This is often, this, this is actually
why for me, sort of permissionless
15:08substrates, substrates that belong
to the user where their data saved
15:12seems important because it allows
interoperability to emerge retroactively.
15:18But in any case, like these things,
they tend to emerge over time where,
15:23you know, one person creates a format,
another kind of app implements it.
15:28it doesn't happen often, but when it does
happen, it tends to be very valuable.
15:32It's often oppositional though, isn't it?
15:34It's often oppositional and
often happens in layers.
15:37Like I think that, you know, text
is on top of, you know, bytes and
15:41then markdown is on top of text.
15:43And then we have like Obsidian
layering their own sort of like bespoke
15:47markup forms on top of markdown.
15:50And, and these layers tend to move at
different speeds with the lowest layers
15:54kind of necessarily moving slower.
15:56Like the part of the problem that's
standardized and that people can
15:59interoperate around is necessarily
the part that has to move slowly.
16:03Well markdown's not standardized, right?
16:05Like it's that's an emergent
Like cultural phenomenon.
16:09It's de facto, right?
16:10Like there's sort of flavors that people
converge on, like GitHub flavored.
16:14And you know, like all, all
standards are sort of cultural
16:17constructions at some level.
16:18Yeah, you're right.
16:19It's, it's not like standardized
in like the W3C or IETF sense.
16:22Or even in the Unix POSIX sense, right?
16:24Like files are.
16:25You know, these kinds of bytes
and these kinds of orders, and
16:28this is how you end a file.
16:30But there, there are a couple
of emerging standards, right?
16:32We're at the, we're at the situation
where there's multiple plain
16:35text formats of Markdown, right?
16:37There's Common Mark and different
parsers that you can adopt that give you.
16:41true, guarantees around the way
that markdowns, but there's as
16:44you said, there's no one Yeah,
16:46this this actually seems important to
me Like I think a lot of people think
16:50about standards and interoperability
as these sort of platonic forms that we
16:53design in standards bodies And you know,
while that's true that there are people
16:57who craft that kind of material it's
like Typically done in retrospect and
17:02in real life cooperation usually happens
in the sort of ad hoc or de facto way.
17:07And when our systems aren't designed to
support that, it's not a huge surprise
17:12that, you know, interoperability
doesn't emerge and then we can sort of
17:14point and say, well, nobody wants to
interoperate and it's like, well, yeah.
17:17Cause the material doesn't support it.
17:19Like, like there's a kind of
chicken or the egg problem here.
17:21Right.
17:22I think both in your work and
Jess's work and our work, right?
17:26We're all exploring.
17:28Different ways of exposing the
substrate in more interoperable ways.
17:33Yeah.
17:33And it's not so much like locking the
door open as like, right now, I think
17:39like the political economy of choosing
files over these other things, right?
17:43Like if it's so much harder and worse
for you as a developer to choose, Like a
17:48file like thing over an API like thing.
17:52You're probably going to
pick the API like thing.
17:54Indeed.
17:54Some of this is like technical capability
and some of it is cultural norms.
17:58Yeah.
17:59Like files are just
the thing that's there.
18:01And they're actually in many ways, an odd.
18:03odd shaped thing for the problems
we're trying to solve, but they're
18:07just, uh, at least in the app store
and on the web, there aren't really
18:13good, viable alternatives yet.
18:15Like in the browser, we're starting to get
things like the file API and I, you know,
18:20on, on iOS, we're starting to get like
a little bit of a sort of file system.
18:25So it was very charming when
Apple excitedly announced
18:28files like they'd invested in.
18:29Yeah, totally.
18:30Right.
18:30But I, I, it's actually kind of
telling that like, why, why is
18:34it actually that we want this?
18:36It seems like a lot of knowledge work that
18:41needs to cross boundaries
of multiple apps.
18:44and this is just the only tool
we currently have to do it.
18:47Mostly because there haven't,
I think, haven't been good
18:49commercial incentives to build.
18:51Right.
18:52Interoperability layers that, that
makes sense on the network, at least not
18:56yet.
18:57Well, you still need a
data container, right?
18:59Like it's one of the nice things that
files make is like this, you know,
19:02relatively, this thing that has boundaries
that contains a certain amount of data
19:07that you can then pass around via a
whole bunch of different, units of
19:11sharing.
19:12Yeah, exactly.
19:14So I, I'm actually curious.
19:15So for people who are listening, who
don't know, Peter's work, he's working
19:20on a, CRDT, which is, basically a data
structure you can think of it's called
19:24Automerge and Automerge actually calls
their, unit of, merging a document.
19:31So.
19:32Peter, do you guys think of documents,
Automerge documents, as files in this
19:37file like way we've been describing, or
do you think of them in a different way?
19:41The specific stated intention
of Automerge is to invent the
19:45new file system of computing.
19:48Like, the CRDT thing is just
like an implementation detail.
19:51The problem is, We don't want
places and we don't want things.
19:54We need properties of both, right?
19:56There's a wave particle duality here.
19:58We don't want to give us the good
things about files, things that we have,
20:02things that we can hold, things we can
maintain, things we can keep for as long
20:05as we want that we can use in whatever
way that we want, we can pop open the
20:09hood and peer under the covers, right?
20:10Like all that stuff is, is I think vital,
but like, it's so apparent that the POSIX
20:18metaphor of the 19th, literally 1970s.
20:22Right.
20:22The series of bytes, it
assumes single access, right?
20:25Like, God, the amount of my
career I've spent trying to figure
20:28out how to lock a file system.
20:31There's so many, so many tricks that,
that we use in like professional
20:36contexts to cope with shared
20:37mutable state, shared mutable state.
20:39And the whole idea behind Automerge was
to say like, look, what if you could.
20:43Really think about this, really take your
time, really sweat all the details, not
20:47be in the rush that a startup's in, not,
you know, spend years with Martin Klepman
20:52proving the algorithm correctly, then
spend years with, you know, Orion and
20:56Alex Good getting the performance right.
20:57And people are like, Oh, Automerge is
this, Automerge is that, Automerge
21:00is just getting started, right?
21:02Like this is a, this is a 10 year project.
21:04It's a 50 year project.
21:05It's, it's a thing that you just
keep working on until it works.
21:09And I think at this point a lot of
the pieces are in place and we're
21:11starting to see that pay out and if
anybody's following Ink and Switch's
21:14patchwork project right now, right,
like what we're seeing is like this
21:19ability to do ad hoc, like new forms
of real time and asynchronous version
21:25control on top of this substrate
because it has the right primitives.
21:30And of course, this is a research project,
so in the process of working on this we're
21:34discovering the ways that the APIs are
insufficient or where we need to add new
21:38kinds of indexing to improve performance
or, you know, all those other kinds of
21:42things, but it's sort of like we, We've
talked to so many people, you know, I
21:46was talking to, someone over at Scratch
the other day and they were saying like,
21:49oh, I did this in my thesis, but like,
it wasn't actually possible to build
21:53because we didn't have the material.
21:54Right.
21:55And like a former collaborator,
Blaine Cook, who was a coauthor on
21:58the Upwelling paper we did last year,
you know, he was saying like, it's so
22:01amazing getting to work on this stuff.
22:02He did a startup five
years ago or something.
22:05Where you tried to build, you
know, text editing tools, but like
22:07they didn't have the material.
22:09And so it's about trying to figure out
what the shape of that material is.
22:12And you know, I, I hadn't brought it
up before because I don't want this to
22:17be about a particular like concept that
I have or that we have about a single
22:21technology, but it's about like really
thinking about what the opportunities
22:25are and the potential, but I think
a lot about this question, right?
22:28Like I don't want my computer to
be a mall where I go in and I take
22:34products out one at a time, you
know, and bring them home and consume
22:38them and put them in the trash.
22:39I want my computer to feel like a wood
shop where I have my stock of lumber and
22:44I've got my tools and if I want to make
something, sure it's going to require a
22:47little more thinking and expertise, but
I can make anything, I can do anything,
22:51I can work with other people, right?
22:53Like it's, it's a different
kind of productivity.
22:56Like a kitchen is very much
the same thing as well, right?
22:58We buy groceries, we buy staples,
you know, and a handful of like basic
23:02tools, cutting board, a heat source,
a knife, you can do almost anything in
23:07the kitchen with a few extra things.
23:09You can do remarkable things.
23:10Right.
23:11And like, you know, we, we reject
the idea of unit task devices.
23:15Often we make fun of people who
buy the one off gadgets for the
23:18kitchen, but then we live in a world
of these one off gadgets on our
23:23devices, you know, on our computers.
23:25I'm trying to think like, if, if we're
gonna invent tools, we also need to
23:29figure out what the stock material is.
23:31And like Yeah.
23:32Text files are cool 'cause they're
old and, and like what's old is good.
23:36Like I don't mean that
in a dismissive way.
23:38Like it, it is cool because,
and it stood the test of time.
23:40Exactly.
23:40It's, and it will stand the test of time.
23:42It'll still be here in 50 years
if it was here in 50 years.
23:45For 50 years SQLite is amazing too.
23:47Simon Wilson's super inspiring.
23:49They're working on, Like data
set and these kinds of ideas where
23:52it's like, yeah, like a database
is a file like that's awesome.
23:56Yeah
23:57It's more or less written by actual
monks as well It's it really does feel
24:03like a kind of cathedral of technology.
24:05That'll be here in a thousand years Yeah,
24:10I think that's, I love that woodshop
metaphor and it's often one that I
24:16think about, it, it's so evocative
because if you've worked in a woodshop
24:20and you understand all the things
that you're, the, the ways that
24:24you're able to modify your shop and
your tools in order to get work done.
24:28And then you just put that same
lens and look at your computer.
24:32You realize how incredibly rigid, the
computer is, even when you're a software
24:36developer who has, an ideological
commitment to using open source
24:41software, where you have the source of
every single application that you use.
24:46The difficulty in modifying
those applications to your own
24:50custom specifications is, is
astronomical compared to working
24:54models and metaphors.
24:56Mm
24:56hmm.
24:56Yeah, the new materials
you're talking about.
24:58It's great.
24:59I was reading, uh, Brian
Kernighan's biography.
25:02it looks like the C programming language,
but it's his, his self published thing.
25:06Unix, a history and a memoir.
25:08And, um, it's a funny book.
25:10But there's some really great parts in
it where he talks about sort of like the
25:13invention of Unix pipelines and how it was
sort of like somebody would ask how you
25:18could do X with a computer, you know, or
with this new pipes thing they'd built.
25:22And then, you know, him or Richie
or somebody would go off and, like,
25:26write the next little piece, you
know, sort or whatever, so that
25:29they could answer that puzzle.
25:31And I just love this sort of, like,
they discovered the Lego bricks, they
25:34you know, they built the shape and then
they just filled in a few pieces and
25:37then after a little while it was kind
of like, yeah, all the major pieces
25:40are there and that was good enough
and they stuck you know, it's still
25:43out there and you can still use it.
25:44But it's not really the best way
to do spellcheck anymore, you know?
25:48Such a glorious vision though.
25:50You know, I guess for me, like files
are not the thing, but what they are,
25:54at least for particular formats is like
a kind of Lego dot and producing Lego
25:59dots like this that allow you to compose
things together, like Unix pipe is
26:03another kind of Lego dot this strikes me
as important in like a laws of physics.
26:08Kind of way.
26:09Like, one of my favorite books,W.
26:10Brian Arthur's the nature of technology.
26:14I always get it confused with Kevin
Kelly's book, but the, the nature of
26:17technology, he basically makes this, this
very sort of, mathematically grounded
26:21argument that innovation at its core
is a combinatorial process and not just
26:26like technological innovation, but, you
know, evolution, language, art, like
26:31these are about taking pieces, composing
them together to produce something
26:36new in a sort of recursive process.
26:39And like early computing was all kind
of like, I don't know if this was
26:43intuitive or chance or what, but all
of these early pioneers of computing
26:47designed their systems in this way.
26:49And we saw this kind of Cambrian
explosion of really interesting
26:53new things emerge very rapidly.
26:55Like actually we've had mobile phones,
for Longer than it took the browser to be
27:01invented after the introduction of DOS.
27:03So it's just like, like a lot
happened in like a very short
27:06amount of time in that first wave.
27:08Right.
27:08And that's part of me kind of wonders
that if, We sort of reduced the
27:12combinatoriality of technology to
actually slow the rate of innovation.
27:16not necessarily like there's someone
scheming in a room, but sort of the
27:20purpose of the system is what it does.
27:22And like, like big money, but also
kind of governments and people.
27:26It's eternal September, right?
27:28Yeah.
27:28It's like
27:29if
27:30you have a bunch of silos and those
silos do one thing, like on Instagram,
27:34you post photos and on TikTok, you post
short videos and on, like you, There is
27:39no such thing as combining those into some
new medium because they don't let you.
27:44And so you kind of have these known
quantities that you can regulate
27:47and control and also extract 30
percent taxes on pretty efficiently.
27:52So there's this kind of like striation
that's happened of the space.
27:56Some of this is probably inevitable, but I
do kind of want to click the dial a couple
28:00notches in the other direction, just by
28:02nature.
28:03I kind of think this is, the way you
describe that is, to me, a lost cause.
28:08Or maybe lost cause isn't
actually the right term for it.
28:11What I mean is that, actually,
a television is great if you
28:15want to watch Love is Blind.
28:17Is everything necessarily a television?
28:20No.
28:20Well, this is, this is the point.
28:22And so what I think though is like,
28:25I don't think we should be trying
to convince the mainstream systems
28:28to change their minds or solve
the problems we want to solve.
28:31It's that we need to, you know, like a
woodshop is not the right way to build
28:35an IKEA, you know, assembly line, right?
28:38Like, but we need the existence
of this other kind of computing.
28:41It is, it is not.
28:43a replacement for, it is an
alternative to, for the people
28:47who want it and need it.
28:48Yeah, we don't disagree.
28:49Like there's always going to be Facebook,
and there's always going to be like the
28:52Big Bang Theory or whatever, but I would
love for there also be like a world where
28:57like there can be, you know, I don't
know, independent films or hell, like,
29:01uh, Dune II is like something that's, kind
of in the air and kind of strikes, that
29:05balance in a nice and interesting way.
29:07It just feels like Like
what we want is diversity.
29:10We want like a technological
ecosystem that can actually support
29:14a plurality of, of different
ends and not just like Walmart.
29:19Yeah.
29:19And well, and the political economy
is the challenge here, right?
29:21Which is that right now it costs so
goddamn much to write a piece of software.
29:26It's like completely untenable to
build or operate software at all.
29:29And I say this as somebody who
has done quite a lot of it at all
29:33scales, you know, in production.
29:35It is just insane.
29:37We think of software as an
informational good, right?
29:39Like that's sort of the
like conceptual model.
29:42Oh, it's just some bits on, you know,
floating around, but it's not, it's
29:45like a whole, like massive amount of
extremely expensive infrastructure that's
29:50operated by a, you know, a priesthood
of like DevOps people who sacrifice
29:56themselves to get up at three in the
morning to figure out why the transaction
29:59wraparound on the Postgres has happened
again, you know, like it's hell.
30:03It's crazy.
30:04Yeah.
30:04The strange economics of,
software, I guess, support that
30:08kind of, like, rising floor.
30:10Because if you do have a hit, it
tends to make a ton of money and
30:13then all of that's a rounding error.
30:15Yeah.
30:15It's the
30:15network
30:16effects.
30:16The complexity of software is
determined by the economic value that
30:19can be extracted from the software.
30:21Yeah.
30:22Yeah.
30:22And that, that sort of
sets the floor as well.
30:24Right?
30:25Like if you're, if you're making not
thousands, but billions on a success,
30:29then you can afford, you know,
30:31Yeah.
30:31To burn out a bunch of, software
engineers and, you know, leave them
30:35staggering around, their hometown, gazing
bleary eyed into the morning light and
30:40wondering where their life went wrong.
30:42At the same time, like these economic
incentives, they create individual
30:46choices for like, individual developers.
30:48And I think that's, I think that's where
a lot of the slowdown has happened is
30:53when you, there aren't, there weren't
options if you were into computers in
30:58the sixties to go make whatever the
sixties equivalent of 450, 000 a year.
31:04and kind of at a cushy job where they.
31:06You know, bring food to your
table and you can get up and take
31:09foosball breaks whenever you want.
31:10like the, the cruise ship mentality,
I think, lures a lot of people away.
31:16and I think it's really hard to kind
of wake them up to the fact that
31:21software doesn't have to be this way.
31:22We might have to do a little work.
31:24We might have to be a little
uncomfortable for a little while.
31:28You got
31:28to make the right thing.
31:29The easy thing.
31:30That was the lesson we learned at Heroku.
31:32If you make the right thing, the
easy thing, people will do it.
31:34All the, you know, all of the principles
and ideals, like, yeah, there's a
31:39certain amount of cultural affinity and
there'll always be some, like, weirdos
31:43and early adopters, but ultimately if
you want to win the day, you have to
31:45make the right thing the easy thing.
31:47But you need some people doing that,
making the right thing, the easy thing.
31:51And I think that's what I'm talking about
is like, I want to find that 2 percent
31:55or 3 percent of the developer population
who actually wants to do the work and
31:58make the right thing, the easy thing.
32:00and that, and for that,
you need to talk to people.
32:02You know, you need to have, these
wonderful mantras that, Kepano and
32:05that, um, Peter and, Gordon, you
guys have honed over the years.
32:10actually, Gordon, I, to turn the
conversation a bit to your work,
32:14because you are working on a, network
tool, network thinking tool that
32:19captures those thoughts in documents,
files, one might say, and, You
32:24have not chosen to use Markdown.
32:27You've chosen, you've made some
interesting technical choices.
32:30So I'm curious how, when you, when you
look at file over app, are you like,
32:34yes, that, that aligns with my, The
decisions that I'm making right now
32:39for the tool that I'm building, or how
are your thoughts different from kind
32:43of what you've seen Kapano lay out?
32:45Yeah, that's a good question.
32:46I guess what we are building is a sort
of notebook app called Subconscious
32:50powered by this decentralized note graph
protocol, and the protocol is multiplayer.
32:56So the notion is like, what if you had
your Roam graph or your Obsidian graph,
33:00but it could sort of freely network with
other graphs in this cloud of graphs.
33:05But that cloud of graphs doesn't live on
my server where I can sort of, you know,
33:10extract a 30 percent text or whatever.
33:12It exists on this decentralized network.
33:14I actually, that's not quite right either.
33:16The protocol is local-first.
33:18so basically it syncs your slice of the
graph, like your content plus the content
33:22of people you follow onto your devices.
33:24So you have your files.
33:25and then this was clear,
33:27right?
33:27They're, they are actually files.
33:29They're actually files.
33:30If you
33:30run orb on a, or what you
guys used to call it, orb.
33:34Yeah, it's called orb.
33:34Yeah, no, it's called orb.
33:35There's, so there's a
couple of things, right?
33:37There's the app, but there's also
like a command line interface.
33:41You can use if you're a
developer, that's like git.
33:43And, and actually it works a lot like git.
33:45The whole thing uses kind of
git like, versioning semantics.
33:48the difference is that it syncs
not just your code, Quote unquote
33:52repository of notes, but also kind of
the, those are the people you follow.
33:56So you have your own little
internet archive, I guess.
33:58Right.
33:58You like Git, uh, it's like Git sub
modules or that's a terrible example,
34:01but it's like, No, don't say
34:03that.
34:03That's mean.
34:03It's not like that.
34:04I promise.
34:05It's, it's, it's all, it's
much, much better than that.
34:07It's all versioned together.
34:09I mean, I, yeah, without getting
deeply into the details, it's
Data Ownership
34:13This is part of, I guess, what's.
34:15That's what's a little bit different
from something like Git or why you can't
34:18just use Git, but right, you know, I
guess a lot of what we're doing, yeah,
34:23at some point during your usage of
this, you will end up with actual
34:27files on your device, like, yeah, very
different than most other systems that
34:32we interact with right now, Obsidian
being one of the ones that you do
34:35end up with files on your device.
34:37But that's a choice you guys made.
34:39The files are, I guess you
could say they're a lens over
34:42the data on the protocol.
34:44And, for me being able to get a
live synced, instance of those files
34:49on a device is sort of proof of, of
what, what we call credible exit.
34:53So this is like our minimal definition of
what Sort of user ownership of data should
34:59mean for our tools for the way we choose
to build for it It's like you should be
35:03able to take your stuff and leave or bring
it into another app or whatever Now I
35:07think Obsidian actually has credible exit
as well And they do this through through
35:10files, but I think they have some maybe
tricky edge cases around multiplayer And
35:16this is because, you know, f files, one of
the shortcomings of files is they don't,
35:20they're, they just don't do multiplayer
really well on, on two axes, actually.
35:24One is, most file formats are not
designed to sort of freely merge updates
35:30from a bunch of different sources, like
Peter edits the file, I edit the file,
35:35how do we resolve those conflicts?
35:36The other sort of axis around which file
systems are not really well designed
35:42for multiplayer is around security.
35:44so once you have multiple players, it's
sort of an adversarial environment,
35:49or you have to design for that anyway.
35:51You have to predict
35:52the emergence of an
adversarial environment.
35:54Yeah, because, you know, imagine you're
reading and writing these files and
35:58then you just connect this thing to
the internet, what if 4chan suddenly
36:01has write access to your hard drive?
36:02Like that's the, that's the worst
case that you need to the mistakes
36:06Scuttlebutt had too, right?
36:07Which is they did this like replicating
friends of friends thing and then you
36:10only had to compromise one person's
friend graph and all of a sudden
36:14you were, you know, you could sort
of sneak someone into the graph and
36:17then have everybody else back up
your objectionable content for you.
36:21Right, which is, and then this became
a major problem because everything was
36:24append only and everything was replicated
and everything was encrypted and all of
36:29a sudden you're downloading gigabytes
of like terrible hate speech or other
36:33kinds of nasty stuff because, you know,
somebody made like a face account,
36:38you know, infiltrated a community and
then like, you know, linked in all
36:42their like hateful people that they
want to follow and now everybody else
36:45is like stuck mirroring their content.
36:47I guess, yeah, you know, again,
this, this system of replicating
36:54friends of friends content.
36:56Is very easily gamed by an adversary.
37:00Yeah, I guess it's important to
kind of define your, Risk profile.
37:07Yeah, yeah.
37:07The threat model.
37:08Yeah.
37:09Like is your threat model that, like about
replicating friends of friends content?
37:13I like, I think, browsers for example,
are even coping with this in a more
37:17pedestrian, not a decentralized way,
but like they're introducing the, the
37:21file API, which actually will allow you
to save files out from the browser in a
37:25sort of, so you could go to photoshop.
37:27com, edit a photo and that
saves it out to your disk.
37:29And this is something I worked
on when I was at Chrome a
37:32little bit, and it has a lot of.
37:35Thorny issues.
37:36Actually, most of the browsers only
partially support it right now or
37:40support, you know, certain parts of it
because the way the web secures content
37:46around domains is very different.
37:49sort of comes in at an odd angle to the
way file systems think about security.
37:54And so anytime you have these two sort
of security models budding up against
37:57each other, you have this turbulence zone
where all sorts of funny, scary things
38:01can happen and you need to deal with that.
38:03So this is actually, this
is a pretty tricky problem.
38:05You know, it's one that we've,
taken a stab at for our use case.
38:09but I think often you'll run into
this dilemma that isn't immediately
38:13obvious, but you can sort of,
typically you can either have.
38:16sort of files or, or, or data
ownership or multiplayer.
38:21but not both, unless you start picking
apart some of the security problems
38:27that the web has, you know, sort of left
us with some of that security stack.
38:32Gordon, when you say, unless you
pick apart some of the security
38:34problems, what I hear you saying
is like, you have to solve for sort
38:38of the identity slash network slash
authentication authorization piece in
38:44order to get files and collaboration.
38:46Like it implies that there are multiple,
you know, Writers that have different,
38:51that are different, you know, and,
and you have to somehow allow them to
38:54communicate with one another, allow
them to identify one another, and then
38:57also, allow them to secure content,
set up the rules for who can write
39:02when, how, all of that kind of thing.
39:05Is that?
39:06Yeah, I think that's right.
39:07I've personally become convinced of
the, the value of and this is rather
39:12low level stuff, but signing everything
with a key that maps one to one to you.
39:17And I think, you know Hold on, everything?
39:18What does
39:19everything mean?
39:19Because this is a specific technical
problem that we're, like, quite
39:23deeply investigating right now.
39:25Because, like, you sign every
keystroke on a 200, 000, keystroke
39:30essay, like the Embark essay.
39:31And what you have is mostly signatures.
39:33I like the way that you, you, you
love mip mapping, don't you, Peter?
39:37Like going one level more,
granular with definitions.
39:41Well, it's tough because like this
is this, like you have to constantly
39:44be moving up and down these
hierarchies of abstraction when you're
39:47working on these problems, right?
39:48So like, you know, Newsphere is cool
because, you know, you can operate
39:53at this very coarse, chunky grain.
39:55But when you say everything,
this is why I'm asking, like, you
39:58know, like, does this exclude that
kind of lower real time thing?
40:02Maybe this is a solvable
technical problem.
40:04Just curious what you think about that.
40:06Well, and I suppose you
might be able to sign at the
40:08granularity you care about, right?
40:10I guess what I mean is, the web
anchors security to domains.
40:15So the way the web thinks about security
is, it's guaranteed by a domain.
40:20if you want to start making attestations
about, people or individuals or actors
40:26on the network, then you start, maybe
wanting to give those actors keys.
40:30In some capacity.
40:31And now I think there's, you know, sort
of the cypherpunk view of it, which is
40:35that these keys should be self sovereign.
40:36And I, I sort of think that that's
a possibility that a protocol
40:39should allow for, but a lot of
people are going to want to escrow
40:43those keys or have them recovered.
40:44It doesn't, a detail that users shouldn't
have to care, care about most of the time.
40:47Right.
40:48And an important one too.
40:49Yeah.
40:49Yeah.
40:50But, what signing with keys does is.
40:54It allows for what a cryptographer
called non repeatability.
40:57Like you can basically say this person
definitely signed this at this time,
41:00or at least the person who had control
of these keys, and if you keep those
41:04keys secure, you can actually sort of
compose, trust at pretty high levels
41:08in pretty useful ways, mathematically.
41:11So in any case, I think where the file
system and the network tend to run up
41:17against each other at odd angles is the,
the internet or the web rather tends to
41:21think about security in terms of origins
and, of domains and actually apps by and
41:26large adopted that security model as well,
like, like iOS apps, Android apps, and the
41:30file system tends to think of, Security
in terms of who has access to the device.
41:38And these, these two ways of thinking
about security don't, don't mix
41:42very well without some sort of
trust boundary or sandbox boundary
41:46that mediates that relationship.
41:49Can you, can you talk more about this?
41:50Cause this is, I've had many
conversations with like browser heads
41:54and like, I get the idea of an origin
and let me see if I can say this in
41:58a way that like a non browser head.
42:01I mean, maybe I'm a browser person
now, too, by, by fate, but like an
42:05origin is basically like somebody
owns the SSL cert for this DNS.
42:12And so we're just going to trust
everything within that domain
42:15that's signed by that cert, period.
42:17But we're, but we're going to
prevent mixing of that data.
42:21You know, unless it helps us sell ads with
any data from any other origin period.
42:28I mean, I'm a little bit snide when I
say that, but it is a very real concern
42:32and it is very empirically how ads work
and, you know, however you feel about
42:37that, that's just, it is the case.
42:39That sounds like a pretty
accurate description to me.
Decentralized Protocols
42:44Do we want to keep going?
42:46Well, the reason why I think it's
relevant to the files conversation where
42:49we started and the apps conversation is
that origin model is like so Like, many
42:56people I meet who work on these kinds of
problems They get really frustrated by
43:00like cores and like same origin policies.
43:04And the browser keeps ratcheting
these tighter and tighter and tighter
43:07over time, you know, yeah, exactly.
43:10And so to me, this is actually
a really fundamental problem.
43:14Where it's like, well,
but it's my computer.
43:16I want to decide what I do with my data.
43:18And then in the JavaScript console,
it's like, browser says no.
43:21Yeah, actually it's the, um, right.
43:23But like the, the most secure web would
be one where each website is hermetically
43:28sealed and you can neither interact
with it nor receive output from it.
43:32Just little pocket universes.
43:35So, I mean, there's a sort of like
reductio ad absurdum to this, where
43:38like we started with a pretty simple,
it was like a reasonable solve right at
43:42a time, especially in the early days of
the web when they were like, I think
43:46the mental model was that you might run
a, a server out of a closet or perhaps
43:50your school would run a server, like
it was this very utopian kind of flat
43:54Notion of what a network would be.
43:56And so the server was assumed to be
the agent of the, you know, let's say,
44:01uh, Gordon's email would be like a
computer that was like in my , my closet.
44:07And so like, yeah.
44:07Gordon com Right.
44:09Was a, yeah.
44:11And so if that, if that server is signing
things, you know, you can sort of say,
44:16Oh, well, Gordon signing things, but
that's not really the world we ended
44:19up with because of network effect,
because of Facebook signs, everything.
44:24Yeah.
44:24Yeah.
44:25Now.
44:26Keys are tricky, like, because
there are these funny little things
44:29that you can't lose, just like in
real life, or you'll be locked out.
44:33Except there are no locksmiths.
44:35There are no locksmiths, yeah, at least
unless the NSA has its way, you know, but,
44:41No, but I do, I do have some hope that
we're going to see some, some interesting
44:46kind of new calculus emerge around this
problem with, the advent of like trusted
44:50computing modules, like secure enclave, on
the iPhone, or I forget what the Android
44:54version is called, which makes me a bad
former Googler, but you can sort of stash
44:58keys on these secure pieces of hardware,
and then you have a pretty, you know,
45:03maybe your threat model is the NSA has
your phone and is trying to crack into
45:06it, but that's less the world I'm trying
to solve for, and more the world of like.
45:10It'd be kind of nice to know if,
45:12this I think Bonsy Buddy is a, is a, is
a really credible threat model, right?
45:16Like, that's sort of the core
threat model for, that browser
45:18vendors think about, right?
45:20Which is, you've got some, like,
hostile agent on the user's computer.
45:23They've installed a search,
ostensibly a search toolbar,
45:26or some kind of browser plugin.
45:28Which is now like extracting their
credit card information or their bitcoins
45:32or just other private information.
45:34So so why does this matter?
45:35Well, so like this this origin security
model inevitably results in silos
45:40like by definition data silos Like
the the silo is the website the the
45:45whole security models that the data
can't make it out of the website
45:48And so you just sort of end up with,
45:50Well, it does at the server, right?
45:52That's, that's the funny thing.
45:53The server.
45:54That's right.
45:54So they run an API so you can come
in from other places there, but the
45:57user can't do it for themselves.
46:00Yeah.
46:00and then this puts the server in
a very privileged and powerful
46:04position on the network because
an API can, can cut you off.
46:08so data that might be notionally
yours, is in practice, it's not really.
46:13I don't know.
46:14If you want to try to solve for that
problem in some capacity, like multiplayer
46:18and some kind of data ownership or the
ability to take your content with you.
46:23I think there's only
three ways to solve this.
46:27one is with a decentralized protocol.
46:30Without going too much deeper
into it, the protocol also has to
46:32have certain security qualities.
46:34I think the other is actually with
local-first data, and this is, Peter's
46:38working on this problem of CRDTs.
46:39The reason local-first data gets you this
is because you know, a server might cut
46:44you off, but it's like, screw you, buddy.
46:46I already have my content, right?
46:47It was already synced to my device.
46:49No, but that's not true.
46:51Like I wish, I appreciate the compliment
implied there, but I think you still
46:55require the first thing, right?
46:56Cause like when you get the data,
like this idea of local-first data,
47:00if it's happening in your browser,
it's still being written into an
47:03indexed DB or an OPFS or whatever else
that's owned by the origin, there is
47:08the ability to write real files, but
it sucks and doesn't really work.
47:12And I see some folks here who have, like,
built apps, like, no one is making a
47:16user click, like, allow access to this
folder every time they open an app.
47:21Gosh, yeah.
47:21Uh, so that's what the, that's
like the file access API.
47:25Yeah.
47:26Right, like, so it is, it, all of that
data is still trapped inside the origin.
47:30Yeah, I'm sure that's true.
47:31I, so, Peter, you were saying, I have,
wait, I have a third, third point.
47:36Yeah.
47:37So, and actually I do want to
say CRDTs are still important.
47:39You're talking totally, totally, but it
47:41doesn't solve the, it
47:42doesn't solve
47:42the origin thing.
47:43And that's the part I don't have a good,
47:45let me circle back to this.
47:46I just want to throw out
one time over coffee.
47:48You told, you told me.
47:49You don't need to care about which
protocol you get the data from if
47:52the file knows how to merge itself.
47:54And I thought that that was a
wonderful provocation to sort of like
47:57argue in favor of the CRDT thing.
47:59And, and all of these are
satis satisficing, right?
48:01Like a protocol, a CRDT, these are not
going to give you perfect exit in any
48:06case because, you know, in the worst
case you might be shut out from the app.
48:09That lets you use this
stuff in a useful way.
48:11But I do think they give you the
ground conditions for things like
48:14adversarial interoperability to emerge.
48:17But the third thing, and the one that
I think is underexplored, and I haven't
48:20even thought through it fully, is,
something like a legal contract that
48:25guarantees the user access to their
data along some axes, as long as a
48:29service continues to be maintained.
48:31You mean like a, like a
48:32UCAN or like an actual, like.
48:34Like TNC.
48:35Like something like, so, and this is the
thing, nothing like this exists today,
48:40but there's no reason you couldn't
write something like a EULA where
48:43the valence goes the other direction.
48:45Instead of the user signing away
their rights, the user is granted
48:49certain rights over their data.
48:51Hey, I'll take that To my lawyer
and yeah, no, actually I've been
48:55thinking, I've been asking for
48:57this.
48:57I sent some, I sent some irony there,
but if you're interested in, I was
49:02thinking about actually going to a lawyer
and see, like asking, is this crazy?
49:06Cause like open source would have
been crazy at one time, but you
49:10know, it's interesting, right?
49:11Like we actually can bend contract on
some interesting directions to solve
49:15using Social technology is things
that are difficult to solve with, you
49:19know, bits and, atoms technologies.
49:23Right.
49:23Well, the challenge here is
not even, could you write a
49:26contract that would do this?
49:27The question is like, how would this
affect your ability to fundraise?
49:31Or what would happen when you told
your VP of sales what you were doing?
49:37Yeah, maybe so.
49:38I think you run into a lot of these same
problems when you say, Hey, we're going
49:41to give users control over their data
through a protocol or through a CRDT
49:44anyway, so, you know, it's like in a lot
of ways, like, this condition of things.
49:50Not interoperating and users not owning
their data, like, an investor might look
49:55at that and say, that's a moat, right?
49:57It is a moat.
50:00Yeah.
50:00I tend to think about this in like longer
terms that, you know, it's like in some
50:04ways, like Google doesn't have like a
lock on search, like it keeps trying with
50:09things like the open graph, but I, like,
I think it's perfectly possible to build
50:12a defensible business without data lock
in, but it is, it's something you get for
50:17free with the current software paradigm.
50:19And so we're sort of stuck in this
metastable state where extra work.
50:24This is where I think things like your
protocol or Automerge or other kinds
50:27of similar projects have potential.
50:30If you can crack the, like what
you need is enough benefit from
50:34participating in the ecosystem that
allows you to get like a network style
50:39returns from interoperation over time.
50:42Yeah.
50:42You need a low enough activation
costs that you can bootstrap
50:45the ecosystem around it.
50:46That has to be enough value from
adopting the technology to see that
50:50kind of like a feedback on the returns.
50:53And I think the other thing that we
haven't talked about that, but that
50:55is implicit in all of this is like
the political economy of the software.
51:00That is available to us is determined
by like the market economy of the
51:04labor market and the VC funding
market and everything else.
51:07And like, it's all well and good to like
hand wave that away, but it is empirically
51:11the case, you know, like information
may want to be free, but my rent isn't.
51:16I think I look at this as in
like a kind of scrappy, maybe
51:22like entrepreneurial way.
51:23I'm looking for the cheap hat because
I don't want to wait, abolish, wait
51:26for the abolition of capitalism
to improve software somewhat.
51:29And I do think there are these kinds of
judo moves, these interventions, like
51:34CRDTs that can change the calculus.
51:39Yeah, maybe I'm wrong, right?
51:40and, and maybe you're wrong.
51:41Maybe we're all wrong,
but I, I don't think so.
51:43I, I think that it requires great
ingenuity and creativity to find
51:47the strategic angle of intervention.
51:49But yeah, you know, people
do this all the time.
51:51They do it, for, they, They apply strategy
to find an entry into a market in order
51:57to gain, because incumbents don't want
new entrants in the market either.
52:00And I think we have to put that
hat on actually, if we're going
52:02to, to change the, the balance
of power, that users have.
52:07How do you think about
that with what you're
52:08doing?
52:08Oh, sorry, Jess.
52:09No, it's okay.
52:10I was going to mention, I think there's,
so I, I love your three things, Gordon.
52:14The, there's three ways
you can solve the problem.
52:16Like some decentralized protocol that,
Or two, local, distributed local file
52:20state, like distributed local state.
52:22And then the third, sort
of a legal contract.
52:25And I think the one, Peter was pointing
out that the market economics right now,
52:29what is easy is also very profitable and
therefore the label market and the funding
52:34market were, it, it drives against the,
any of these values and it supports sort
52:38of the data modes that we were talking
about before with the same origin policy.
52:42And I think the biggest funding
mechanism that I see, Peter's not going
52:46to love this, that is alternative to
VC right now, is there is a large lump
52:51of money in the Web3 blockchain world.
52:55And you do see some of those
projects putting that to use
52:58to try to solve this problem.
53:00I see.
53:01Famously anti capitalist
distributed wealth system of
53:06the cryptocurrency market.
53:08Known for its transparency, honesty,
and, Fair outcomes for all involved, yes.
53:14You're not wrong, and also
there's a lot of money there.
53:17And so this is kind of like,
it's basically the flip of
53:20what you were just saying.
53:21It's like we have to acknowledge
the reality of the market economics.
53:24Well, the reality of the market economics
is that there is billions of dollars
53:27in these decentralized protocols
that are basically payment rails for
53:31Distributing tokens and things like that.
53:33And a lot of shady, crazy stuff
is happening there for sure.
53:36but they are, tell me about the
53:38stuff that's not, cause I
think that's interesting.
53:40So here's the one that I wanted.
53:41This is the reason I brought it up
is I don't know if you guys have been
53:44paying attention to the Farcaster
protocol, but they're distributed
53:48social media protocol and they have
been iterating on this thing called
53:52frames and frames are like a micro app.
53:57Within a tweet, if you could embed.
53:59And the, the interesting thing about
it, they're opting for Gordon's
54:04option one for distributing state
and, access and, and all of that.
54:09Yeah, they actually,
54:10their, their protocol is not too different
from BlueSky or even our own, Neosphere.
54:15but it does make a couple of
choices around key rotation that,
54:19and they use a blockchain for this.
54:20I could get into the why,
if we want to later on.
54:23Well, here's the more interesting thing.
54:24Just today, they showed off, frames
that allow for, money tra uh, sorry,
54:30token transfers to happen inside of it.
54:32So basically they built into
their protocol, micropayments.
54:36And the reason I think this is
really interesting is because I think
54:40one way out of this, the current.
54:42uh, world that we're in with browsers
and same origin policy and the sort
54:46of, the dead end, but it's a happy
dead end where the web is, is a, is
54:50building a payment protocol into the,
the primitives of the network itself,
54:56such that people can renumerate
each other directly, and You know
55:00the web was meant to have this?
55:01There's an HTTP code for
payment, like pay per view.
55:05It just never got, yeah,
yeah, yeah, yeah, yeah.
55:08This is like Tim Berners
Lee just stuck it in there.
55:10There's it's, it's along there
with like, uh, what is the, there's
55:13another code for I am a teapot.
55:15Um, there's like these funny, like
reserved codes for just in case that Tim
55:18Berners Lee stuck in there and payment
was one, uh, we just never got it.
55:22Yeah.
55:23I don't know.
55:23I don't know what you're going
to ask with regard to Web3.
55:26I think the idea of like digital
payments is not crazy on its face,
55:30and it would be interesting to think
about ways to do that with a protocol.
55:33I think my stance with regard to Web3
is sure to piss literally everyone off
55:38on both sides of this very kind of like
divisive issue, which is that, uh, I
55:43think that, I look at a blockchain
as a really interesting technological
55:45artifact that does solve some problems
that are very difficult to solve in other
55:50ways, but the number of people who want
to solve those problems is small, and
55:53nevertheless, they can be high value.
55:57So these are things like key
rotation, which Farcaster uses.
56:01There's been this, there's always
been a challenge with key rotation
56:04where you need like a third party to,
to basically handle that rotation.
56:09And that third party is kind of like a
point of failure if someone, co ops it,
56:13but in any case, you know, I, here's
where I'm going to piss everyone else
56:18off, uh, on the crypto side is like.
56:21I think all of the problems of
crypto are not crypto problems.
56:24They're, market problems.
56:25And if you look at them point for
point, like, you know, tulip mania,
56:28wildcat banking, crazy token pump and
dump, these are literally all things
56:33that we had to go through with regard
to, capitalism in general, markets
56:37in general, for the last 200 years.
56:39And then we accrued this
enormous edifice of regulation.
56:45Around markets in order
to get them to function.
56:47So my personal attitude toward this
stuff, which probably a lot of people
56:52are going to agree, disagree with for one
ideological reason or another, it's like
56:55markets are kind of like nuclear reactors.
56:57They can generate a lot
of interesting outcomes.
56:59but they also have a tendency to
melt down, without cooling rods.
57:03And, and this is just kind of what
I see happening with, with crypto.
57:06And I think it'll continue to happen
up until the point that it gets
57:09some sort of enlightened regulation,
which may never come because it
57:12seems like nobody's actually invested
in that outcome on either side.
57:16so there's Gordon's unpopular
take with regard to Web3.
57:21So Web3 is speed running 200 years
of financial market regulation.
57:25Yeah, and, and actually,
57:27especially To me, like, proof of stake
blockchains are a really interesting
57:31technology that solve, like, a interesting
problem of, like, decentralized,
57:35totally ordered, sort of, source
of truth that's credibly neutral.
57:39These terms all have to be qualified
because, you know, they're all, all
57:42of that is also kept afloat by, like,
basically, The financial function
57:48that a chain is supposed to serve.
57:52but I think the product market fit
that chains have found right now is
57:54basically Vegas and, you know, crypto
just recently skyrocketed back up again.
58:00So I've come to the conclusion
that Vegas is actually anti
58:03fragile and you can't kill it.
58:05but that's also something that is, Vegas
is not personally my favorite place to be.
58:09so.
58:10If I engage with it, it's, it's, you
know, kind of, with, with care and
58:14with a little bit of self protection.
58:16Yeah, I mean, I, I think Jess,
has certain expectations about my
58:21perspective on these things that are
not entirely unfair, but I, I would
58:24say I'm not anti crypto conceptually.
58:27I'm just opposed to getting dragged into
the kinds of communities that I've seen.
58:33You know, I just, like
the ideas are reasonable.
58:37It's just, the outcomes seem.
58:39Odious.
58:40So I'm just like,
58:41so many things when,
58:43when there's like a healthy, high
functioning, cryptocurrency for like
58:47micropayments that isn't like a,
like an insane pump and dump, a penny
58:53stock, gambling, whatever, right?
58:55Like, yeah, like, but that would be cool.
58:58I, I always ask if anybody has one
in mind and nobody does, but in the
59:02meantime, I also think it's a little bit
irrelevant cause like, Oh man, use PayPal.
59:06Use, like there's lots
of, use Square Cash.
59:09Like there's, use a freaking credit card.
59:11Like there's, payment is, is,
yeah, there's more friction
59:14than, than you'd like.
59:16But like Stripe is pretty good.
59:18There's alternatives and Wraparate.
59:19Like these are hard problems, but they're
so much less hard than they used to be.
59:24And they're, you know,
Apple Pay is pretty great.
59:26Like, you know, like we don't
need to invent a whole new
59:31financial economy to do payments.
59:34But I do think broadly, like
we've got a little bit off
59:38track here, which is like files.
59:40Well, no, it's files over apps.
59:42And I think again, like we have to ask
why, why are things the way they are?
59:47And so things are the way they
are because you can make a living
59:49building software that way.
59:51You can get investment from
other people to build software.
59:54And if you can't get investments and
you can't make a living, then you're
59:56not going to have the ability to
attract, attract top talent, right.
1:00:01To bring in the investment it takes
to build a team in advance of revenue.
1:00:05Right.
1:00:05And like the problem with crypto money is
that it always ends up being predicated on
1:00:11like the promise of crypto style returns
in sort of the, you know, idealized case.
1:00:16And so what you see is like
ecosystems aligning around trying
1:00:19to generate one of those crypto
pops, because that's the expectation
1:00:23that comes with the investment.
1:00:24And I think, I don't
want to call anybody out.
1:00:26I'll just say that there have been
very interesting and promising
1:00:29projects that have over time had
to realign themselves to generating
1:00:33crypto Interest style returns.
1:00:37And that, that, that has very frequently
been to the detriment of their mission.
1:00:41Right.
1:00:42Yeah.
1:00:42Token pumping tends to
be an unstoppable force.
1:00:45Yeah.
1:00:46And getting that doom loop.
1:00:48Yeah.
1:00:48And I wasn't necessarily bringing
up web three to say that that was
1:00:50the solution, but I do think the
acknowledging there, there's two things
1:00:55that I think are interesting here.
1:00:57One, how do you fund the.
1:00:59The research into making, making easy what
we want, what we believe to be the future.
1:01:04and one of those funding sources that is
non VC is a pool of cash that is Web3 that
1:01:10has all sorts of other challenges with it.
1:01:13Right, but look at what's
happened there, right?
1:01:15Like, like really specifically
look at what's happened there.
1:01:18Well, I do actually, I want to take
Jess's, perspective on this for a minute.
1:01:22Cause I, I sort of gave my, you know,
like very boring, ambivalent take on it.
1:01:27But like, I think actually there, if
you, if I remove my moral valence,
1:01:33like there are a lot of things that
seem crazy on their face, that generate
1:01:36unexpected outcomes and like, I see
a lot of money getting dumped into
1:01:40things like ZK proofs, which is a
general purpose cryptographic technology
1:01:44that has nothing to do with chains.
1:01:46Work has been mostly funded
by, blockchain maxis.
1:01:50I see interesting work on elliptic curves.
1:01:53you know, like, uh, like Zuko
Wilcox's work on elliptic curves,
1:01:57that's being done around this.
1:01:59they use IPFS.
1:02:00IPFS ecosystem has this new kind of,
I guess you could think of it as like
1:02:04a zip format for blocks that, you can
stream in and it's all sort of like
1:02:10signed in the way that you can sort
of streaming, uh, stream this stuff in
1:02:14and, and cryptographically verify the
blocks as they come in is it's using
1:02:17this elliptic curve technology that was,
you know, it's ultimately developed by
1:02:21Zuko Wilcox for ZK stuff, uh, Zcash, I
1:02:25believe.
1:02:25And, uh, UCANs, from the Fission
team are another great example.
1:02:28I think they've taken, you
know, a lot of research funding
1:02:31from those kinds of sources.
1:02:32I think that's good stuff.
1:02:34Yeah, I think
1:02:34we're also, we're seeing like Farcaster
and BlueSky and Nostr and various sort
1:02:39of stabs at decentralized, protocols
that actually don't really have a
1:02:43crypto component, but I think are
benefiting greatly from the mental
1:02:47models developed by crypto researchers,
cryptographic researchers, as well
1:02:51as, Cryptocurrency researcher.
1:02:53So I think, you know, it's, it's
like, there's this quote I really
1:02:55like from this, evolutionary biologist
who says, containment can lead to
1:02:59contagion, and a degree of isolation
is of, great, Importance in sort
1:03:04of new forms of being a false.
1:03:06So it's like the island ecology thing
Like if something's off to the side
1:03:08and it's under a set of different
selection pressures You could be like
1:03:11those selection pressures are perverse.
1:03:13They're terrible.
1:03:14Maybe they are but you're gonna get
some weird and interesting critters
1:03:18that emerge out of that primordial
soup for good or ill, right?
1:03:22Like I definitely think we're seeing
some things emerge out of the crypto
1:03:27landscape that wouldn't emerge out
of the incentives of like the web 2.
1:03:320 aggregator kind of landscape.
1:03:35Well,
1:03:37we're, we're about a little over an
hour and let me see if I can try to
1:03:40land the plane here and kind of recap
the conversation we've had so far.
1:03:43So we kind of jumped in with this files
over apps and kind of talking about each,
1:03:48some of our different work around this.
1:03:51And then, there was a lot of history
discussion around sort of how
1:03:55did we get to the current system
where apps could even be used in
1:04:00a sentence like file over app.
1:04:02and what does that, what does
that mean for where we are today?
1:04:05And then I think the, the most
recent exploration has been
1:04:07how do we get somewhere else?
1:04:09How do we get to a place where files
to open, to echo Peter's opening
1:04:13comment, where files didn't get their
butts kicked and where we can actually
1:04:17rely on some of the file like goodness
that we get, where we can get this,
1:04:22a combination of files and places.
1:04:24And, Yeah, there's been some really
great work, that, Gordon and Peter and
1:04:30certainly, I've been trying to chip in
as well on, moving us in this direction.
1:04:34Really appreciate Obsidian and
Kapano for kind of, being a
1:04:37working piece of software that
embodies these concepts as well.
1:04:41we've talked a lot about,
local-first software as well.
1:04:45that's another term.
1:04:46If you're not familiar with it, you
should definitely look for the original
1:04:50article from Ink and Switch that
defined the term local-first software.
1:04:53And if you want to kind of hear
more conversations like these,
1:04:56there's a podcast by Johannes,
which I noticed is sitting in
1:04:59the audience, called localfirst.
1:05:02fm.
1:05:02And that'll kind of take you on the
journey of, local-first and which
1:05:07really does, not 100 percent overlap
with the file over app, philosophy,
1:05:11but there's a lot of overlap there.
1:05:13And there's a lot of technology
that's being developed that can
1:05:15hopefully get us from where we are.
1:05:17And sort of this current ecological
conditions to a new place.
1:05:22but Gordon or Peter, do you guys
have any closing comments before we
1:05:26wrap up?
1:05:27I do, I do, which is, I liked
Peter's put that we need to make
1:05:31the right thing, the easy thing.
1:05:33I think it's actually extraordinarily
difficult right now to build an app
1:05:37that, puts the user in control of
their data in any meaningful sense.
1:05:41Almost literally, no matter how
you define user ownership of data.
1:05:44And, you know, the work Peter's doing in
CRDTs, and I think the many decentralized
1:05:49protocol projects, including our own, are
all attempts at trying to lower the floor
1:05:55so that more people can, can build apps
that actually do put users in control.
1:05:59I think that's, that's necessary.
1:06:01cause otherwise it's going to
continue to be prohibitively
1:06:03expensive to make that a reality.
1:06:07Yep, absolutely.
1:06:09Absolutely.
1:06:09Peter, anything to wrap us up?
1:06:11I don't think we have an answer yet.
1:06:14Like, I don't mean us
here, though, also that.
1:06:17But, like, I think that, there's a lot
more work to do and a lot more to say.
1:06:21And, you know, I have plenty of like
pet theories and, and ideas as I'm sure
1:06:25everybody here on this call, does, but
I think, I've tried not to, I've tried
1:06:32not to fall into solutioneering in this
conversation because I think it's, it's
1:06:36easy to get, jump into the why don't we
just, kind of mode, but I think that
1:06:40like a good, clear understanding of
the opportunity, the challenge and the
1:06:45benefits and like a, uh, Like I just
feel like very often people sort of
1:06:49lament the way things are, but I think
Gordon's approach to kind of analyzing
1:06:55the, not just the technical landscape,
but like the political and cultural
1:06:59landscape as well is part of why I so
enjoy these conversations that we have.
1:07:05And I really, thank you,
Jess, for, for allowing me to
1:07:08jump in and be a part of it.
1:07:10Likewise.
1:07:11It was great.
1:07:12But yeah, I'm, I'm, I'm very, uh, Excited
to see folks like yourself, you know,
1:07:18like actively engaging kind of one
rung closer to sort of market forces.
1:07:23And, you know, I don't think
there's a wrong thing to try.
1:07:27Like if you're doing things, I
wouldn't, I'm doing things you wouldn't.
1:07:30I think that's great.
1:07:32I'm not here to be a bigot for
an approach or a technology.
1:07:35I'll speak my mind and
tell you what I think.
1:07:36And if your thing works, I will celebrate,
you know, that's, I hope that we all
1:07:41have that mindset of like, You know,
it's not about arguing for ideological
1:07:46purity or like the one true solution.
1:07:50I think it's just we got to get out
there and try and make things that work
1:07:53for people and then See what people say
when they try them and then keep, keep
1:07:56going, keep iterating, keep trying again.
1:07:59So if you're sitting and
listening to this, I don't
1:08:01know how many people are here.
1:08:02There's a bunch of people wandered in.
1:08:03yeah, like go, go make things, I guess.
1:08:06Or try some of the things that
we've made and complain about
1:08:09the ways they don't work for you.
1:08:10That's, that's honestly, that's honestly a
pretty good, pretty good contribution too.
1:08:15Such a gift.
1:08:16Such a gift.
1:08:17All right, guys.
1:08:17Well, thanks.
1:08:18And, yeah, look forward to the next
time I get to chat with both of you.
1:08:21I see it, Jess.
1:08:22Take
1:08:23care, y'all.
1:08:23Oh, Hey.
1:08:23And if anybody out there wants to
see, I think you're going to the
1:08:27local-first conf in person, right?
1:08:28Yes.
1:08:29I will.
1:08:29Yeah.
1:08:30I'm going to be there.
1:08:30Gordon, are you coming?
1:08:31I'm so sad to miss it.
1:08:33Yeah, I will not.
1:08:35Yeah.
1:08:36I think it's going to be glorious though.
1:08:37It's, it's going to undoubtedly be an
interesting cross section of people.
1:08:41I feel like this is a, an
idea that's just breaking into
1:08:44sort of broader consciousness.
1:08:46and the people who have been
investing in it for a long time,
1:08:48I'm sure are all sure to be there.
1:08:49And it's, it sounds like it's
going to be a real party.
1:08:51Yeah.
1:08:52local-first conf I mean, not everybody
will be there, but hey, that's the idea.
1:08:55local-first conf, it's
in Berlin, end of May.
1:08:58yeah, you should look it up.
1:09:00Berlin is amazing too.
1:09:02That should be like excuse enough.
1:09:04Oh my goodness.
1:09:05What a place.
1:09:06Alright.