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