0:18:22 Yeah, so this was kind of, like, the
big claim I tried to make in the talk,
0:18:26 which I do believe, but it's definitely
a claim that, like, needs a lot of
0:18:29 evidence and a lot of, like, questioning.
0:18:31 But at the moment, I think I'm still
pretty firmly in this camp, where
0:18:34 I genuinely believe language models
make a significant difference to end
0:18:39 user programming being more possible.
0:18:41 when language models first started getting
popular, and, like, we realized they were
0:18:44 really good at code assistance, like,
They're questionably good at other things.
0:18:47 I'm not going to say that they generate,
like, useful articles for the web.
0:18:50 I don't believe they do.
0:18:52 But for code assistants, it's like,
anyone who uses Copilot regularly, or
0:18:56 Curso, or any of these other assistants,
I think you would have to be crazy to
0:18:59 claim that they are not, like, speeding
you up, like, helping you debug things.
0:19:04 I know a lot of senior developers
are like, well, I could just do that.
0:19:06 myself.
0:19:07 And it's like, well, yes,
you are a senior developer.
0:19:08 you understand the bugs
in the way that I do not.
0:19:11 like, I've started to joke, I'm
kind of a mediocre developer without
0:19:14 language models, but with them,
I'm, like, almost a full developer.
0:19:17 I'm, like, actually, I can pretty
much do anything you assign me to.
0:19:21 Like, in the world of front end, like, a
little bit of making, you know, back end
0:19:24 calls, but, like, it just, it just knows,
you know, I just ask what I want it to do.
0:19:29 And it pretty much gives me working code.
0:19:30 Sometimes I do have to go in and debug it
or like, ask it to do revisions, but like,
0:19:35 the amount it can do that I could not
do on my own is really just astonishing.
0:19:38 it's very much a sort of
subjective, personal qualia.
0:19:43 Everyone that I talk to, like, feels
this way, especially people who aren't
0:19:47 great programmers, like more experienced
programmers are more skeptical, like,
0:19:50 oh, this is causing more bugs, but
I don't know, if you're more on the
0:19:53 junior end, you just feel like you've
just been given a superpower and you
0:19:56 can like, make way more than you could.
0:19:59 so this big claim is that like, not,
I'm not saying all normal people, right?
0:20:03 As I said in my talk, there are a bunch
of normal people out in the world who just
0:20:07 don't, they don't care about programming
and we shouldn't force them to.
0:20:10 Like, I think there was this
moment where we were like, everyone
0:20:12 needs to learn to code, right?
0:20:14 Every nurse needs Every, like,
accountant, every teacher,
0:20:17 you all have to learn to code.
0:20:18 And they were like, well, we
don't want to learn to code, like,
0:20:20 why are you making us do this?
0:20:21 So I feel like we should just leave
people alone who don't want to code.
0:20:24 Like, let them do their other very
important jobs in the world that
0:20:26 have nothing to do with computers.
0:20:28 but there's a group, and this is
what I call the Barefoot Developer
0:20:31 Group, who really do want more
agency over their computers.
0:20:34 They're, like, currently using
Airtable and Notion and like
0:20:38 spreadsheets and like doing really
crazy, complex things with them.
0:20:41 But they also hit the
limits of these apps.
0:20:43 Like, I feel like I have a lot of friends
in this category who have a lot of
0:20:46 software needs and the software doesn't
meet their needs and they keep being like,
0:20:50 well, how do I make it like do this thing?
0:20:51 And I'm like, well, you can't, like this
other company controls that software.
0:20:54 You can't.
0:20:55 add that feature onto it.
0:20:57 but these people, if given access to
a language model, and kind of taught
0:21:00 how to prompt it in a way where they
can clearly ask for what they want,
0:21:04 it can write the code for them.
0:21:05 It can build the app for them.
0:21:07 If we, like, get the infrastructure
right, it could set up some kind of
0:21:10 local-first database, ideally, but
some kind of database, put it on a
0:21:14 URL, let, let people log in, store
data somewhere, let, you know, figure
0:21:20 out a way where we can have language
models set up, the schema for them.
0:21:23 It's like, It doesn't have to be
super complex stuff, it might just be
0:21:26 something like, Hey, help me organize
a trip for 12 people for a week.
0:21:30 Like, that involves a lot of logistics
and ops and planning, or like, you know,
0:21:33 help me plan meal prep and groceries.
0:21:35 There's a thousand apps for this, but
what if you could just prompt your
0:21:38 own, tweak every single feature that
you wanted, like make it work just the
0:21:41 way that you want the thing to work.
0:21:43 These are not complex situations,
but tons of people have these basic
0:21:46 needs and language models could
easily get them to working local
0:21:50 apps that they own and control.
0:21:52 Right.
0:21:52 That makes a lot of sense.
0:21:53 And I think this kind of puts it
nicely into two compounding steps.
0:21:58 Step number one is even for more
experienced engineers like myself, Like
0:22:03 even for me, it would be too much to
build all of like these ideas that I
0:22:08 have in my mind, because I know like,
okay, this is easy enough to think about,
0:22:13 but to build, you need to wrestle with
all of those layers of complexity that
0:22:17 will just like drown you at some point.
0:22:19 And this is where step one is local-first,
simplifies everything to the core again,
0:22:24 that it becomes feasible, but it's
feasible, but you still need to have
0:22:29 quite a bit of experience to build it.
0:22:31 And now step number two is LLMs that
just bring down the barrier to entry
0:22:36 by so much, by having someone who
knows what they want to build and
0:22:40 having a little bit of an intuition,
how computers work, et cetera, and how
0:22:44 to put those things together, who are
not afraid to get some autocomplete.
0:22:49 Sure, I have no idea what it is, but let
me try and then, like, iterate from there.
0:22:53 And this is the second part where LLMs
bring down the barrier to entry and now,
0:22:58 like, make this possible on a wider scale.
0:23:00 Did I get this correctly?
0:23:02 Yeah, yeah, exactly.
0:23:03 I think I should add on too that, I just,
I showed in my talk some demos from both
0:23:07 Vercel's V0 and TLdraw drawing interface.
0:23:11 Because as much as I was saying, you know,
of course you'll describe and text what
0:23:14 you want, You can do that, but often it's
sometimes hard, or there's an ambiguity.
0:23:18 but with TLdraw, and with, uh, B0 from
Vercel, you're drawing a visual interface.
0:23:24 Like, in TLdraw, you can,
like, draw boxes, right?
0:23:26 And you can, like, point to a button
and say, when I click this button,
0:23:28 you know, increment this counter.
0:23:30 And, like, when I click this button,
start a timer for three minutes.
0:23:32 And you can just sketch out what
you want with these instructions.
0:23:36 And then they have this make real button,
so you select what you're drawing.
0:23:40 You click make real and
it makes the app for you.
0:23:42 And like, it doesn't work a
hundred percent of the time, but
0:23:45 like 90 percent and these models
are only going to get better.
0:23:48 So we would hope if you get closer to a
hundred percent, it just builds exactly
0:23:51 what you told it to build and it works.
0:23:52 And it's like, it's on a URL.
0:23:54 It's like, it's a real app.
0:23:55 You can click it, all the things work.
0:23:57 it's hard to look at that and still
be skeptical that we're not at some
0:24:01 step change in end user programming.
0:24:04 Definitely.
0:24:04 and I think this is like this going
beyond the medium of auto completing
0:24:09 code, but that you have like the modality
of like a visual modality where you
0:24:14 can draw a napkin sketch and from that
napkin sketch, you have like some working
0:24:20 React code that you now like I feel
like the next step in the evolution of
0:24:25 putting together all of those systems.
0:24:27 It would be something like TLdraw,
make it real, but for your local-first
0:24:33 data model that you basically describe
like your, your use cases, or you
0:24:37 could even use your, your visual
sketches that you've made through
0:24:41 TLdraw, feed it into an LLM and say
like, Hey, can you suggest to me Data
0:24:47 stuff that I'll probably need for this.
0:24:49 And it might spit out some code
or it might spit out like some,
0:24:53 some other artifacts that you can
now use to iterate from there.
0:24:56 So I think that multimodality
just brings down the barrier to
0:24:59 entry even more, as well as making
experienced people more productive.
0:25:04 So now it really clicks how the, that
answers the question of like, why now?
0:25:09 Since I think the idea was
compelling before as well.
0:25:13 But with all of that complexity and, with
all of the learning curve that needs to
0:25:18 be done before, that wasn't feasible.
0:25:21 So, uh, I love that.
0:25:23 Like I had also cited in my essay, uh,
an essay written by, well, I guess more
0:25:27 of a short post written by Clay Shirky
in I don't want to mess up the year.
0:25:32 Was it 20 2004 or 2014?
0:25:34 I want to bet 2014.
0:25:35 called Situated Software, which
was about which was the same
0:25:38 claim as Barefoot Developers.
0:25:39 Like, software should be situated
in the local environment that where,
0:25:42 like, it's the people that it serves,
it should have been made there.
0:25:45 He made this idea at a time where
it was, like, completely infeasible.
0:25:49 Just, like, No one could build
sophisticated software, which
0:25:52 didn't have the tooling, like
we hadn't gotten this far.
0:25:56 And, like, what would be the interface
for normal people to build this program?
0:25:59 It was one of those, like, wouldn't
this be nice kind of concepts.
0:26:03 And now it does feel like, yeah, we've
reached this point where it's like, wow.
0:26:07 The coming together of like better
tooling, like reducing complexity,
0:26:10 like better abstractions, plus
language models trained on all those
0:26:14 abstractions and all that tooling.
0:26:15 It is like, Oh, this is possible.
0:26:18 Yeah, that, that makes so much sense.
0:26:20 I can't wait to see like how
quickly that's going to unfold.
0:26:25 This was also a big part of what we
try to do with the conference is, not
0:26:30 just get the, people who are already
excited about local-first from, and who
0:26:35 are trying to figure out how to build
it in the best way, but also people
0:26:39 who've maybe heard about local-first
before, or haven't heard about it before,
0:26:44 and that they get to understand what
could be the possible impact of that.
0:26:49 And I think this is where you've
just knocked it out of the park
0:26:53 with, at the end of the day, with
your talk, where I think before.
0:26:57 Your talk, everyone was already
excited about like, Oh, this is going
0:27:01 to make software development so much
easier, brings down the level of
0:27:05 entry for people to build local-first.
0:27:08 And it also enables next generation
user experience, like Linear, et cetera.
0:27:14 And that's also why I initially got
excited about local-first to build sort
0:27:19 of like a really cutting edge, next
generational products with Overtone.
0:27:23 But I think you really expanded
the horizon even further, what
0:27:28 on a kind of societal level,
local-first could have an impact for.
0:27:33 So, do you have some theory of
like, what are some, like milestones
0:27:38 that you would like to see happen
there as sort of success stories?
0:27:42 Yeah, um, I talked about a bit
at the end of my talk that we're
0:27:45 missing a few bits of like tooling
or infrastructure, I think, to make
0:27:48 this work, because at the moment,
what you can do easily with language
0:27:51 models is prompt front end code, right?
0:27:54 It's mostly what people
are doing, like even a 4.
0:27:57 3.
0:27:57 5 Sonic came out, I think,
a week ago, and it's really,
0:28:01 really good at code generation.
0:28:02 People are making crazy stuff, and I
have this whole fat collection on Twitter
0:28:06 every time someone makes something.
0:28:07 I'm just, like, saving all this stuff as
evidence of, like, here's where we're at.
0:28:11 Here's the current state of things.
0:28:12 But it's just making
front end code, right?
0:28:14 It's giving you React
components, interactive, it
0:28:17 looks cool, it looks capable.
0:28:18 But it's not connected to a back end.
0:28:20 Connecting it to a back end would
be like a whole different thing.
0:28:23 Um, user authentication and logging
in would be a whole different thing.
0:28:27 Like security, like
multiplayer collaboration.
0:28:30 Like, there's just, there's all this other
stuff to have a real working product.
0:28:34 Like, deployed to a real domain.
0:28:36 Imagine if you're not a software
developer, like, you would never figure
0:28:40 out how to glue that stuff together.
0:28:41 No matter how much you have, like,
chat GPT helping you and, like, you
0:28:44 asking it questions and trying to put
together a working piece of software.
0:28:48 You wouldn't even know
those things exist, right?
0:28:49 Like, no one knows what a database
is if you don't work in software.
0:28:53 so we're missing, all these
other pieces of tooling.
0:28:56 I think what I'm waiting to see is,
like, I don't know, you know, I've kind
0:29:00 of tried to put this idea out into the
world, tried to make more people aware
0:29:03 of like, hey, we should be trying to
build things to serve these developers.
0:29:06 and I know of two projects, Jazz and
DXOS, who are both at local-first, Jess
0:29:11 and, um, Anselm are hopefully building
this kind of thing, which is like some
0:29:16 sort of full stack local-first, like,
framework for people to build within.
0:29:21 I think if you could train a model on
those kinds of things, where it's like,
0:29:25 You're talking to a language model,
but its whole goal is to get you to
0:29:28 build a full stack local-first app.
0:29:30 That would be the goal for me.
0:29:32 That's like, oh, I want to come in,
I want to be able to sketch, I want
0:29:35 to be able to prompt things in it.
0:29:36 and I want it to sort of be architected
and trained in a way where it's
0:29:40 acting like a product manager, like
helping me move towards my final goal.
0:29:44 Like, you know, it's It gets me
to tell it the requirements and
0:29:47 it gets me to tell it what I want.
0:29:49 And then it's doing, it's making
technical decisions for me, right?
0:29:52 It's like, hey, I'm just going to
figure out how to model this data.
0:29:55 I'm going to figure out how
to make this front end code.
0:29:57 All you have to worry about is looking
at the end result and telling me,
0:30:00 yes, no, you know, what should I edit?
0:30:02 What needs to change?
0:30:03 And just looping.
0:30:04 Like that, that's, that's what I'm
waiting for someone to build, honestly.
0:30:08 I agree.
0:30:08 I think there's sort of the, this gap
in going from A to B where like, A,
0:30:14 where we're right now, where I think
we have the conceptual right ideas,
0:30:20 how things can be simpler, and a few
pioneers such as the folk from linear.
0:30:27 And a few other products who have
already had those right ideas, but
0:30:31 they're technically very savvy so
that they could like build that new
0:30:36 hammer, that new framework themselves
so they can live in the future.
0:30:41 And, then you have the, the other
group, what you've described with like
0:30:45 DxOS, Jazz, and there's many other
technologies who are not primarily
0:30:50 building it for their own apps.
0:30:51 But to kind of build this for
developers, so that the next Linear
0:30:56 has a much easier time, can focus
on the product and doesn't need to
0:30:59 build off like the underlying tech.
0:31:01 So that's coming along, and once
that is there, then we're kind of
0:31:06 halfway there, since at that point,
now the AI also needs to pick this up.
0:31:11 Since, I think this is why the
AIs are so great at bringing down
0:31:16 the barrier to entry for things
like React development, et cetera.
0:31:20 There's already a lot of training data
out there, whereas for local-first,
0:31:25 this is all like very little training
data, all like very, very new.
0:31:30 So I think once we have those ingredients
and the AIs can also integrate that into
0:31:36 their more encompassing, solution corpus,
then I think we've, I guess like to, to
0:31:44 a much more comprehensive degree enable
a Barefoot developer, since I guess
0:31:48 right now a Barefoot developer already
lives in the future by, things like
0:31:54 front end React programming, et cetera.
0:31:56 That already works super well for them.
0:31:59 And then they get sort of this
glimmer of hope, Oh, a local-first
0:32:03 is going to make everything simpler.
0:32:05 But the, the fact of reality today
is you either need to use a very
0:32:10 Early technologies such as jazz, et
cetera, and where you still need to
0:32:14 be a bit more on the more expert y
end, or you need to wait a little
0:32:18 bit until all of that is AI ready.
0:32:22 But I, I like the way how you
think about that sort of like as
0:32:25 a big next step function change.
0:32:28 Yeah, I expect they
might meet in the middle.
0:32:30 Like what I think will happen is, like,
people will build these kind of like
0:32:33 full stack language model helpers, which
are not local-first, of course, right?
0:32:37 They will just build one that like
uses cloud databases entirely.
0:32:40 And it's like, all like
not, doesn't work offline.
0:32:43 and then the local-first tools will
get more mature and maybe in a few
0:32:46 years, like these come together
in the middle so that you have.
0:32:49 You know, something for barefoot
developers that just has natural
0:32:52 language inputs and visual inputs
for them to define what they want.
0:32:56 and the stack is, like,
mature enough, right?
0:32:59 We have, like, stable enough technologies
that they get all the stuff around
0:33:02 local-first, like, CRDTs, all the
fancy stuff for free, just because we,
0:33:06 like, have enough training data and
we figured out the complexities of it.
0:33:10 I don't want to put too many timelines
on it, but I'm like, five years?
0:33:14 Maybe less.
0:33:14 I don't know.
0:33:15 Some people think that we're all
going to die from AGI in five years.
0:33:17 So maybe just speed up timelines, like,
but I think reasonably five years.
0:33:24 , I think a very frequent philosophical
question that one can entertain
0:33:28 is like, my life as a programmer
has certainly become a lot better
0:33:34 over the past couple of months and
years with things like Copilot and
0:33:38 Cursor and, ChatGPT, et cetera.
0:33:41 I can like take a screenshot of an error
message and it gives me some useful clues.
0:33:47 so that is.
0:33:48 Definitely getting better, but is this
just like a very nice time before, I
0:33:54 don't have to do my, anyway, this is
not a question to debate here, but
0:33:58 it's certainly also, I'm not immune
to, to those sort of thoughts as
0:34:01 well, but I'm, I'm choosing to see
the world as like glass half full.
0:34:06 and, I'm a tool builder, so I'm excited
for new tools that make me more productive
0:34:11 and, make me more capable in doing stuff.
0:34:15 Yeah.
0:34:16 I mean, I was gonna say, if we,
if we automate all the code,
0:34:19 we'll all just become designers
and product managers, you know?
0:34:21 Like, we'll just, we'll just help.
0:34:24 Help the AIs, like, write the
code and we'll just be like,
0:34:26 Hey, you know, focus on this.
0:34:28 This is your priority.
0:34:29 You know, this usability
piece isn't working very well.
0:34:31 I still think it would scratch the
same itch that a lot of developers have
0:34:34 around like building beautiful systems
and like solving like logical puzzles.
0:34:38 Cause it's still design.
0:34:39 You're solving a lot of logical puzzles.
0:34:41 I don't know.
0:34:42 So maybe that's why I'm not
as afraid of like the whole.
0:34:44 Automation fears, but I also
think they're ridiculous.
0:34:46 Like we'll never get to a hundred percent
code automation and it seems crazy.