localfirst.fm

A podcast about local-first software development

Listen

Conference

#13 – Maggie Appleton: Barefoot Developers, AI, end-user programming


The guest of this episode is Maggie Appleton, a designer, anthropologist and developer who has recently explored the world of local-first by giving the closing keynote at the last local-first conf. This conversation will dive into the topics of her talk including home cooked software, the idea behind barefoot developers and how AI complements local-first software development. 

Mentioned in podcast

Links:

Thank you to Expo and Rocicorp for supporting the podcast.

Transcript

Intro
00:00there's a group, and this is what I call the Barefoot Developer Group, who really
00:04do want more agency over their computers.
00:05They're, like, currently using Airtable and Notion and like
00:09spreadsheets and like doing really crazy, complex things with them.
00:12But they also hit the limits of these apps.
00:14And they keep being like, well, how do I make it like do this thing?
00:16And I'm like, well, you can't, like this other company controls that software.
00:19You can't.
00:20add that feature onto it.
00:22but these people, if given access to a language model, and kind of taught
00:25how to prompt it in a way where they can clearly ask for what they want,
00:29it can write the code for them.
00:30welcome to the Local First FM podcast.
00:33I'm your host, Johannes Schickling, and I'm a web developer, a
00:36startup founder, and love the craft of software engineering.
00:39For the past few years, I've been on a journey to build a modern, high quality
00:43music app using web technologies.
00:45And in doing so, I've been falling down the rabbit hole of local first software.
00:50This podcast is your invitation to join me on that journey.
00:53In this episode, I'm speaking to Maggie Appleton, a designer, anthropologist,
00:58and developer who's recently explored the world of local first software
01:02by giving the closing keynote of the first local first conference.
01:06In this conversation, we dive deep into the topics of her talk, including home
01:11cooked software, the ideas behind barefoot developers, and how AI complements
01:16local first software development.
01:17Before getting started, also a big thank you to Rosicorp and
01:21Expo for supporting this podcast.
01:23And now my interview with Maggie.
01:26Cool.
01:26Hey, welcome, Maggie.
01:28Thank you so much for making time today to come on the show.
01:30How are you doing?
01:31Hey, yeah, I'm really good.
01:32I'm excited to be here.
01:33Thank you so much for having me on.
01:35So for the few in the audience who don't know yet who you are, would you
01:38mind briefly introducing yourself?
01:41Sure.
01:41Uh, I am a product designer slash developer of some sort.
01:45and I've been working in developer tooling.
01:47for I think my entire career at this point, so pretty much 10 years, and I do
01:50a lot of work that's like doing designs for development tools, but most recently
01:55I was a designer at a company called Elicit where we were using language
01:58models to make software for scientists and researchers, so that dropped me into
02:02the world of language models and AI and machine learning, so I've been thinking
02:05a lot about that for the past two years.
02:07Amazing.
02:08I want to give a little bit of background since we just had
02:10the local-first conference in Berlin a couple of weeks ago.
02:14And I've been getting in touch with you, must have been at the beginning
02:18of this year and through some common friends we've been introduced.
02:22And I was hoping to get you somehow interested in speaking at the conference.
02:27And when you and I were on a Zoom call and I've been suggesting this topic to you.
02:32You seem super polite, but you weren't quite sure what you should say about
02:38local-first since you haven't really been building something with local-first.
02:41And now a few weeks later, you got back to me, said, okay,
02:46you're, you're down to do it.
02:48And you've delivered the closing keynote and I think it was hands down
02:52by most people, their favorite talk of the day and really blew me away.
02:57so we want to go into the talk, momentarily, but maybe starting
03:02first, like what convinced you to do the talk and what has since
03:05seemingly local-first pilled you?
Local-first and home cooked software
03:08Yeah, um, So yeah, when you first reached out, I mean, I had heard of
03:12what, I had heard of local-first, mostly from Ink And Switch's famous
03:15essay, like, I follow a lot of Ink And Switch's research, and I had read it,
03:19but at the time was like, okay, this has a lot to do with databases, and I,
03:22I like, I do front end web development, so I know nothing about back end.
03:26I hadn't even thought to look into it, or it just never appealed to me, because
03:30Most of my motivation for development is often, like, I want to make a
03:34cool thing animate on, a screen, or, like, I want to see, something move.
03:37I like the reactivity, but, you know, I'm, like, JavaScript.
03:40so I'd never thought of backend as an interesting area or really
03:43understood, like, why I would want to be interested in it.
03:46so I'd read the essay, been like, cool, that's not my thing.
03:48I'm not one of these backend people.
03:50Um, so when you reached out, I had to go Googling again and be
03:53like, what, what is local-first?
03:54Like, what is this concept?
03:56Like, why would I care?
03:57because I was compelled by a lot of the people who I saw, were going to
04:01go to this event, or were involved in the local-first community, were
04:05people who I knew were working on really interesting stuff and who had
04:08really interesting original thoughts about ways we should build software.
04:12Not just from a technological perspective, but from like a
04:14cultural, social perspective.
04:16Which is really the thing I love, is thinking about, like, who's building these
04:20tools, who are they building them for, what are their implications in society,
04:24like, how does this affect equality and economics and, like, everything else
04:28that is not just, like, what code are we writing and, like, you know, how
04:30do we architect the app kind of stuff.
04:33so once he reached out and I started googling and thinking about it, I saw this
04:36connection in things that I care about.
04:39with things that I saw that the local-first community cared about,
04:41which is things like data ownership, people being able to kind of own
04:44and control their own software.
04:46and things working offline for me is, it's quite important in like a very sort of
04:51banal personal way in that, like I spend a lot of time on the tube, like doing stuff
04:55on my phone where there's no wifi, like a lot of time on the tube and a lot of
04:59time in airplanes where there's no wifi.
05:00So just personally, I like need a lot of stuff to work offline first and, and I
05:06had also an understanding that in a lot of the world there's very limited internet
05:10connection or it's very slow, like the vast majority of people like might not
05:13have constant stable fast internet access all the time, and I hate the idea that
05:18we're always designing for a context where we do have that, and so we assume
05:22that everyone does, but this is like, like, Gets into the inequality stuff
05:25and the like, you know, designing for everyone in the world, you need to have
05:27different systems than if you're designing on a 16 inch MacBook in San Francisco.
05:32Yeah, totally.
05:33I've lived briefly for a year or so in London as well.
05:36And I do remember that I think you had some connectivity, at
05:40stations, but maybe not in between.
05:43And sometimes you're also like, as you're leaving this, the station,
05:46your device thinks, Oh, I have some connectivity and it tries to do
05:50stuff, but this is actually the worst.
05:53So I feel like a lot of software works more reliably on a plane where usually
05:58you're just entirely offline, but on a train, it's much more tricky because
06:04you have sort of this intermittent, and unreliable connectivity.
06:08And I think this is where software really struggles.
06:10So I know exactly what you're talking about there.
06:13But as you were preparing for the talk, how did you find sort of like the, the
06:18topic that you wanted to talk about?
06:20It was definitely quite hard.
06:21I mean, I liked this because right when you kind of reached out and then
06:24I liked that you said, you know, you can talk about whatever you want.
06:27I mean, it needs to be about local-first, but like take
06:29whatever spin on it you want.
06:30That's really nice because I like that kind of freedom in conference talks or
06:34doing any kind of research where I can go, Okay, I'm going to think about the
06:37things that I think are interesting trends that are unfolding or that
06:40are topics that I care a lot about.
06:42And I'll just find a way to like weave them in because most of the
06:44time everything is interconnected.
06:46Like this is all one, you know, one like software development philosophy
06:50that we're all trying to figure out.
06:51and it was once I figured out how that local-first, I felt like had a strong
06:55connection to the world of, what, um, Robin Sloan came up with this phrase
07:00called home cooked apps or home cooked software that I had been collecting
07:03information on for like a year at that point, I have this note taking system.
07:06I will just like collect examples of every single time I see someone building
07:10something that is just for them or just for their family or just for their local
07:14neighborhood, this very like local, you know, just for me and my people,
07:18not meant to scale, never going to be a VC startup, just like I'm solving
07:22my own problems kind of software.
07:24I'd written essays on this before.
07:26Like I wrote one called folk interfaces about people kind of like reusing existing
07:30interfaces to make these kinds of apps.
07:32So I had a ton of content and a lot of thoughts on this topic.
07:36And it was when I looked at it and I was like, Oh, like local software.
07:39If you take that like at face value, that is like local to me, my family, my
07:43community, my neighborhood, my country, whatever it is like near and close to me.
07:47it might also mean the data lives on my device and the way that we
07:50use it in local-first software.
07:52But I realized there was like, Oh, there's this interesting interplay
07:54where we can say local as in data or local as in culture and community.
07:59And once I figured out that connection, I went, Oh, this totally can work.
08:01Like I can build an argument around this, that actually connects
08:05these two together and can make.
08:07a bit of a, an ask to the local-first community to also care about this other
08:11version of local that I care about.
08:12So you didn't just go for software for yourself and like your local
08:17context, but you found a way to pose the question in a much more globally
08:23impactful way by, I'm not sure, I think you introduced and like you came up
08:29with a new concept with a new term that you call like the Barefoot Developer.
08:33And put that into perspective and into context with local-first software, home
08:38cooked software, would you, for, for those in the audience who haven't seen
08:43your talk yet, highly, highly recommend watching the talk also, like not just
08:47hearing the talk, but watching it.
08:49You've, as a designer, I think there's no one out there who's able to as a visually
08:55compelling and clear way, find visual narratives that makes this even clearer.
09:00So I highly recommend watching the talk, but would you mind briefly
09:04giving the idea of the talk?
09:07Sure.
09:07Um, so yeah, I came up with this concept called Barefoot Developers.
09:11and this, name comes from the concept of barefoot doctors,
09:14which was this initiative in Maoist China in the 1950s and 60s.
09:19It was not actually run by Mao, you know, he's a bad person, etc.
09:22But like, probably someone else in his cabinet who was very smart
09:26started this movement of barefoot doctors where they would take
09:28people from very rural villages.
09:29And this was at a time where there was very low health
09:33care access in rural China.
09:34There's just tons of people spread out.
09:36There's not a lot of expertise in these local places.
09:38And they would pick, like, one person from each village, bring them into
09:41the cities, and train them up in, kind of, basic medical healthcare
09:44practices, like, immunization, right?
09:46Like, treating basic ailments, just, like, giving people
09:49nutrients, and this kind of thing.
09:51And then send them back to their villages, where they are, like,
09:53local, everyone trusts them, everyone knows them, and then they provide
09:56healthcare for the people around them.
09:59And this worked really well.
10:00It, like, raised life expectancy a ton, and the whole philosophy of it
10:04was, like, we're taking, the power, not away from, but we're distributing
10:08the power from these, like, very urban centers where they have all the medical
10:11expertise out to everyone, out to all these very rural, poor villagers who
10:15now can have a better quality of life because we're giving them access to,
10:19to proper health care in a sustainable way, this is kind of a famous project.
10:22And people ended up using this phrase of barefoot.
10:25Insert your profession here in a number of different ways.
10:27There's like barefoot designers, there's barefoot architects, and
10:30the whole philosophy is redistribute the power away from the urban elite
10:35and into like the rural masses.
10:38So, People advocate for this in all kinds of ways, but I kind of looked
10:41around and was like, no one's advocated for this in development so far.
10:44And it's the same philosophy as end user programming, as the other word we would
10:48usually use for this philosophy, is like, normal people should be able to program
10:54and have agency over their computers to the same degree that programmers do.
10:58Now, In reality, we know that's really, that's a hard, like, difficult ask, right?
11:04As programmers, we deal with all this, like, complexity.
11:06There's a reason it's a profession.
11:07There's a reason it's a highly paid profession.
11:09There's a reason that not many people, like, have enough skills and knowledge
11:14to do it at a really high level.
11:15It's just, it's incredibly hard, right?
11:16Computers are super complex.
11:18It's all these edge cases.
11:19We know it.
11:19Just like layers of complexity, just 60, 000 layers of complexity in every app.
11:24Like we are struggling to make the apps work well, let
11:26alone some end user doing it.
11:28but the argument is, you know, maybe they don't have to be able to build
11:31Facebook by themselves, but surely they could build some software, some
11:36programs that serve their needs, that solve their problems in a way that no
11:40giant VC funded corporation in California ever would or would ever think to,
11:45because people who are far away in very rich urban areas don't understand the
11:49problems of people all around the world in all kinds of different communities.
11:53And probably shouldn't try because it's usually quite, uh, I don't know,
11:57like colonialist in a certain way.
11:59Right.
11:59Trying to say like, Hey, you know, whatever it is, a street seller in
12:02Turkey or like a homemaker in Tokyo.
12:04Some like bro, California, VC guy shouldn't be trying to solve their
12:07problems because he can't, he can't, there's not enough Zoom interviews that
12:10are going to give him the context to solve their problems well, and they
12:13should have the power and the tools and the agency to solve their own problems.
12:17, and you know, sure in the areas of design and architecture and healthcare,
12:20but also software, computers are part of everyone's lives and they should
12:23have more agency and control over them.
12:26So, sorry, that was the long version, but like, that is, that is the concept
12:29of Barefoot Developers are, people who are part of local communities who
12:33have enough programming knowledge and skills to build software for their
12:37communities and solve problems for them.
12:38It's not everyone, right?
12:39Like, not everyone, like, nurses and teachers and whatever,
12:42don't need to learn to program.
12:44But if you can have one person, like, who's in their neighborhood or in their
12:47school who can, then you get that person to build all the software for them.
Barefoot Developers
12:52I love that idea and, uh, I agree that this is thoroughly needed.
12:56and I think most software that we use on a daily basis is , by a super wide margin
13:03built by folks in San Francisco or New York or like in some like Western hub.
13:11but this is where not everyone in the world is living.
13:14And so if you're just also look, looking at the density.
13:17and distribution of datacenters If you're looking into the global south,
13:22you don't have, nearly, nearly, uh, as many data centers, et cetera.
13:27And you can only think about like how poorly the Western
13:29made software is running there.
13:32But we could.
13:33from a technological perspective, built as an entirely different way.
13:36So this maybe leads to a question I'm curious about.
13:40why hasn't the idea of a barefoot developer, why hasn't
13:44that been a thing before?
13:46Why hasn't that existed before?
13:48And why can't this change now?
13:51See, it's interesting.
13:52I think, it probably did exist before in the earlier days of computing.
13:56When, in a way, like, before GUIs, and before, like, we got all the complexity,
14:00all the wonderful complexity of, like, the web, and, like, more sophisticated,
14:03more complex software engineering stacks, right, before we all had, like, Node and
14:08NPM, like, I don't know, just backends, and just, we were able to build much
14:12more impressive stuff in, like, the maturity and rise of personal computing
14:17and software, but it did mean that it became such a highly specialized, complex,
14:21professionalized, thing, versus I think in like, let's try to figure out if these
14:25are the right years, but the 80s to 90s when it was still the command line, like a
14:28lot of people could build their own little things in like Linux, or just like little
14:31command line scripts, it was probably a lot more accessible that if you did on a
14:35computer, you probably knew how to program it versus now, that's not true at all.
14:39so, and even I think in the early days of the web, like, you know when
14:42WordPress was still the hot thing?
14:43I mean, it is still the vast majority of the web is WordPress, right?
14:46Still, vast majority of websites.
14:49But I think early on, it was like, you could just kind of get in there and like,
14:52tinker on your own site in a way that now feels a lot more inaccessible, like
14:56now that we have, like, bigger build chains, right, and all these frameworks.
14:59It feels a little bit illegitimate to just, like, spin up a WordPress
15:03site to try to build an app.
15:04You're probably going to reach for React if you know what you're doing.
15:08I mean, you should just reach for, like, HTML and CSS, sure, like,
15:11but most of us reach for React.
15:13in a way that if you're just, like, a, you know, someone in your neighborhood
15:17trying to build something, like, set up a community newsletter or, like, help
15:20build some script for your local library.
15:23you probably don't know what tools to use or like how to use them well.
15:26You probably are like just using something like Airtable or Notion,
15:29which is great, but you don't really have the same agency and power as
15:32someone writing command line scripts.
15:34So, I have some sense that we had more of this earlier on in computing, and
15:38as it's gotten more complex, it's like we, maybe we're on like a little bit
15:41of a curve where it needs to come back down the other side of complexity, or
15:44we need to build tools that simplify it for people to be able to build their
15:48own software, but we're in some, what I call like the high modernism industrial
15:52phase, where everything's done in these like big centralized hubs and it's not
15:56distributed across everyone's tool set.
15:59Yeah.
15:59So just from the perspective of a software developer, I can think of so
16:04many use cases where I would love to build a little tool for myself, but with
16:09the stacks that we have available for the last 10 years or so, there's like,
16:14Just my mind is typically approaching it the same way as like how I would
16:18build a software product for a startup.
16:22And that is like way overkill.
16:24There's like so many layers of complexity that by now we're just
16:27used to, like there's like the hammer that we're used to using, that it
16:32sort of like kills the entire idea.
16:35In the initial phase where I don't even get to build it because
16:38I already know like, Oh, I've, but I know all the implications.
16:42I need to build this.
16:43I need to deploy that.
16:44And like, if that thing changes, then, this will ruin all my weekends to come.
16:49So we, we have like done so much innovation.
16:53That, was always adding more functionality, cooler stuff, but it always
16:58came at the price of complexity, just like layering on and like compounding.
17:04And I think where I see local-first enabling this age of the barefoot
17:09developer is by bringing down the, the complexity in a massive way that you can,
17:16with a much simpler technology stack build very interesting things that don't need to
17:22scale to Mark Zuckerberg Facebook scale.
17:25but if it works for your family and you build it when you want it, and
17:30then you don't really, it doesn't break constantly because you depend
17:34on all so many other external things.
17:37I think not just for, use cases that I can't think about, but just for, for
17:42my own personal context in a, my family stuff that I might as a Barefoot developer
17:48build for my friends and extended family, but also what other people in
17:52extended parts of the world can build.
17:54I think this is what's changing now that the complexity is coming massively.
18:00But there's another thing happening now that you've also, built in as
18:04sort of the second layer of your talk, which is AI is happening now.
18:09so it seems like that is also a fundamental aspect that's also ushering
18:14in a new era of end user programming.
AI
18:22Yeah, so this was kind of, like, the big claim I tried to make in the talk,
18:26which I do believe, but it's definitely a claim that, like, needs a lot of
18:29evidence and a lot of, like, questioning.
18:31But at the moment, I think I'm still pretty firmly in this camp, where
18:34I genuinely believe language models make a significant difference to end
18:39user programming being more possible.
18:41when language models first started getting popular, and, like, we realized they were
18:44really good at code assistance, like, They're questionably good at other things.
18:47I'm not going to say that they generate, like, useful articles for the web.
18:50I don't believe they do.
18:52But for code assistants, it's like, anyone who uses Copilot regularly, or
18:56Curso, or any of these other assistants, I think you would have to be crazy to
18:59claim that they are not, like, speeding you up, like, helping you debug things.
19:04I know a lot of senior developers are like, well, I could just do that.
19:06myself.
19:07And it's like, well, yes, you are a senior developer.
19:08you understand the bugs in the way that I do not.
19:11like, I've started to joke, I'm kind of a mediocre developer without
19:14language models, but with them, I'm, like, almost a full developer.
19:17I'm, like, actually, I can pretty much do anything you assign me to.
19:21Like, in the world of front end, like, a little bit of making, you know, back end
19:24calls, but, like, it just, it just knows, you know, I just ask what I want it to do.
19:29And it pretty much gives me working code.
19:30Sometimes I do have to go in and debug it or like, ask it to do revisions, but like,
19:35the amount it can do that I could not do on my own is really just astonishing.
19:38it's very much a sort of subjective, personal qualia.
19:43Everyone that I talk to, like, feels this way, especially people who aren't
19:47great programmers, like more experienced programmers are more skeptical, like,
19:50oh, this is causing more bugs, but I don't know, if you're more on the
19:53junior end, you just feel like you've just been given a superpower and you
19:56can like, make way more than you could.
19:59so this big claim is that like, not, I'm not saying all normal people, right?
20:03As I said in my talk, there are a bunch of normal people out in the world who just
20:07don't, they don't care about programming and we shouldn't force them to.
20:10Like, I think there was this moment where we were like, everyone
20:12needs to learn to code, right?
20:14Every nurse needs Every, like, accountant, every teacher,
20:17you all have to learn to code.
20:18And they were like, well, we don't want to learn to code, like,
20:20why are you making us do this?
20:21So I feel like we should just leave people alone who don't want to code.
20:24Like, let them do their other very important jobs in the world that
20:26have nothing to do with computers.
20:28but there's a group, and this is what I call the Barefoot Developer
20:31Group, who really do want more agency over their computers.
20:34They're, like, currently using Airtable and Notion and like
20:38spreadsheets and like doing really crazy, complex things with them.
20:41But they also hit the limits of these apps.
20:43Like, I feel like I have a lot of friends in this category who have a lot of
20:46software needs and the software doesn't meet their needs and they keep being like,
20:50well, how do I make it like do this thing?
20:51And I'm like, well, you can't, like this other company controls that software.
20:54You can't.
20:55add that feature onto it.
20:57but these people, if given access to a language model, and kind of taught
21:00how to prompt it in a way where they can clearly ask for what they want,
21:04it can write the code for them.
21:05It can build the app for them.
21:07If we, like, get the infrastructure right, it could set up some kind of
21:10local-first database, ideally, but some kind of database, put it on a
21:14URL, let, let people log in, store data somewhere, let, you know, figure
21:20out a way where we can have language models set up, the schema for them.
21:23It's like, It doesn't have to be super complex stuff, it might just be
21:26something like, Hey, help me organize a trip for 12 people for a week.
21:30Like, that involves a lot of logistics and ops and planning, or like, you know,
21:33help me plan meal prep and groceries.
21:35There's a thousand apps for this, but what if you could just prompt your
21:38own, tweak every single feature that you wanted, like make it work just the
21:41way that you want the thing to work.
21:43These are not complex situations, but tons of people have these basic
21:46needs and language models could easily get them to working local
21:50apps that they own and control.
21:52Right.
21:52That makes a lot of sense.
21:53And I think this kind of puts it nicely into two compounding steps.
21:58Step number one is even for more experienced engineers like myself, Like
22:03even for me, it would be too much to build all of like these ideas that I
22:08have in my mind, because I know like, okay, this is easy enough to think about,
22:13but to build, you need to wrestle with all of those layers of complexity that
22:17will just like drown you at some point.
22:19And this is where step one is local-first, simplifies everything to the core again,
22:24that it becomes feasible, but it's feasible, but you still need to have
22:29quite a bit of experience to build it.
22:31And now step number two is LLMs that just bring down the barrier to entry
22:36by so much, by having someone who knows what they want to build and
22:40having a little bit of an intuition, how computers work, et cetera, and how
22:44to put those things together, who are not afraid to get some autocomplete.
22:49Sure, I have no idea what it is, but let me try and then, like, iterate from there.
22:53And this is the second part where LLMs bring down the barrier to entry and now,
22:58like, make this possible on a wider scale.
23:00Did I get this correctly?
23:02Yeah, yeah, exactly.
23:03I think I should add on too that, I just, I showed in my talk some demos from both
23:07Vercel's V0 and TLdraw drawing interface.
23:11Because as much as I was saying, you know, of course you'll describe and text what
23:14you want, You can do that, but often it's sometimes hard, or there's an ambiguity.
23:18but with TLdraw, and with, uh, B0 from Vercel, you're drawing a visual interface.
23:24Like, in TLdraw, you can, like, draw boxes, right?
23:26And you can, like, point to a button and say, when I click this button,
23:28you know, increment this counter.
23:30And, like, when I click this button, start a timer for three minutes.
23:32And you can just sketch out what you want with these instructions.
23:36And then they have this make real button, so you select what you're drawing.
23:40You click make real and it makes the app for you.
23:42And like, it doesn't work a hundred percent of the time, but
23:45like 90 percent and these models are only going to get better.
23:48So we would hope if you get closer to a hundred percent, it just builds exactly
23:51what you told it to build and it works.
23:52And it's like, it's on a URL.
23:54It's like, it's a real app.
23:55You can click it, all the things work.
23:57it's hard to look at that and still be skeptical that we're not at some
24:01step change in end user programming.
24:04Definitely.
24:04and I think this is like this going beyond the medium of auto completing
24:09code, but that you have like the modality of like a visual modality where you
24:14can draw a napkin sketch and from that napkin sketch, you have like some working
24:20React code that you now like I feel like the next step in the evolution of
24:25putting together all of those systems.
24:27It would be something like TLdraw, make it real, but for your local-first
24:33data model that you basically describe like your, your use cases, or you
24:37could even use your, your visual sketches that you've made through
24:41TLdraw, feed it into an LLM and say like, Hey, can you suggest to me Data
24:47stuff that I'll probably need for this.
24:49And it might spit out some code or it might spit out like some,
24:53some other artifacts that you can now use to iterate from there.
24:56So I think that multimodality just brings down the barrier to
24:59entry even more, as well as making experienced people more productive.
25:04So now it really clicks how the, that answers the question of like, why now?
25:09Since I think the idea was compelling before as well.
25:13But with all of that complexity and, with all of the learning curve that needs to
25:18be done before, that wasn't feasible.
25:21So, uh, I love that.
25:23Like I had also cited in my essay, uh, an essay written by, well, I guess more
25:27of a short post written by Clay Shirky in I don't want to mess up the year.
25:32Was it 20 2004 or 2014?
25:34I want to bet 2014.
25:35called Situated Software, which was about which was the same
25:38claim as Barefoot Developers.
25:39Like, software should be situated in the local environment that where,
25:42like, it's the people that it serves, it should have been made there.
25:45He made this idea at a time where it was, like, completely infeasible.
25:49Just, like, No one could build sophisticated software, which
25:52didn't have the tooling, like we hadn't gotten this far.
25:56And, like, what would be the interface for normal people to build this program?
25:59It was one of those, like, wouldn't this be nice kind of concepts.
26:03And now it does feel like, yeah, we've reached this point where it's like, wow.
26:07The coming together of like better tooling, like reducing complexity,
26:10like better abstractions, plus language models trained on all those
26:14abstractions and all that tooling.
26:15It is like, Oh, this is possible.
26:18Yeah, that, that makes so much sense.
26:20I can't wait to see like how quickly that's going to unfold.
26:25This was also a big part of what we try to do with the conference is, not
26:30just get the, people who are already excited about local-first from, and who
26:35are trying to figure out how to build it in the best way, but also people
26:39who've maybe heard about local-first before, or haven't heard about it before,
26:44and that they get to understand what could be the possible impact of that.
26:49And I think this is where you've just knocked it out of the park
26:53with, at the end of the day, with your talk, where I think before.
26:57Your talk, everyone was already excited about like, Oh, this is going
27:01to make software development so much easier, brings down the level of
27:05entry for people to build local-first.
27:08And it also enables next generation user experience, like Linear, et cetera.
27:14And that's also why I initially got excited about local-first to build sort
27:19of like a really cutting edge, next generational products with Overtone.
27:23But I think you really expanded the horizon even further, what
27:28on a kind of societal level, local-first could have an impact for.
27:33So, do you have some theory of like, what are some, like milestones
27:38that you would like to see happen there as sort of success stories?
27:42Yeah, um, I talked about a bit at the end of my talk that we're
27:45missing a few bits of like tooling or infrastructure, I think, to make
27:48this work, because at the moment, what you can do easily with language
27:51models is prompt front end code, right?
27:54It's mostly what people are doing, like even a 4.
27:573.
27:575 Sonic came out, I think, a week ago, and it's really,
28:01really good at code generation.
28:02People are making crazy stuff, and I have this whole fat collection on Twitter
28:06every time someone makes something.
28:07I'm just, like, saving all this stuff as evidence of, like, here's where we're at.
28:11Here's the current state of things.
28:12But it's just making front end code, right?
28:14It's giving you React components, interactive, it
28:17looks cool, it looks capable.
28:18But it's not connected to a back end.
28:20Connecting it to a back end would be like a whole different thing.
28:23Um, user authentication and logging in would be a whole different thing.
28:27Like security, like multiplayer collaboration.
28:30Like, there's just, there's all this other stuff to have a real working product.
28:34Like, deployed to a real domain.
28:36Imagine if you're not a software developer, like, you would never figure
28:40out how to glue that stuff together.
28:41No matter how much you have, like, chat GPT helping you and, like, you
28:44asking it questions and trying to put together a working piece of software.
28:48You wouldn't even know those things exist, right?
28:49Like, no one knows what a database is if you don't work in software.
28:53so we're missing, all these other pieces of tooling.
28:56I think what I'm waiting to see is, like, I don't know, you know, I've kind
29:00of tried to put this idea out into the world, tried to make more people aware
29:03of like, hey, we should be trying to build things to serve these developers.
29:06and I know of two projects, Jazz and DXOS, who are both at local-first, Jess
29:11and, um, Anselm are hopefully building this kind of thing, which is like some
29:16sort of full stack local-first, like, framework for people to build within.
29:21I think if you could train a model on those kinds of things, where it's like,
29:25You're talking to a language model, but its whole goal is to get you to
29:28build a full stack local-first app.
29:30That would be the goal for me.
29:32That's like, oh, I want to come in, I want to be able to sketch, I want
29:35to be able to prompt things in it.
29:36and I want it to sort of be architected and trained in a way where it's
29:40acting like a product manager, like helping me move towards my final goal.
29:44Like, you know, it's It gets me to tell it the requirements and
29:47it gets me to tell it what I want.
29:49And then it's doing, it's making technical decisions for me, right?
29:52It's like, hey, I'm just going to figure out how to model this data.
29:55I'm going to figure out how to make this front end code.
29:57All you have to worry about is looking at the end result and telling me,
30:00yes, no, you know, what should I edit?
30:02What needs to change?
30:03And just looping.
30:04Like that, that's, that's what I'm waiting for someone to build, honestly.
30:08I agree.
30:08I think there's sort of the, this gap in going from A to B where like, A,
30:14where we're right now, where I think we have the conceptual right ideas,
30:20how things can be simpler, and a few pioneers such as the folk from linear.
30:27And a few other products who have already had those right ideas, but
30:31they're technically very savvy so that they could like build that new
30:36hammer, that new framework themselves so they can live in the future.
30:41And, then you have the, the other group, what you've described with like
30:45DxOS, Jazz, and there's many other technologies who are not primarily
30:50building it for their own apps.
30:51But to kind of build this for developers, so that the next Linear
30:56has a much easier time, can focus on the product and doesn't need to
30:59build off like the underlying tech.
31:01So that's coming along, and once that is there, then we're kind of
31:06halfway there, since at that point, now the AI also needs to pick this up.
31:11Since, I think this is why the AIs are so great at bringing down
31:16the barrier to entry for things like React development, et cetera.
31:20There's already a lot of training data out there, whereas for local-first,
31:25this is all like very little training data, all like very, very new.
31:30So I think once we have those ingredients and the AIs can also integrate that into
31:36their more encompassing, solution corpus, then I think we've, I guess like to, to
31:44a much more comprehensive degree enable a Barefoot developer, since I guess
31:48right now a Barefoot developer already lives in the future by, things like
31:54front end React programming, et cetera.
31:56That already works super well for them.
31:59And then they get sort of this glimmer of hope, Oh, a local-first
32:03is going to make everything simpler.
32:05But the, the fact of reality today is you either need to use a very
32:10Early technologies such as jazz, et cetera, and where you still need to
32:14be a bit more on the more expert y end, or you need to wait a little
32:18bit until all of that is AI ready.
32:22But I, I like the way how you think about that sort of like as
32:25a big next step function change.
32:28Yeah, I expect they might meet in the middle.
32:30Like what I think will happen is, like, people will build these kind of like
32:33full stack language model helpers, which are not local-first, of course, right?
32:37They will just build one that like uses cloud databases entirely.
32:40And it's like, all like not, doesn't work offline.
32:43and then the local-first tools will get more mature and maybe in a few
32:46years, like these come together in the middle so that you have.
32:49You know, something for barefoot developers that just has natural
32:52language inputs and visual inputs for them to define what they want.
32:56and the stack is, like, mature enough, right?
32:59We have, like, stable enough technologies that they get all the stuff around
33:02local-first, like, CRDTs, all the fancy stuff for free, just because we,
33:06like, have enough training data and we figured out the complexities of it.
33:10I don't want to put too many timelines on it, but I'm like, five years?
33:14Maybe less.
33:14I don't know.
33:15Some people think that we're all going to die from AGI in five years.
33:17So maybe just speed up timelines, like, but I think reasonably five years.
33:24, I think a very frequent philosophical question that one can entertain
33:28is like, my life as a programmer has certainly become a lot better
33:34over the past couple of months and years with things like Copilot and
33:38Cursor and, ChatGPT, et cetera.
33:41I can like take a screenshot of an error message and it gives me some useful clues.
33:47so that is.
33:48Definitely getting better, but is this just like a very nice time before, I
33:54don't have to do my, anyway, this is not a question to debate here, but
33:58it's certainly also, I'm not immune to, to those sort of thoughts as
34:01well, but I'm, I'm choosing to see the world as like glass half full.
34:06and, I'm a tool builder, so I'm excited for new tools that make me more productive
34:11and, make me more capable in doing stuff.
34:15Yeah.
34:16I mean, I was gonna say, if we, if we automate all the code,
34:19we'll all just become designers and product managers, you know?
34:21Like, we'll just, we'll just help.
34:24Help the AIs, like, write the code and we'll just be like,
34:26Hey, you know, focus on this.
34:28This is your priority.
34:29You know, this usability piece isn't working very well.
34:31I still think it would scratch the same itch that a lot of developers have
34:34around like building beautiful systems and like solving like logical puzzles.
34:38Cause it's still design.
34:39You're solving a lot of logical puzzles.
34:41I don't know.
34:42So maybe that's why I'm not as afraid of like the whole.
34:44Automation fears, but I also think they're ridiculous.
34:46Like we'll never get to a hundred percent code automation and it seems crazy.
Elicit
34:51Yeah, definitely.
34:52So I want to shift gears slightly, and not just look at AI as an enabling
34:59technology to make us more productive.
35:01But if we put ourselves into the shoes of a product builder,
35:05possibly of a tool builder, how.
35:08Can AI be a ingredient that we can put into possibly local-first powered apps?
35:16and so given that you've worked at Elicit, which is maybe you can briefly
35:20give a summary what Elicit is about and what you've done there, but after that,
35:25maybe we could explore a little bit of.
35:28maybe you have thoughts on how to best bring AI into products and how is that
35:34a challenge or an even better benefit to do it in a local-first context?
35:39yeah, I actually, this is funny, like, after I had written the talk and was
35:42talking to more people, I had that realization of, like, oh, language models
35:46and local-first go really well together.
35:48I think this is actually Jeffrey Litt, who's at Ink and Switch, that kind of
35:51got me onto realizing this, how they're, like, actually perfect for each other.
35:55but I'll back up a bit and talk about Elicit.
35:57So, yeah, I was the designer there for two years, It is a tool that helps
36:01scientists and researchers do this thing called systematic literature review,
36:05which is this frankly very long manual boring process that no human wants
36:08to be doing, but they're sort of like forced to do because they have to.
36:12where let's say they want to do a study on like, vitamin D
36:14deficiency or something like this.
36:16They have to read every single paper that's ever been done on
36:19like vitamin D deficiency studies.
36:21And like, what do we know?
36:22What's already been tested?
36:23What needs to be tested in the future?
36:26Just like read tens of thousands of papers and extract all this data from it.
36:29Like how many people did they study in each paper?
36:31And like, what were the results?
36:33, what was the effect size in the population?
36:35Like just all this stuff.
36:36And usually humans, Open up PDFs one by one and type this data into a spreadsheet.
36:41They're just like sitting there for, it takes six months usually,
36:44it takes a couple people six months to do one of these.
36:46And you have to do it for every like new drug release to market
36:49or any new medical device.
36:51So there's this whole consultancy whose whole job is to do manual data entry.
36:55and it turns out language models are quite good at extracting
36:58structured data from these PDFs.
36:59Or if you prompt them in the right way and you have Frankly, at times, quite
37:03sophisticated architectures to make them accurate, but you can build them, which
37:07is what we focused on at Elicit, is like, raising accuracy rates and making sure
37:10models got the right data out of papers.
37:13But you can get them to do it to over 95 percent accuracy, which is what humans
37:16roughly get out of doing this process.
37:19So you just speed up this thing, used to take six months, you can do it in
37:22a couple days, maybe a week, of you just going through and reviewing all
37:25the answers that the models extracted.
37:27So, yeah, working there for two years, I learned a lot about, both
37:31just like prompt techniques and architectures for making models accurate.
37:34It's actually quite hard, but, but good to know it can be done.
37:37That was like really useful to learn.
37:39it definitely made me very skeptical of most use cases of language
37:43models, I think, in that we found one that was really appropriate.
37:46It's like, okay, you There's data and a bunch of text.
37:49Get the data out of the text.
37:50That's like quite straightforward.
37:51But there's a lot of stuff people are trying to use them for where
37:54I'm like, is a language model the right hammer for this nail?
37:57Like, I don't know.
37:58You're trying to write marketing copy for your company.
38:01I don't know that you want the most generic, predictable text to
38:04really be the thing that you're like putting out into the world.
38:06Or like, okay, some people are like, yeah, I want to write 10, 000 SEO keyword
38:11stuffed articles to like get to the top of Google, but and everyone does
38:14that and then there's no point in like you, you doing that because you're not
38:16actually going to get any traffic from it.
38:18So, I'm strangely quite skeptical or like negative on a lot of uses
38:22of language models, but the data extraction, like summarization,
38:26like getting it to do very small structured things over text, I actually
38:30think they're really good at that.
38:31And code generation and debugging is actually one of those, right?
38:35Like, that's one of the things where like, okay, we've proven
38:37they're actually useful for this, so like, we should use them for this.
38:40This is like, they are shining here and like, ignore the areas where they're
38:43not shining, like all the other, like, everything turns into a chatbot kind
38:47of stuff, which we don't really need.
38:49yeah, so that's, that's the long version of like, that was, that
38:51was what I realized at Elicit.
38:53but the thing with local-first and language models that makes
38:56them go really well together.
38:58Language models perform better when you have lots of really specific data
39:01for them to run things over, right, to summarize or to extract data from.
39:05And if all the data is local on your machine already, and you're
39:09not having to, like, go up to the cloud, or it's not trapped in someone
39:11else's app to run a model over it, You can just run a model locally.
39:15You don't need to be making a call to OpenAI or to Anthropic,
39:18which gets really expensive.
39:20You could just be doing this all on your machine with no delay,
39:22which is like, why are local-first makes perfect sense if you want to
39:25actually be doing language model work.
39:27Yeah.
39:28So thank you so much for, for the background, on, Elicit.
39:30I was not as aware of like the entire, process that researchers
39:35need to go through and just hearing the word manual data entry.
39:39it gives me shivers.
39:40So that sounds like a well needed thing and whatever , makes
39:45research and truth easier.
39:47that is very welcome.
39:49also your insights in regards to where LMs are a good fit versus not to.
39:54I've coming to on a much smaller scale, but I'm coming to similar
39:58conclusions, for example, when I'm writing documentations for, for some
40:03technologies that I'm working on.
40:04And this is where I typically disable LLMs because like what they typically suggest
40:10to me is exactly not what I'm doing.
40:13I'm building a different thing that challenges the status quo
40:16for very particular reasons.
40:18So I found it actually, it increases my cognitive overhead of like trying to.
40:24like come up with a thought and like a very fuzzy process.
40:27And then like, it's basically constantly like slapping me in the face.
40:31Like, do you want to say this?
40:32No, exactly not.
40:34So, there's like use cases for it, where it's good and where it's not good.
40:38but, I think also that giving it more contextual information is exactly
40:43the, the key to make it feasible and maybe make it even so that I do
40:48want to have it enabled for docs.
40:49So if I imagine that I give it access to all of my source code.
40:53then it could actually draw, draw the right conclusions.
40:57So , this use case where you have your source code and you want to
41:01generate documentation, I think is a much simpler one from a technical
41:06perspective because everything is static.
41:08I, don't need , my source code, sure, maybe some of it, I don't
41:12want to have leaked, but a lot of it's going to be public.
41:15So privacy concerns are not as much of a concern.
41:18But where that is the context, if we're now talking about the health
41:22app, this is where my context is possibly very, very sensitive
41:27data or financial data, et cetera.
41:30So this is where the contextual data is even more important to
41:34drive good results for the AI, but it's so much more sensitive.
41:39And I think this is going to be a huge challenge and a huge question, how
41:44different AI systems will be built.
41:46And that's a key.
41:47topic that I'm interested in, this is where I think where
41:50we've seen with Apple's recent AI announcements, where they hijack the
41:55term AI to mean Apple intelligence.
41:57Well done.
42:00And now what Apple has announced at the latest WWDC is where they
42:06basically shared their AI strategy.
42:09and what I like about it is that most of the AI stuff is also
42:13happening locally on device.
42:15And I think the, the way how to do that is, an approach that
42:20hopefully more technologies follow.
42:22And I think this will be sort of like a bit of a dividing line, whether
42:26you're gonna do it locally or whether you're going to do it in a cloud.
42:29And I hope that more products, more technologies will enable
42:35all of that to happen locally.
42:37Since if I can keep my most sensitive data locally on the device, and if I
42:42can run the AI model locally, it's not just gonna give me the fastest results,
42:48but it's also, in my perspective, kind of like the only sane way
42:52how to respect the user's privacy.
42:55It was more of a coin flip to go with Google versus Apple before
43:00in terms of products, et cetera.
43:02But if Google's only way in the future is to drive everything into the cloud
43:07and do AI there, and Apple's is to do it locally, that's a very clear call for me.
43:13But I think that's a major question overall.
Apple Intelligence
43:20Yeah, this is something that I haven't seen yet come up as like a SaaS or
43:24a service of any kind, or I guess it'd be more of developer tooling.
43:27Like, there's plenty of, wherever it is, like, toolchains on top of the, all
43:30the foundation model APIs, and like, you know, analytics and, visibility
43:36and, like, tracking and all this stuff, like, coming up around, around
43:39doing language models and product.
43:40But I'm waiting for someone to just be like, hey, We help you run LLAMA locally
43:44on the user's device and then only when needed, like, when, like, as Apple said
43:48in their presentation, only when you need something that's more compute intensive
43:51do they send it up to a cloud server.
43:53Something that allows you to do hybrid, local, and uh, remote, so that at least
43:59ideally the user, I mean, this is probably more likely to happen in a B2B case, could
44:02say only do these kind of like, functions on this kind of data, uh, locally, maybe
44:07this is more sensitive data, maybe this is more sensitive stuff, but stuff that's
44:10maybe more complex or stuff over here, you can send to OpenAI if needed, or to
44:15a cloud, I mean, to Anthropic if needed.
44:17So I haven't seen that happen yet.
44:19I don't know what that is.
44:19That's like hybrid language model prompting, but that seems
44:22like a very obvious piece of infrastructure we could build in.
44:25I'm wondering, like, what will be the thing that wins the
44:28argument one way or another?
44:30one possible path could be, Oh, it gives you the best performance or that it needs
44:35to work offline in certain scenarios, whereas like, I think with local-first,
44:41we already see that the, the works offline case is kind of like a, Argument that
44:47is not as compelling for many or not as intuitive for many as you might think.
44:53but I think what I would hope will be the winning argument is privacy.
44:59But I'm saying that as a European, and I know that other people might, uh, not
45:04value privacy as much, but do you have thoughts on what will be like a big
45:09lever in terms of one way or another?
45:12Yeah, I mean, I also agree on the privacy bit, but I also know a lot of
45:15people who just, I don't know, doesn't, don't, they don't care, or it's just
45:18like, oh, this is just whatever.
45:19This is like my, you know, notes on my product development app.
45:22Why do I care, about privacy?
45:24But I think it's speed.
45:25Like, one of the biggest UX challenges of the list that we faced
45:28is just that loading times are Or just on a whole different level.
45:31It's just, it's, we're so used to quick, quick loads, right?
45:35At the most one, two seconds.
45:36And even then users are getting, you know, antsy and like, oh, this feels slow.
45:40This app isn't working.
45:41Sometimes you have a load time with a language model.
45:43If it's doing a complex call of like three minutes, like, What do
45:47you do with a user for 3 minutes?
45:49Like, there's only so many animations you can play on the screen.
45:52Like, there's only so many minigames you can have them
45:54play while this thing loads in.
45:56so having models locally on your machine that could run language model functions
46:00faster would be a huge UX benefit.
46:03A lot of the time we're just waiting for the OpenAI API to
46:05reply, or like, Maybe we're doing multiple, you know, a hundred calls.
46:09So every single time there's a couple seconds of delay on each one, this is just
46:13adding up into a huge, huge time sink.
46:15so that would be a big benefit, but I of course agree on the privacy front,
46:19especially for companies will care about this, right, for proprietary data,
46:23but yeah, individual uses for finance to health and anything where you just
46:25don't want it going off your machine.
46:28Yeah, so this is a topic I'm highly interested in, want to
46:31explore also in future episodes.
46:34I think luckily there's so much momentum and so much good stuff
46:37happening on the AI capability side where models are getting more powerful,
46:43but also more efficient that makes it possible to run them locally.
46:46I think Google announced or released, uh, Recently, like a Google, uh,
46:51Google Chrome version, I think a Canary version where you have, I think,
46:56Gemini Nano working actually already locally where it can say window.
47:01ai and run some little prompts.
47:04So this shows some first, building blocks in that direction.
47:09But, I'm more interested in exploring and figuring out a path.
47:14How can we.
47:16Figure out the contextual data side, since I think this is where I'm less
47:21concerned about a AI model that runs locally, temporarily having, some
47:28contextual information about me that it has like flushed again, like in a few
47:32seconds, what I'm more interested in is exploring all of that contextual data
47:38that is highly personalized, that might be text messages I'm sending to my close
47:43friends or to my family, that might be health information, that might be my
47:47emails, that might be my personal notes I'm taking after a nightmare, or whatever.
47:53Like, all of that stuff needs to be accessible to the AI in a local way.
47:59And that is much easier to do if, some entity, for example, Apple
48:04controls the overall ecosystem and can do it in a way that is
48:08secure, privacy respecting and fast.
48:12But where we are all building things for, for the web, this is
48:16where our playing field is much more constrained to the browser.
48:19So one possible path That I could imagine where this is going is
48:24that the browser takes even more responsibilities of an operating system
48:29and where a lot of my contextual data lives in the browser, which raises
48:35the stakes and the risks even further.
48:37That now like some cross site scripting could access even more personal data.
48:42Since right now, with the stuff that we have really saved in the
48:46browser is like close to nothing.
48:49This is actually one of the problems we tried to solve with local-first
48:53that Right now we treat the web browser like it's not capable to do
48:57anything, but we need to flip that.
48:58We need to store a lot in it to make that happen, which brings
49:02up a lot of privacy questions.
49:03So lots of interesting questions to explore there.
49:08Well, okay, wait, I have a good, a good dumb question for you as
49:11like a non backend person, like a non, like, databasey person.
49:14Could you just make either an Electron app or web app that just accesses,
49:18like, a bunch of local files?
49:19Like, let's say, like, you've got 10, 000 local markdown files
49:22that, like, your personal notes, and a lot of them very sensitive.
49:24Maybe you're, like, journaling or nightmares or whatever's in there.
49:27Is there a way for some web app to just access those without it being uh,
49:31at risk of like cross site scripting or some other attack like this.
49:35So, I mean, there's always risk and there's always like the figuring out the
49:40right balance between making something possible, making something convenient and
49:44keeping it secure and privacy respecting.
49:47So I think one capability that browsers already offer that could enable
49:53that would be Chrome extensions.
49:55But this is also, I think in a parallel universe, Chrome extensions
49:59would be even more common.
50:01and we'd use them maybe even more, maybe in a parallel universe,
50:06Electron wouldn't have taken off as much as it did and Chrome extensions
50:10instead would have been that medium.
50:13So, Chrome extensions could, or browser extensions, generally,
50:16could be a bridge towards local data, and I think that will be a, a
50:21mechanism that might be used for that.
50:24I'm actually building a Chrome extension over the last couple
50:28of weeks for LiveStore, the staff tool that I'm building.
50:31And it's, really complex to build.
50:34And one of the big reasons why it's complex to build is because the
50:37browsers are already very intentional about trying to minimize the,
50:43the sort of like security risks.
50:45And I think this will be even more important.
50:48And I think we need to, strike like an interest, find a nice balance
50:52where it's secure, but still gives you the capabilities and in
50:58a way that a end user is able to make the right decision for them.
51:03And so I think, yeah, that's going to be interesting balance to strike.
51:08Okay.
51:08Okay.
51:09Okay.
51:09That gives me more hope.
51:10Cause yeah, I'm in the phase of experimenting with, um, you
51:13know, Obsidian, local-first, like note taking tools.
51:16Yeah.
51:16Right.
51:16So like all my All my notes are in there.
51:19I was in something else before that was all cloud based and
51:21actually going to local-first.
51:22I was already on the edge of being like, Oh, personal notes should really be, Oh,
51:25you should own that on your own machine.
51:27That should be marked down.
51:28That shouldn't be stored in someone else's cloud server.
51:30so went through the process of moving them all into this
51:32like local-first Obsidian app.
51:34and then now exploring building plugins to like build on top of that,
51:37like integrate language models, like do more interesting things with this
51:40like huge database of notes I have.
51:42but it made me realize all I needed was some sort of like, Interface or
51:45runtime or primitives in place, which is what the browser gives you, or what
51:48something like Obsidian gives you.
51:50And then people being able to build things on top of that.
51:52That's when you get into the more interesting stuff.
51:54But making sure that base layer of like somewhere to store data, some security
51:58and making sure it's local-first.
52:00Like once that's in place, people can build much more capable things.
Local-first in the tools for thought space
52:03So maybe this is a good time to shift gears again a little bit.
52:07you've been mentioning Obsidian and in the past, and I think still
52:11today, you're a very active person in the tools for thought space and
52:16Obsidian, obviously being one of the prominent tools in that space.
52:20Do you have thoughts on how local-first could be an interesting
52:25lever to make those experiences even better, both in terms of like end
52:29user apps that you're using, but also in terms of you as a builder?
52:34Yeah, yeah, I mean, I kind of had this like, I've been so dumb moment, I guess,
52:38with the, with the tools for thought note taking thing, or realization, I
52:41should say, like around, around the time of the local-first conference, where
52:44for years I had been using, I was like early to roam research, and I moved to
52:48this app called Tana, which is like, Gorgeously designed, like, totally acts
52:51like a really flexible database, and they have a really beautiful outliner, things
52:55where everything has types and schemas, and it's just the sort of thing I love.
52:58Like, types and schemas everywhere, super structured data.
53:01and their product is great, but it's not local-first.
53:03I don't think it's ever going to be.
53:04It's nowhere near their roadmap.
53:05And I just had this moment of realizing, like, After, after going to the conference
53:09and like hearing all the arguments against it, I mean, for it and against it.
53:14And I was like, Oh, I, even if there's a UX cost to switch into something that's
53:18local-first, I like absolutely have to.
53:19This is like crazy that I've been using something that doesn't work on airplanes.
53:23That is my note taking database.
53:24It's just like nuts.
53:25Doesn't work on that too, but it's wild.
53:27Well, you just don't think about, you just don't think during airplanes.
53:32No, no, I know, I know, because you kind of go, oh that's just, you know,
53:37all software doesn't work offline, of course, this is just the way of the
53:40world, like I just have to accept this reality, it was like my mindset before,
53:45and then had this switch of like, oh no, like that's totally unacceptable,
53:48I absolutely cannot use, like, Software that doesn't work online anymore.
53:52That's just like nuts.
53:53even Figma is sometimes on the edge of it.
53:55It doesn't always work like perfectly offline.
53:57If you're trying to finish like a huge design presentation on the flight on the
54:01way over to your job, it's like, this needs to, this needs to work, you guys.
54:04You can't have this not work when I go offline.
54:07so anyway, I made the big switch to Obsidian.
54:09It was like a fair amount of work.
54:11Something only someone who like really cares a lot about.
54:14notes and structured notes and like knowledge bases, I guess would enjoy
54:17doing it, but it was worth it for me.
54:19and it opened up my mind to what was possible now that I had my
54:23whole giant notes database local.
54:26And now I could, and as I said, they have this plugin ecosystem
54:29where anyone can build plugins.
54:30It's all in JavaScript on top of it.
54:32And I was like, oh, wow, I can extend this now.
54:35This is my environment.
54:36Like, This is not just my data.
54:38I now have control over the functionality of this thing.
54:40This is totally malleable software.
54:42This is end user programming.
54:43Like, I'm going to build my own spaced repetition language model
54:47like crazy, Zettelkasten reviewer system on top of this thing.
54:50Um, but no one else, I don't, well, other people might want it.
54:54We'll see if I get them to work properly.
54:55But, um, It just, it just was like, oh, so much more is possible in
55:00this really exciting, empowering way where I went, oh, I own this.
55:05Like I fully have control of this in a way that I didn't with the previous tools.
55:09I was always checking the change log.
55:11What have they just released?
55:12Like, are they going to prioritize my feature?
55:15Are they going to make the changes I want?
55:16I would often write crazy CSS stuff to hack the interface to
55:20make it the way I wanted, right?
55:21Just removing elements, moving elements, changing the, the size and
55:25structure of things for my preferences.
55:27And again, not, most people do not do this, but I am someone
55:31that wants it to work and feel the way I want it to work and feel.
55:34so it was very liberating, and that made me realize like, oh, local-first
55:36software is actually much more about the user having more agency
55:40and control over the software.
55:41They can like write their own hacks around it in a way that's just not
55:44possible with cloud based apps.
55:46Yeah.
55:47And I think this is another way to think about the, the affordances that enable
55:52the Barefoot developer movement, is that also for the experienced folks who
55:59build, much more sophisticated products, they have now much more capacity that
56:06they don't need to put into running massive Kubernetes backend systems.
56:12if they want to go a little bit more ambitious about the products
56:15they're building, they could now put those resources, that capacity
56:19into facilitating more end user programming inside of that software.
56:24I think unfortunately, it's like more the exception, than the norm that software
56:29facilitates that, because it is quite difficult to find the, what is the, the
56:34right interface, the right modalities, If there's a plugin system or those
56:39sorts of things, you need to be very intentionable of like, how far do we go?
56:43How flexible do we want to make this?
56:46It was like, if you want to go even more flexibility, you might as well
56:50just like throw up your hands and say, okay, you built this as a web
56:53app and we only give you an SDK.
56:55and so I think there's an interesting spectrum there.
56:58And, I think.
56:59Building things local-first can free up capacity that can
57:03be reinvested into making more software end user programmable.
57:08So I love those, um, those use cases and like your recent success stories
57:13that you found with, sort of the local-first mindset, bringing that
57:16into the tools for thought space.
57:20Is there, any other thing in regards to local-first where you wish or you hope
57:26that local-first enables a certain thing.
57:29what is like on your local-first wishlist?
Maggie's local-first wishlist
57:32Ooh, I mean, I definitely want the quick spin up an app.
57:36I mean, I know this is like, we mentioned like things like Jazz and DxOS are trying
57:39to do this, just develop a tooling that makes building a local-first app easy.
57:43Does not exist.
57:44I tried.
57:44I tried to build a local-first app a couple of times.
57:47And it was just that the, the developer experience is not quite there yet.
57:52So I think there's a lot to do around DX and UX of just people being
57:55able to build these kind of apps.
57:56in terms of things they enable, I don't know if they have that many more.
57:59I mean, I certainly have specific examples where I'm like, there's lots of personal
58:04things that I would want to build my own little apps for and I just want easy ways
58:08to do that and that's like I mentioned things like, I always want to do trips
58:11with people like, you know, like groups of like a dozen or even more but it's so hard
58:15to just do all these small things in the middle that like software so far doesn't
58:19enable in these weird ways like Find out when everyone's free during the same week
58:22in an entire year and then figure out all the flights and all the like finances
58:26and the cooking and find like an airbnb somewhere that would fit everyone You It's
58:30just like a big ops and logistics problem.
58:32And there's tons of these examples in everyone's personal lives.
58:35it's the kind of thing that like, if it was local-first, who knows
58:37if you're going to have like phone signal out in the middle of wherever
58:40you're going, and you're still going to want to have access to all your
58:42like timetables and finance sheets and who's cooking dinner that night.
58:46that's just the kind of smaller examples that I think I'd, I'd like pull on is
58:49there's always those for personal stuff.
58:52So let me say what, once we are reaching that point where it is super easy for
58:58front end developers to build local-first, home cooked software, I think your close
59:04friends can be very happy to and very much looking forward to be traded to
59:09some locally cooked software from you.
59:12Yeah, I will host a local-first software retreat if we ever
59:15manage to get those apps working.
59:17If you could just make that easier, I'd just be like, great, we're just getting
59:20whole groups of people together to do these weird camping weeks where we all
59:23just build home cooking software together.
59:25I think that's a, that's a nice goal to aspire to.
59:28And luckily there's many, many smart folks like some of the ones that you've
59:32mentioned who are working towards that.
59:34It's just, yeah, to, to absorb as much complexity as possible and to build it in
59:40a way that developer experience is nice and where it's not a leaky abstraction.
59:44That is quite the undertaking and takes a little bit of time,
59:47but I think it's on, on its way.
59:49Maybe as a last question.
59:51Given that you've come to Berlin to the local-first conference and there
59:54were so many interesting people there, I'm wondering whether besides kind of
59:59opening the eyes for you, in regards to local-first software and not
1:00:04local-first software and ruining some non local-first software for you, where
1:00:08there's some other takeaways, some other insights from conversations with people?
Maggie's takeaways from Local- First Conference
1:00:13I was impressed at how much work had been done.
1:00:15I mean, we had a few people speak who had been part of like the offline
1:00:18first movement before local-first got coined as a term, who said
1:00:21like, this has been around since, I want to forget the earliest year,
1:00:23what, 2008, 2009 or something, people started trying to do this.
1:00:27I was impressed by how much like previous art there was, but also
1:00:31how it hadn't progressed that much.
1:00:33Like maybe other things became popular in the tech space at the time, or it
1:00:36didn't have this same like cultural energy behind it that it kind of does now.
1:00:40But it was both like, wow, this has been going on for ages, and we haven't
1:00:43actually gotten to a place where it's, like, standardized or easy to do yet,
1:00:46But then all the people who presented at the conference, it made me get this
1:00:49sense of like, Oh, things are picking up.
1:00:51People are working things out.
1:00:53Like a bunch of these like wonderfully smart people have
1:00:56solved a bunch of complex problems over the last couple of years.
1:00:58Like, great.
1:00:59We are like hitting inflection points, you know, CRDTs and like Automerge
1:01:02and things like this are like actually making a huge difference.
1:01:05so I think I was just kind of blown away by how much sophisticated, hard technical
1:01:10work had already been invested into this.
1:01:13philosophy or dream, that made me go, Oh, this has to happen now.
1:01:16Like this has to, this has to pan out.
1:01:18Like we've hit the apex, we're over the hump.
1:01:21Yeah, this was certainly the goal with the conference to just
1:01:24bring together all the people.
1:01:26There's so much.
1:01:27Momentum already happening, but a lot of it is like mostly felt on a given
1:01:34day on someone's solitary desk and like they're working on something and
1:01:39think, Oh my gosh, this is so cool, but like, does anyone else care?
1:01:43And then bring all of those people together.
1:01:45The momentum compounds, and then you go even further and show like how this
1:01:50can have like a massive global impact.
1:01:53this is sweet.
1:01:54We certainly met all of those goals and exceeded them for ourselves.
1:01:57And thank you so much for contributing in such a meaningful way to, to that event.
1:02:02Yeah, no, I loved it.
1:02:03And I'll also add on that I think I was also impressed by, everyone in this
1:02:06community is like, maybe, maybe by nature of being at a conference like this, which
1:02:10is trying to say, let's build software differently, like, let's do a radical
1:02:14change to the way software works, was, you know, Then the kind of person who
1:02:18was also thinking very creatively out of the box, like out of the norm about
1:02:22how we should build software, what software is, like who builds software.
1:02:26it was a, it's a very like holistic, I think is the word I want to use,
1:02:29approach to understanding what.
1:02:32Software and programming is, which is what I always love at the right conferences.
1:02:35It's like, okay, we are not just showing each other like how
1:02:37to do API calls with some new framework, like React on the screen.
1:02:41Like, please God, no, not anymore.
1:02:42But if someone could please talk about like how this fits into like developer
1:02:46culture or wider culture, I felt like there was a lot of that at the
1:02:49conference that I really appreciated.
1:02:51Yeah, that's what I think makes it such an inclusive and wide space, since at the
1:02:58end of the day, the, also the local-first essay was not very prescriptive in terms
1:03:04of like, you ought to use CRDTs, but laid out those ideals of like, of things
1:03:11that I think most people can get behind.
1:03:14and some might see it as like a nice to have bonus and some others say
1:03:18like, Absolutely, I won't touch any software that doesn't respect all
1:03:22of those ideals, but I think this, kind of spans a very wide open tent.
1:03:27Yeah, I feel like it's sort of.
1:03:29Like the older people who have been in software a while
1:03:32sort of already knew this.
1:03:32They're like, yeah, you don't trust random companies with your data.
1:03:35Like we've seen enough of them die.
1:03:37Like they're very, like, I keep everything locally.
1:03:39I make it all myself.
1:03:40And then I feel like, you know, younger people, let's say people like born after
1:03:45like 1985 or something, you know, we just, we Didn't live through that, that
1:03:49period of everything dying off as much.
1:03:51And so a little bit more naive, a little bit more like, yeah, of course, all my
1:03:54data lives in the cloud at some random person's server, of course I don't own
1:03:58it, of course I don't have the ability to edit my apps, the sort of, blinkered
1:04:02by what we think is possible and what we think we're allowed to do in software.
1:04:05And this is kind of like unblinkering people being like, okay, you've been
1:04:08living in this paradigm, but this is not the way things have to be.
1:04:13We could change this.
1:04:14This is just like how things unfolded because of market like forces.
1:04:18But.
1:04:19What if, what if you actually had control over your software?
1:04:21Like crazy idea.
Outro
1:04:23I love it.
1:04:24Maggie, thank you so much for this wonderful conversation.
1:04:27Thank you so much again for contributing in such a great way
1:04:31to the conference, coining a whole new term and inspiring many, many
1:04:35developers and barefoot developers, soon to be barefoot developers.
1:04:40So thank you so much for taking the time today.
1:04:42Yeah, I really loved it.
1:04:43Thanks so much for having me chat.
1:04:45Thank you for listening to the local-first FM podcast.
1:04:48If you've enjoyed this episode and haven't done so already, please subscribe and
1:04:51leave a review wherever you're listening.
1:04:53Please also share this episode with others.
1:04:55Spreading the word about the podcast is a great way to
1:04:58support it and to keep it going.
1:05:00A special thanks again to Rocicorp and Expo for supporting this podcast.
1:05:04See you next time.