With Lu Wilson, Teach was the Hardest Demo, Dev Rel?, Return to Office, Windsurf Acquisition and more MCP
Lu (00:00)
Hey hey hey hey, how's it going?
Wilhelm Klopp (00:01)
What's
up? Good afternoon. How are you?
Lu (00:04)
Good
afternoon. yeah, doing very well, thanks. How are you doing? I feel like we have. We have.
MattCarey (00:07)
Have you guys met before?
Wilhelm Klopp (00:10)
We, yeah,
I think we went to the office together, Matt, didn't we?
Lu (00:14)
Yeah.
We have the whole replicate team in today. They're doing all this ⁓ video generation
Because some of the Google stuff is not out in the UK. Right? But somehow they're doing it. It's like, hey, try telling it to generate a video of a gymnast doing like...
MattCarey (00:23)
Sick. ⁓
Okay.
Awesome.
Lu (00:43)
and we looked up like really complex gymnastics moves and...
You know, we're filling out our office now. We keep growing. It's quite exciting. It's quite exciting.
MattCarey (00:53)
dude, what's gonna happen when you overfill it? Because I love your office,
Lu (00:56)
we'll see. Either we'll upgrade and move upstairs or we'll move somewhere else or we'll just tell people to stay at home, right? Like, what's the, you know, the opposite of, you know, bringing everyone back in?
Wilhelm Klopp (01:05)
That's awesome.
MattCarey (01:10)
Yeah, so you will all stay at home.
Wilhelm Klopp (01:11)
Tell everyone to stay at home. Stay at home mandate.
Lu (01:15)
I've now realized... how we are.
Wilhelm Klopp (01:15)
Are we recording by the way? We are, okay great.
MattCarey (01:17)
Yeah, I started it.
It starts automatically now because I realised we said some fun stuff before the last one started. But I'll probably just cut this off. So yeah.
Lu (01:25)
Mmm.
Wilhelm Klopp (01:25)
Nice, nice, yeah. No, no, it's good for authenticity maxing.
MattCarey (01:31)
So maybe we start by having a few little intros and Lou, yeah, okay. Okay, we don't have to intro ourselves, but I'd love to have an intro from Lou, like what you're up to, what tl Draw is up to. And then we've got a couple of questions, but really, I think we're gonna have a chat again, because there's some awesome stuff. We can talk about the Google stuff that came out yesterday. I'm sure you're really on it with all of that. And yeah, it'll be really exciting.
Wilhelm Klopp (01:35)
Maybe we should never intro ourselves. It's always mysterious.
Lu (01:37)
Haha, yes!
Right. Okay.
Cool.
Wilhelm Klopp (01:58)
We could also all try entering each other.
Lu (02:00)
Well...
MattCarey (02:01)
that sounds funny actually.
Wilhelm Klopp (02:03)
Okay, I- I- I- Okay, wait.
MattCarey (02:04)
Because I can't intro
you, I don't know how.
Lu (02:06)
Why not? You don't know how? That's an honour. I take that as a compliment. I don't know if I should. But I do.
Wilhelm Klopp (02:10)
Yeah.
MattCarey (02:13)
Cheat.
Wilhelm Klopp (02:13)
Okay,
I will try and interview you, Lu. ⁓ I feel like you and Matt, know each other better. But I feel like I actually first saw you many, many years ago at the Future of Coding meetup, just doing like an epic demo. just being like, I think a lot of people come and you know, it's like one of their first times giving a demo or like, they clearly like, like, I don't know, you know, not thought about the demo before. And it's more like, and there's a cool purity to that as well, right? Because it's like,
Lu (02:15)
Okay.
Mm-hmm.
Yeah.
Now,
Wilhelm Klopp (02:39)
You were
Lu (02:39)
you're
Wilhelm Klopp (02:39)
just so focused on the hacking, but then you just gave this incredible demo, and everyone was talking about it, and it was just very smooth. then I think were one of the first people to demo at London's Best Meetup AI demo days. Is that true?
Lu (02:54)
⁓
yeah, yeah, yes. Yes, it is true.
Wilhelm Klopp (02:56)
⁓ And
all the demos tend to be around TL Draw, which is where you work, where you were one of the first folks to join the team. TL Draw is an infinite canvas with lots of fancy things built on top of it.
Lu (03:01)
Yeah.
You were doing so well! But yeah, mean that's such a damn, like that's a lovely intro and that's a very high quality intro. I appreciate it.
Wilhelm Klopp (03:20)
Why did I fall off? Is TL Jordan or Infinite Canvas?
Lu (03:23)
Maybe it was just the panic in your voice. You said, know, tl Draw is an infinite canvas with lots of fancy things. No, say it with conviction. It's an infinite canvas with lots of fancy things. That is true, I guess.
Wilhelm Klopp (03:27)
Good
Nice,
nice, nice.
MattCarey (03:35)
I
love how Steve describes Taylor Troll. He's like, it's a good canvas. Or as he said, he's a very good canvas.
Lu (03:40)
It's a very good whiteboard and it is very good canvas. I mean, there's like a, I guess a lot of humor in the way Steve talks about it. you know, even things like, you know what, arrows are perfect arrows, right? And our digital ink, it's perfect freehand. And there's something humorous about calling something that involves taste perfect.
MattCarey (03:42)
It's a very good whiteboard. That's how he does it. It's a very good whiteboard. I love that.
Wilhelm Klopp (03:44)
Very good whiteboard, that's great.
Lu (04:05)
because you're saying that your artistic decisions are perfect. But yeah, no, genuinely, I guess one of the main features of tl Draw, it is very good. It has features on top of it, people trust us, rely on us to make it, just make it good.
Wilhelm Klopp (04:16)
You
Totally. That's awesome. I think for a lot of people, when TL Draw really popped on their radar was when you launched the GPT-4, paste your key, imagine more stuff. And just to give a hint to anyone who hasn't, for some reason, heard of TL Draw, I think the placeholder text in the text box said, paste your GPT-4 key. And then it said something really cute like, ⁓
MattCarey (04:30)
I just...
Lu (04:38)
Okay, yeah.
Yeah, said
risky but cool, right?
Wilhelm Klopp (04:53)
Risky
protocol. ⁓
Lu (04:56)
I mean,
right, I mean, okay, so when vision models first became available, they were heavily rate limited. So we put out this little experiment called MakeReal, though I don't think it even had a name. no, I think it did have a name when we put it out. It was makereal.tljool.com. it like instantly blew up our rate limits.
And, but you know, there's no way of increasing them. can't, you couldn't pay more because it was just a preview. And I guess, you know, like nowadays it's like, Hey, a new model comes out, you know, it's going to have really low rate limits. But back then that was all very new to us. so I think Steve, in a fit of inspiration or madness added like a box for people to paste their key in. Now, clearly that's
that's a very unsecure practice and you should not build production apps with that. So like you need some sort of disclaimer, right? You know, I think the thing is, if you put something like, know, asterisk, know, like warning, is very, you know, this is very dangerous, only do this if you trust us, that A, no one reads that and B, like, you know.
That's just like a mood kill, isn't it?
Wilhelm Klopp (06:12)
Totally.
No, I thought the disclaimer was perfect. Risky but cool. It's like, know, what in life doesn't have risk? know, all fun things have a little bit of risk. Maybe we'll make face Mikey and even more than it was a bit risky.
Lu (06:21)
Yeah.
Yes.
MattCarey (06:24)
I just want to clarify for everyone who Steve is. Steve is the creator of TL Draw?
Lu (06:28)
Yes.
Yeah. Creator of tl Draw, founder of tl Draw. So yeah, it's been a joy working close to the mind of Steve Ruiz throughout these years. I think this sort of humor of tl Draw has infected a lot of what I do in my work as well.
MattCarey (06:40)
Yeah.
Lu (06:49)
I think I posted yesterday like one of the best things about working here or like one of the most underrated things of working here is like the group workshopping we do when we're like writing a shitpost tweet, you know? I mean like it is like the DNA of the company like Steve was building these things in public on Twitter and that's how it grew you know like that's how interest in it grew.
Wilhelm Klopp (07:01)
that's awesome. That's really cool.
MattCarey (07:04)
Yeah.
Lu (07:16)
And that's how it continues to grow, you know. We post what we're working on very openly, even when we're not sure it's gonna ship or even when it has bugs in it. And yeah, and I guess the reason I crossed paths with Steve is because I was doing a similar thing with my own work, but probably to a lesser extent. I think, you know, from working here at tl Draw and picking up that culture, now I'm the one who won't shut up about it. You know, I'm always trying to tell people, just post what you're working on, you know, it doesn't have to be...
doesn't have to be finished, doesn't have to be polished. So yeah, yeah. I've absorbed in the steepness and the teal-drawnness.
Wilhelm Klopp (07:49)
That's awesome.
MattCarey (07:53)
I don't
remember the first time I met, I think the first time I met you in person was at AI demo days. And it was like 10 minutes before we were about to start and you're walking around with your laptop showing everyone how they can turn themselves into Roman statues on an embedded video with an overlay generated by some like stop motion video model or something, image model. Is it just generating one a second or something?
Lu (08:00)
Yeah.
Ha
Wilhelm Klopp (08:09)
Ha
Lu (08:11)
Friday.
Yeah,
yeah, yeah, okay, yeah, yeah, sir.
MattCarey (08:20)
inside TL
Draw, inside the whiteboard. And I was just like, what is going on? Like, what is happening here? So it was amazing that you were the first demo for AI demo days.
Lu (08:26)
Okay, bye.
yeah, mean that was really fun and I always like to, I love London, like I love the London coding scene here. There's like so much going on continually, like new events popping up, like events are like transforming into something else. And so it's, I don't know, like I always find it very special when there's like a new event that appears and you know, I love to go along and be part of that. And I guess if people know me from
meetups and things. I love the over the shoulder demo. You say to someone, hey, you want to see something crazy? You want to see something crazy? Come over here, let me show you. Yeah, and the thing that I think I was obsessed with back then was, okay, well, the fun part of TL Draw is that the canvas itself is made out of web stuff, if that makes sense. It's not like...
It's not something like Figma that is their own, you know, that's their own custom renderer made with WebGL, which is great for them. they've like, they, it meets their needs. But when you have like a web based canvas, like Tealdraw, you can just chuck any React component in there, which could be a webcam feed, right? And then you can like, you know, draw things on top of that or underneath it. You can like transform it. You can do just opacity, just like any other Tealdraw shape.
Yeah, and so, you know, that's such a fun one to show people as well as all the others.
Wilhelm Klopp (09:55)
really cool.
Yeah. I think one of the questions I always had about TL Draw is like it obviously is such a like special thing that's so extensible and so unique and so like cool and I like want to be cool so I want to be using TL Draw. But I think one thing that's always helpful for like framing or whatever is like when you can use the you know
Lu (10:08)
I appreciate that. I'm nice.
MattCarey (10:11)
Hmm.
Wilhelm Klopp (10:22)
cool new tool that really should be in a league of its own, category of its own, to replace some existing usage. And then maybe you take the baby steps or whatever of the existing, or what you did in the far inferior competitive tool and do that in TL Draw. And then you also learn all the cool other things you can do inside TL Draw. So I guess the question I would be curious about is what should I replace in my cart? So I did a bunch of ad stuff in Figma the other day.
Lu (10:46)
Yeah.
Wilhelm Klopp (10:50)
And I guess I feel like I find my way around Figma a little bit. So can I replace all of my Figma use with TL Draw, or can I replace all of my FigJam use with TL Draw? How should I think about this?
Lu (11:02)
Well, okay. I mean, this may be a weird answer, but you don't have to. Do what you want. There are plenty of great tools out there. Figma's great. We use Figma internally. FigJam's great. I don't use FigJam, because I know tl Draw better. I think they have different aesthetic values.
Wilhelm Klopp (11:09)
Yeah.
You
Lu (11:24)
Fig jam is like kind of more maxi. TlDraw is more minimal, right? You know, it depends what you're doing. But for us, know, like our reason for existence is not to like replace people's tools. Like our reason for existence is to build this library that then other people can build their own tools and features with, right? You know, tldraw.com itself.
Wilhelm Klopp (11:29)
and then.
Lu (11:50)
is like this big glorified demo of our library. I guess, like, it's... People don't use it as a demo, you know? People use it as a product, which is great, which is amazing, you know? And it means we've added things like login now so you can actually save your board. So for such a long time, you couldn't even log in if you wanted to. But...
Obviously, people have been asking us for a long time. The real, I guess, the heart of the team here is about this library. So I would say, don't think about, what can I do in TLDraw? Sure, I would love you to try doing different tasks in it. Maybe you're doing somewhere else. And let me know how it goes.
Wilhelm Klopp (12:15)
You
Lu (12:34)
What works well? Did you have any paper cuts? Is there something missing? And it might be that it does meet your needs. It might be that actually no, the kind of features I'm looking for are like tldraw.com is not like the use case I'm looking for. That's totally fine. But there might be some tool out there in the wild that uses tldraw.
Wilhelm Klopp (12:53)
Yeah, yeah, yeah. No, that makes sense.
Mmm.
Lu (13:01)
It's more targeting your use case, right? So we get teams like Padlet who are building like edtech tools with TL Draw, right? So sometimes we go to like education conferences and we speak to teachers and we tell them what TL Draw is and they say, that looks cool, I'm gonna try this. And we ask them, do you use Padlet? And they say, yeah, yeah, I use Padlet, I love that.
Wilhelm Klopp (13:04)
Yes, yes, yes, yes.
Lu (13:27)
their sandbox in it and it's like so you are using tealdraw already right does that make sense as an answer you know yeah
MattCarey (13:33)
Yeah.
Wilhelm Klopp (13:33)
No, it totally makes sense.
MattCarey (13:36)
It's like a dev tool, like at the end of the day. A dev tool that happens to be obscenely useful by itself, which is really cool. Yeah.
Lu (13:37)
Mm-hmm. Yeah.
Wilhelm Klopp (13:44)
That's really helpful
actually.
Lu (13:46)
It's such a nice position to be in, to be able to make a tealdraw.com, make it free, like, make it, we don't need to have any toxic sign up or like, you know, we're not trying to nag you to pay us money for that. No, we're trying to push the SDK and like, get people, introduce ourselves to people.
MattCarey (14:06)
Awesome, yeah. Can we, can we like switch gears a little bit and talk a bit about what you're doing on the, some AI stuff? Cause I, so maybe we can do a little bit of a background. So you had teach, which was explaining what you write a little prompt and then the model makes something. So I saw like the snowman one where you like build a snowman and then.
Lu (14:25)
Yeah, I don't
know why I ended up being snowman all the time. That was just like a go-to.
MattCarey (14:29)
but then you were like melt it and then the model like made it the snowman circles all smushed together and that was really cute and that was really sweet. But I guess I never, know that blew up all over Twitter but I never really, really got it because you weren't making websites even though you could. You were making like little SVG canvas things.
Lu (14:32)
Yes.
Yes. Yes.
Yes.
MattCarey (14:49)
And then
the next step was you did make real, right? Or was make real come first? Okay.
Lu (14:54)
So, Make Real was first, Make Real was first,
yeah. That was the big one, I guess, that kicked it all off. Then there was... Yeah, Make It Real, yeah.
MattCarey (15:01)
And that was the drawer website, highlight it, make real. It's now
a website on the canvas. You can take the react component, you can host it somewhere else. Like you have, you have a react component that lives like by itself on a browser.
Lu (15:07)
Amen.
Yeah.
you have like a, I guess, a static website, right? know, like that you can host and, know, or share or open in Replit or, you know, copy and paste and export. Yeah. And yeah, and then, you know, we did some other experiments with image generation. There was something called Drawfast. Then like throughout that time, like a very long winding road ended up
MattCarey (15:18)
Yeah.
Lu (15:40)
leading into autocomplete on the canvas, is kind of like, know, copilot or, know, curse is more cursory than copilot.
MattCarey (15:43)
Yeah, I remember that. Yeah, that was what you demoed at demo days. That was really cool.
Wilhelm Klopp (15:46)
And then.
MattCarey (15:51)
Because it hopped,
didn't it? It could put it in any space. It wasn't just completing.
Lu (15:54)
Yeah, and
it could also delete stuff. I don't think I demoed that in that demo, probably because it was too early, but that was the big goal, to let it delete stuff and edit stuff. And that turned into Teach, which was like, I guess a more wrapped up version of that.
MattCarey (15:58)
Yes.
Yeah, maybe.
And that's almost like an agent mode teach. You could imagine it as like an agent mode inside cursor. You ask it to do something and it builds it. And it's
Wilhelm Klopp (16:13)
Okay.
Lu (16:19)
Yes, mean,
yeah, this was the dream, From day one of make real, you know, from day one of getting this thing to generate a website, you know, we're all asking ourselves, like, can this LLM generate stuff on the canvas? You know, it can take the canvas contents out of the canvas, you know, and make it make a website, but we want it to
like put stuff back into the canvas as well and that turned out to be such a hard problem to solve. The like the kind of tragic thing is that out of all these experiments we've done that was probably by far the least viral you know it's still got a good amount of attention but compared to like make real or t-altra or computer it was the least viral. Yeah yeah yeah.
MattCarey (16:52)
Yeah.
Can we talk about computer? Can we talk about computer? This is
100 % my favourite one.
Lu (17:13)
Yeah, okay, but just before we do because because teach what you don't understand teach was so hard I like it was the hardest and it was probably the yeah the least You know the least got the least eyeballs, but it's probably the one that's the most useful like it's the one that most like So that's what I Yeah
Wilhelm Klopp (17:13)
So.
MattCarey (17:19)
Yeah.
Wilhelm Klopp (17:25)
Yeah.
MattCarey (17:31)
Okay, maybe we can talk quickly about that. What was, cause I never understood the use case. like what
was the, what was the customer demand? Was there a customer demand for it? Did someone ask like, can you generate this or what were they trying to do?
Lu (17:42)
Yeah.
So like there's tons of people who are using like a Canvas environment with like an AI chat or an AI agent, right? And so, you know, like if one of your inputs to an agent is a Canvas, you want it to be able to react to you, respond to you in that same environment. And so we see this in EdTech teams as one of the like the
biggest places disappears. And what happened was, like six months after we released Teach, we had tons of people coming to us saying like, wait, how did you do this? Like we've been trying since then, right? How did you do this? And we still haven't properly like published it, but what we have done is like released this AI module that is like how we, what we think the skeleton
for like an AI canvas collaborator will be, right? Based on what we learned from building Teach. And you know, so like, I would love to talk about TL Draw computer. I just like, just because I'd sweated and bled to work on all the things can teach. Like I need to, I need to get the word out there.
Wilhelm Klopp (18:49)
Yeah.
Yeah, no, I am actually not sure if I came across Teach properly. I think I saw the autocomplete stuff. But yeah, how does Teach work? then what was the hard part about it? Is it a secret right now? Or is there a way you can summarize it? Is it lots of tiny paper cuts of things that you have to get working? Or was there one big challenge to make it real?
Lu (19:16)
Okay,
yeah, I think the way I can describe the challenge is like just by, just think about all your possibilities you have, like with this problem, right? You want an LLM to control the canvas, right? How do you do that, right? Like, do you use just classic like function calling tool use? Do you use an MCP? know, do you use structured data?
Wilhelm Klopp (19:43)
Our favorite word
on the podcast, by the way.
Lu (19:44)
Yeah, I know, right? I know, yeah, yeah.
like, you know, over time, we just get more and more options, right? So that's just like step one, like what kind of format are you using? But then, like, okay, even if you decide on that kind of format, is it controlling the cursor? Right? Is it like giving you back like a static view of the state of the canvas? Is it giving you back like functions or instructions to do to the canvas?
Wilhelm Klopp (19:55)
Heh.
Lu (20:13)
How does it deal with a case where your camera is only on one part of the screen but then it might need something from outside the viewport? Like, if you're dealing with it all at once, is that only allowed to control a specific area? And I can bloody well tell you, we tried them all, right? We tried every single one. What do you think? mean, it could be part of the answer. It's not the full answer, right?
Wilhelm Klopp (20:21)
Hmm. ⁓ Yep.
No, Lu, I think the answer is MCP for sure. I'm certain. MCP is the solution to this.
Lu (20:42)
But I'm pretty sure it is part of the answer. Anyway, we found one thing that worked and the technology behind that went into autocomplete, which then we used for Teach as a proof of concept.
Wilhelm Klopp (20:45)
Okay.
MattCarey (20:54)
And are you monetizing that with the AI module or is that that just going to eventually get open sourced or open called or like how is yeah. And what is it like? Can you talk, can you tell us?
Wilhelm Klopp (21:00)
Wait, and what is the thing that worked? Or is it a secret?
Lu (21:04)
Yeah,
yeah, I can, I can. okay, so I mean, like monetization, you know, I don't know, right? This AI module is open source, right? It's something that, like, the reason we put it out is because it's probably useful to people who are using the T-Ordinal SDK. So, you know, increases the value of our SDK, it means that customers, like, are able to be more successful with it. Like, such a no-brainer.
And I think as of last month, people are now using it in production, which is great, which is actually sooner than I expected, but maybe I should have expected that. So the thing that worked is it's kind of wild, it's kind of wild, but like the tricky thing was making, okay, the format, the format that we communicate to the LLM in.
that needed to be correct, right? I think what actually worked in the end was seeing what the LLM would naturally return to us and then using that to inform the format that we use. And this is kind of like a pretty out there approach. Like I know other teams who tried to tackle this problem and might start with
Wilhelm Klopp (22:07)
That's cool.
Lu (22:16)
like fine tuning or training specific things. But yeah, this changed everything, right? So like, the format that it naturally used was this weird like mishmash of different formats, right? And like sometimes it chose to, like I say chose, know, like whatever, don't know. We can get, I'm not gonna get super philosophical about this, but like it chose.
Wilhelm Klopp (22:20)
Yeah.
Lu (22:42)
to do certain things. Some of those things it was really good at, some of those things it was really bad at. So then we're kind of steering it towards the ones that it's good at. And that, basically times many months of figuring it out, ended up with something that really worked well.
Wilhelm Klopp (23:00)
That's awesome. like leaning into like its own strengths essentially and playing to that. Okay, so what is the format?
MattCarey (23:04)
What was it though? What was it? Tell us! Is
Lu (23:07)
I
MattCarey (23:07)
it
Lu (23:07)
mean.
MattCarey (23:07)
like a structured JSON or is it... Is that what you... Are you doing images?
Lu (23:10)
So we.
Wilhelm Klopp (23:10)
Isn't it like XML
and Tommel and Yamel and a bunch of Chinese?
Lu (23:14)
So yeah, I mean...
MattCarey (23:15)
It's like, it's like
Jexil. It's like Jexil or something funky like that. Cause Steve built a state language, right? Was it some, anything to do with that?
Lu (23:23)
I mean, not really, but I guess there was a lot of state machines involved. One of the hard problems we needed to figure out was how we pass this information coming in for a made up format. And that's one of the things that ended up in the AI module. You can have a look, see how we deal with this streaming information that could be correct or could be wrong.
MattCarey (23:24)
No.
Okay.
Lu (23:45)
The AI module lets you try out your own format, try out different formats. So yeah, mean, we were using Sonnet a lot at the time. And so we ended up with this XML-ish format because it's Sonnet and it loves XML. But it wasn't actually valid XML a lot of the time. It was its own idea of it. And internally, we called the format EZ because it was easy for the LLM to do.
MattCarey (24:10)
That's so funny.
Lu (24:11)
The idea that the AI module has is that we have a representation of the changes that the LLM wants to do and then we can turn that to any format. We could turn it to, let's say actually, I don't know, the new Gemini model is really good at markdown, screw it, why not, right? We can turn our simple representation into that or if a new model comes out tomorrow we could...
turn it into whatever's best for that. And then we can all, most importantly, we can turn it to and from real TL Draw. And it's been super exciting and it's probably been the least viral project out there, but maybe one of the most useful ones so far. we need to talk about computer though, come on.
MattCarey (24:40)
Okay.
That's so cool. No, no, no, no, no. You reminded
me about loads of stuff there. the, the, the, doing like the LLM, the AI informed design. have two examples of this, of just from this week. And that was, there was a tweet by the bun creator saying that he like, like, fuck it. He might just add a couple of APIs into the bun API just because, LLM just completely hallucinate them all the time. And he was just like,
Lu (25:10)
Yeah.
MattCarey (25:25)
I might just do that. I might just add this because this is hallucinated all the time. Let's just add it. And that was really funny. And then the Zod creator, when they went to V4, V4 of Zod is actually inside V3, but you just import from V4. yeah, it's the same. It's a V3 package. But when you import it, you do forward slash V4. And there are some APIs that are different, but
Wilhelm Klopp (25:33)
Wild.
Lu (25:41)
Wait, what?
Yeah.
Wilhelm Klopp (25:51)
you
MattCarey (25:52)
It was made to ease the migration and he published a bunch of migration scripts that were just prompts. I'm pretty sure I'm getting this right at the same time. And yeah, he thought a lot. I've
Lu (26:00)
super interesting.
MattCarey (26:02)
forgotten the guy's name. He's Colin Hacks on Twitter, the Zod creator. can't remember his name.
Lu (26:05)
Yeah,
yeah, yeah, yeah,
MattCarey (26:08)
But he's been posting a lot in the last couple of weeks about how they're thinking about the massive breaking migration. Because you had this problem as well, right? From TLDRAW 1 to TLDRAW 2, we had Dax chatting about on the podcast. I think we talked about it a little bit on the last podcast. But yeah, maybe you can talk very briefly about how you've been working with that, because it's a common problem.
Lu (26:16)
Yeah. huh.
Yeah.
Wilhelm Klopp (26:21)
huh.
Lu (26:22)
Bye.
Right.
So, okay, this has been really interesting. obviously, I guess the SDK that we've been building, you we've been building it pretty fast. Like, we, over the past few years, I mean, I guess if you include all of Steve's initial work, then it's maybe three, four years, maybe more. Do you know what? don't know. But that means that, yeah, older versions are like very present in
training data, which means that some models like to spew out like teal draw version one, or even stuff from like six months ago that we've deprecated, right? And that's, yeah, that's like a new problem. The interesting thing is, like, we do a lot of interviews and surveys with our developers to find out, you know, what works well for them, and what difficulties they've been having if they have
have been struggling to get what they need done. And, you know, most of the time we get very consistent feedback, like, hey, like one of the, like people like our examples a lot and they want more of them, right? Great. Easy. That's right. Right. Yeah. Yeah. And a lot of people say that, like, I guess, like, the approach we've got to examples is good. We just want to do more of them and we need them to be discoverable. Everyone's in pretty, like pretty clear agreement there.
MattCarey (27:29)
I think that was what I said to you.
Wilhelm Klopp (27:31)
Yeah.
Lu (27:43)
But use of LLMs, use of AI assistants and agents has been really varied. I would be on a call with one developer and they say, oh yeah, cursor is fantastic. It's so good, it knows the SDK so well. Or my chat GPT, it's just told me everything I need. And I go on to the next call and then people say, it's useless. Absolutely useless, it's so confused.
And so that's been really interesting because clearly everyone is doing completely different strategies and approaches.
Wilhelm Klopp (28:19)
This is
actually, it's amazing you mentioned this because, Mal, I sent you last night this agenda of things I wanted to chat through that I just want to talk to you about anyway, which I guess is part of why we have to pod. But one of them was how hard it seems to to objectively evaluate how good AI-enabled anything is. Because obviously, it's AI, there's a new thing that's launching every week.
Lu (28:30)
Okay. Yes.
Wilhelm Klopp (28:47)
And I think Matt and I both are interested in the coding agent stuff as well. Lots of new things have come out there. And you see all these stories of people saying, wow, this one, this is the best. And it's like, and then you try it you're like, wait a second, maybe I'm doing something wrong or whatever. But yeah, it feels like a new thing that we haven't really had as much before in this industry, right? That like, it's really hard to like objectively say like, this is a
Lu (28:56)
Yeah, yeah, yeah,
Wait a second.
Wilhelm Klopp (29:14)
this is great or this is great at that and like, is it? And then the question is, right, like, am I just a shit prompter? Do my personal values not align with the creators of this tool? And therefore, like, I don't know, we're like crossing.
MattCarey (29:22)
Yeah.
Lu (29:23)
Right.
MattCarey (29:25)
I think so much
of it's on the implementation detail as well, right? Because cursor, like the new models with cursor with max mode compared to me prompting it in chat GPT, that is night and day. Like that is actually night and day. For me, that's night and day. And that's just because they're like...
pushing up the thinking mode to super high, they've got optimized prompts. But how are you ever gonna evaluate that? Because that's like not programmatic at all. Like I can't just hit that on an API.
Lu (29:53)
I mean,
like, so for me, right, like for us as a, you know, a dev tool company, right, I want to make it work for everyone, even if you're on like the shit free tier of something, right? You know, and I, and I think, I think, I think it's possible, right? I think you need, like, if your approach is to only try and think about the new models, right, then you're...
gonna lose out on so many people, I think. So I think the way I'm currently thinking about it, and know, check in with me six months from now to see how it's going, right? It's really like a people problem, right? Like it's at the end of the day, like the developers that I'm trying to help are human beings. And it's clear that there are ways of using
Wilhelm Klopp (30:27)
Mm-hmm.
Lu (30:42)
models successfully, there are ways of using it like unsuccessfully. And it's not always their fault. Sometimes it's just luck, right? Or you said, you phrased it that way. You gave cursor this link instead of that link, you know? So like, I'm like, I need to know these best practices for a start and we need to make, need to communicate it. We need to make it like really easy to do the right thing. And, and then like, hopefully things go better. Like, and I think the way to
Wilhelm Klopp (30:52)
Yeah.
You
Lu (31:12)
It's super, super hard to evaluate that. It's a dirty word sometimes, but it's a dev rel problem. We need to have these relationships with our developers where they're getting the information they need from us and we're able to listen to them and find out if something's going wrong.
Wilhelm Klopp (31:19)
Mm-hmm.
Totally. I'm a big fan of that word.
MattCarey (31:30)
I think you're among friends here, Luke, because me and Will, we like DevRel. I think we are the other side of an industry at the moment because we're big fans, aren't we, Will? Well, maybe. I don't want to speak for you.
Lu (31:32)
Thank
You like them.
Wilhelm Klopp (31:40)
I used to be a dev rel intern.
Yeah, no, I'm all over.
Lu (31:43)
I didn't even know that existed.
MattCarey (31:47)
You DevRails at mid level, do you?
Lu (31:47)
but...
I mean, like, this is gonna completely hijack the conversation, like, god. But like, DevRel is such a broad term, it's like house, for house music, you know? Like, that can mean so many things, right? That can mean so many things.
MattCarey (31:54)
Let's go, let's go. Go on.
Wilhelm Klopp (31:55)
Go on. That's what we're
here for.
Eh-heh-heh-heh-heh.
I used to love going to DevRelCon in London, or that consortium of events, and I think it's still on as well. was just such a great spot to meet friends. I think there was a bit of a meme because the forever discussed topics were like, what is DevRel? And should we be calling ourselves developer evangelists or developer advocates? That was something you can debate forever.
Lu (32:10)
Yeah.
Hahaha
Wilhelm Klopp (32:33)
And then it's how do you prove your value to your... Oh, wait, actually, no, there's a one that's even funnier. Obviously, how do you prove your value was like a big topic, but should dev rel sit in marketing or in engineering or in product? So like, yeah, it's just like so many hilarious topics you can... No, no, no, let's not talk about any of that.
Lu (32:36)
huh.
Right. Oh, do you want? Okay. All right. Do you want to know more?
MattCarey (32:50)
Yeah, go on Luke. No,
I want Luke to give like one click fire takes, like the little... We can pluck them out and make shorts out of them. Go on Luke.
Wilhelm Klopp (32:55)
Yeah, that's a good idea.
Lu (32:59)
DevRel does not sit in any of those things. DevRel is not marketing. DevRel is not product. DevRel is not sales. DevRel is not engineering. DevRel is DevRel. DevRel means DevRel, right? mean, like that's it's also also it's not it's not the glue between everything either.
Wilhelm Klopp (33:10)
What?
Lu (33:22)
I think it has to be its own thing. it... I don't know. I don't know.
Wilhelm Klopp (33:25)
It's the air that breathes life into the user experience.
MattCarey (33:30)
You just
seem to be describing MCP to me, I don't understand.
Wilhelm Klopp (33:33)
⁓
Lu (33:33)
Hahaha
Wilhelm Klopp (33:36)
A lot of flab between that. DevRel is MCP. You heard it here first. Makes so much sense.
Lu (33:38)
Yes!
Yes.
MattCarey (33:41)
Well, I think MCP is dev-ro for anthropic. I'm not even being funny.
Lu (33:44)
I mean, fair enough. Fair enough. Listen, if your MCP implementation is so good, maybe it can be your dev rel.
Wilhelm Klopp (33:44)
I see. That's hilarious.
MattCarey (33:55)
So you're gonna build an MCP server for TailDraw.
Lu (33:58)
Okay well people have been starting to ask for MCP, like does teal draw have MCP? And my question is what kind of MCP are you looking for?
Wilhelm Klopp (34:07)
That's
the wrong question to ask. Just MCP. me MCP!
Lu (34:10)
just I'm like, you know, yeah,
MattCarey (34:10)
Mm-mm.
Lu (34:12)
we can do it. We can do it, you know, but like I'm trying to understand, right? Are you trying to do you want, do you want a model to be able to like create boards for you? Do you want them to be able to like tell you about what boards you have saved onto your draw.com? Do you want it to control your canvas? Do you want to speak to the docs and like, you know, pull out API's? Maybe you want everything, but yeah, I, yeah.
MattCarey (34:34)
I think the docs is useful. I've
been going through quite a lot of the MCP servers and now I'm hijacking the conversation. But the Tiny Bird one is really interesting. It has all of the core functionality of Tiny Bird, all the core functionality APIs. And then it just has another one that's like get docs. And it's actually quite useful. I'm not going to lie. It's not annoying at all. does just work. And that's pretty cool. That's pretty cool. But you've got loads of LLM.txt now, right?
Lu (34:39)
Go for it.
Right.
Yeah. Yeah.
We
do, we do.
MattCarey (35:00)
and mark
down files for docs and all of that sort of good stuff.
Lu (35:04)
Yeah, we do. it's like, yeah, all auto-generated is very quick win. We haven't really, I guess, shared that with people. know, like, it's, I think some people come looking for them. You know, like, we can see, like, before we put them up, people were, like, trying out LLMs.txt on our doc site, and now they do find something. But what I really need to put out there is, like,
Wilhelm Klopp (35:17)
you
Lu (35:28)
I don't know, like, cause I know people like you, people like you, I feel like, you you come to a doc site, you know, like, you know, you have a strategy for like using models with doc sites, right? Or like learning new things. There are many more developers who, who don't live and breathe AI every day, but they still want to use these tools or they're still using these tools as part of their stack. And
MattCarey (35:31)
People like you. Bad agents. ⁓
Lu (35:54)
Like my part of my job is making sure that they're as successful as everyone else, you know, with our tool, right? Full stop. I need everyone to be like fully equipped when they're using the SDK. So I need to have like a here's how to, like here's what you should do, right? When you when using the tl Draw SDK with AI models. And some of that is going to be like
Wilhelm Klopp (36:04)
Totally. Yeah.
Lu (36:21)
Some of that is, I guess, general advice, but some of that's going to be specific to the TealDRAW SDK. We have some pretty unique problems in the sense that the API is quite large, and people use it to build very different kind of applications. So you know, like...
MattCarey (36:38)
Yeah, I saw the hackathon. Did you see the hackathon project of the guys making, was it the 3D models or something very recently? That was cool.
Lu (36:45)
Yeah, yeah,
yeah, like every single time someone makes something crazy like
MattCarey (36:52)
draw up thing
Lu (36:51)
Like we we're all like looking
looking at it in the office like hey everyone come over here. This is amazing It's so it's so nice. It's so nice. Got that
Wilhelm Klopp (37:00)
That's awesome. That's very cool. Yeah, I really like the, like, whenever a doc site has, like, the copy of the whole page is marked down.
And then you can just drop it into the prompt.
MattCarey (37:10)
Yeah, that's cool. I think that the Versel AISDK does that, but they do it a little bit weirdly in that their LLMs.txt is like a complete dump of all of their markdown, which is wrong, it's wrong. It works, but it's wrong for the format, but it's still really useful. It's super useful.
Lu (37:11)
I'm adding a linear ticket right now.
Wilhelm Klopp (37:14)
And I'm...
Lu (37:25)
Yeah, he's interesting.
But it is interesting
at this, sorry, it's just interesting at this early stage to see the different approaches people are taking even with something like llms.txt.
MattCarey (37:40)
Yeah.
What you can do with that is just add it as a doc cursor then, and then it just scrapes it, it stores it, and it's there forever. It's really nice. And then can always just tag it.
Wilhelm Klopp (37:43)
Yeah.
Lu (37:52)
That's what I see more often for
like LLM's full.txt.
MattCarey (37:55)
Yeah, yeah, exactly.
They got the naming wrong, it's still good. It's still good. Please don't change it. ⁓ Just like they come out tomorrow and change it. No, we, maybe we should switch gears a little bit. talked to, that's a lot about like doc sites for AI. ⁓ I think, Will, you had on your list of things to chat about, love for the office. Like,
Wilhelm Klopp (37:57)
I'm out.
Lu (38:01)
Yeah. I love it.
Yeah, yeah, yeah.
Wilhelm Klopp (38:18)
Yes, yeah, of course.
MattCarey (38:18)
TLDraw have a beautiful office,
like we went there a few months ago, we've already talked about it, you guys have a that, is it an Apple one or I'm way too young to know what that is, but just sat on the wall, so cool.
Lu (38:27)
⁓ yeah, yeah.
Yeah, we have quite a lot of, I guess, toys, you know, like a really old Macintosh, which works, you know, I think. Yeah, I think, I think we have like, yeah, that's powering tl Draw. You know, we have...
MattCarey (38:44)
Is it an MCP server?
Wilhelm Klopp (38:46)
Thank you.
MattCarey (38:48)
Okay, okay.
Wilhelm Klopp (38:52)
no, that's
a great idea. Like an actual, I bet no one's built an actual physical MCP server that powers their actual MCP server.
Lu (38:54)
Yeah.
I mean,
MattCarey (39:00)
That's ridiculous.
Lu (39:01)
sometimes the laptop sitting in the office is genuinely a good hosting solution. That's what we did for this thing Lens, that was basically this one multiplayer room where people could draw in real time with each other and it would generate stuff in real time. And we just needed one machine pinging off the image generation requests.
MattCarey (39:24)
Yeah.
Lu (39:24)
We
tried some stuff where we're like, okay, like whoever's lost in the room, you're going to be the one or to the sensor requests or we even tried like distributing it around the room. Yeah, no, no, we literally had like, I think it was a laptop. I think it was actually in Steve's kitchen.
MattCarey (39:34)
Like turn the laptop off. You have to turn the laptop off when you leave.
Wilhelm Klopp (39:43)
Nice.
MattCarey (39:43)
And is that just
like Cloudflare tunnel to get a domain? Like what happens there?
Lu (39:48)
well, so, okay, so this laptop, was just connected like any other client, like any other user, right? Just in a browser, but like you put like a special like URL query and it will mean that it also like, you know, sends them.
MattCarey (40:01)
one of those
risky but cool queries.
Lu (40:05)
Yeah, yeah, yeah, there's a running theme. But yeah, I mean, like, I love the office here.
Wilhelm Klopp (40:06)
That's cool.
Yeah, I put this down as a thing for us to chat through just because I recently moved to San Francisco. That's why we're doing this so late in the day for you, sorry. ⁓ And I got a proper little we work office, like a little four person desk we work thing, whereas I've only ever had the hot desking before. And it's been such a big mental positive shift for me to have this proper second space besides the home.
Lu (40:17)
Mm-hmm.
man, it's a good time.
Yeah.
Wilhelm Klopp (40:38)
where I can leave stuff and I can go and when I go for lunch, it's not like pack up everything, can invite people over, we can have our own little cocoon and that we hang out in. It's actually so good and it's hard to describe how much of an upgrade it is over the hot desking, but I would just highly, highly recommend it to anyone who's currently hot desking or even, I don't know, I had a dedicated desk at the WeWork, it was one desk, it's fixed in a larger space, but this office thing has just been...
Lu (40:44)
Yeah.
Wilhelm Klopp (41:07)
It's just been incredibly nice.
Lu (41:09)
Yeah, I mean, for me, I think one of the best things is that we can just have visitors over at any time, right? Like I mentioned earlier, I think maybe before we started recording, I can't remember, that we have replicate here today, right? ⁓ You know, people are passing through London, they reach out, they come visit. It's great for like hiring too, right? We just, if there's someone we're interested in talking to, you know, we just...
Wilhelm Klopp (41:22)
Mmm.
Lu (41:36)
We can bring him over, we have lunch, we can have a chat, we can talk through things. This is how I joined TL Draw. I think me and Steve connected over Twitter and I just became a regular visitor at the office. And then one day I joined the team. And I don't know, it means that we've made a lot of friends, I guess.
Wilhelm Klopp (41:53)
That's amazing.
Lu (42:00)
From a networking point of view, it's very helpful. I can't recommend it enough.
MattCarey (42:06)
Yeah,
we just moved into an office and although it's nowhere near as cool as yours, I am getting similar thoughts. It's very nice. It's very nice.
Lu (42:14)
Yeah,
I mean, you know.
Wilhelm Klopp (42:16)
at some
deep emotional level, it just feels very pleasant and productive and comforting or whatever. I don't know.
MattCarey (42:19)
Yeah.
Yeah.
Yeah, I do think it depends on what stage of life and everything you are in. I was sat, this is the most San Francisco thing ever, but when I was in San Francisco, I was sat in a Waymo with the guy who made Docker. ⁓
Lu (42:39)
⁓ my god.
Wilhelm Klopp (42:41)
Hahaha
MattCarey (42:42)
And he
was just like, yeah, so Solomon, he's a lovely man.
he just demoed at my event and he was like, yeah, so it's been great. Like we're doing this thing, like Dagger is this thing that he demoed. And yeah, with the Docker, with the Docker cache, when I left Docker, yeah, I built a house and I wanted a really nice office downstairs. So I have an office, it takes
and...
people like my next door neighbor, he didn't have an office, so he just comes over, he uses my office. We just hang out, we have a great time. My colleagues live just down the street, they come over, everyone's in my office. Do you wanna come over and hang out in my office? And I was like.
Yeah, I mean, I'm flying home tomorrow. When can I come? Can I come now? And it was like 11 o'clock at night and he was like, no, that's weird. But yeah, no, it was really good. It was really cool. And I guess like the replicate team hanging out in their office as well. There is definitely something tangible, well, intangibly wonderful about having an office that people, friends can come and hang out in. I get that with you guys.
Lu (43:26)
Hahaha
Wilhelm Klopp (43:42)
100%, yeah.
MattCarey (43:44)
I'm actually in the
Dawn Capital office. Have any of you guys been there? It's super nice. It's a very lovely VC firm in London, Zoe's a friend of mine and yeah, she organized a co-working time today. But their office is, this is very amazing. I'm on a very comfy chair right now. You can't see it, It's, yeah. It's like a banking office, except it's prettier and there's like 1 % of the people.
Wilhelm Klopp (43:49)
What is Dawn Capital?
Lu (43:52)
Thank
Wilhelm Klopp (43:53)
nice.
Lu (44:02)
VC offices are like something else though.
so you've got a lot of space.
MattCarey (44:13)
Yeah, I mean, I have a whole five person meeting room. Like this is, this is many bucks a month in WeWork. This room I'm in right now.
Lu (44:17)
Nice. Nice. I'm in middle of the recording
Wilhelm Klopp (44:19)
Yeah.
Lu (44:21)
room. ⁓
MattCarey (44:25)
Yeah,
Wilhelm Klopp (44:25)
Yeah.
MattCarey (44:26)
look at that. Yeah, no, I love how you have
sofas in the corner of your place. It's, dude, the sofas, they're comfy. They're comfy.
Lu (44:31)
I love the sofas. Yeah,
we bought, I think we bought one and we liked it so much we bought another one of the same, of the same sofa, but it's very important.
MattCarey (44:38)
Yeah. ⁓
Wilhelm Klopp (44:42)
Completely different question for you both.
Something, I put this as secret topic number one on the agenda mat because I am... ⁓
MattCarey (44:48)
Will had topics he wouldn't tell me about. He was just like, yeah, I've got all these topics. And then he sent me like one and
just the rest of it was like redacted, redacted, redacted. I was like, what are these?
Wilhelm Klopp (44:58)
Because I want to get your live reaction
Lu (44:56)
Bye.
my god.
Wilhelm Klopp (45:00)
to this and just see what you're thinking. So one thing I'm noticing is that everyone is pretending like the Windsurf opening acquisition has already happened. Like, what's up with this? Because it seems like it's rumored, but until either company actually says that it's happened. It hasn't happened, right?
Lu (45:02)
Thanks
Wilhelm Klopp (45:20)
But feel like everyone, like the discourse has moved on. And obviously AI moves so quickly that what I'm seeing is people saying, oh yeah, yeah, this happened a while back. OpenAI now owns Windsurf. But now they're both releasing their own models. What's happening?
MattCarey (45:27)
It was news for one day.
Lu (45:34)
I don't
MattCarey (45:35)
So
OpenAI bought Windsor for $3 billion, right? And then, well, supposedly, it's not confirmed by anyone. And then two or, what, like three days later, Microsoft open-sourced VS Code, which was already open-sourced, but they open-sourced the copilot bit, which wasn't open-sourced. So I'm very confused. But they open-sourced the agentic, the AI bit of VS Code. And...
Wilhelm Klopp (45:40)
Well, but that is not confirmed. That is not like-
Lu (45:48)
Yeah, right.
Wilhelm Klopp (45:59)
Mmm.
MattCarey (46:00)
That's really funny because you only open source stuff when you are trying to commoditize a market that apparently is worth like $20 billion or more. I don't know what the coding market is, yeah, curses rumored at $9 billion, Windsurf at $3 billion. Yeah, dude, I have no idea. Like, I'm guessing it's gonna happen.
Lu (46:11)
Why you even know that?
I don't know. That feels like more of
a SF question. You've got to go sniffing around, you know?
MattCarey (46:21)
Yeah, is it sabotage? The Microsoft release.
Wilhelm Klopp (46:22)
Okay, it's very funny
actually because you all had Hackney half last Sunday, The big... Okay, maybe. Okay, fun. I guess that's some... Maybe that event is huge in London, but maybe London is even more huge. But I was just going to say we had a similar thing here in SF on the same day, a race that's called Bay to Breakers and you just run across San Francisco.
MattCarey (46:28)
Well, I wasn't there, but it was around.
Lu (46:30)
I
also wasn't there. Keep going.
Wilhelm Klopp (46:48)
And it takes over the city, everyone seems to know about it. But hilariously, it was sponsored by Windsurf. It had the one headline sponsor and it was Windsurf. they had their branding everywhere, they had lots of people running, and they were at the expo as well, where you pick up your race packet or whatever. I asked them, first of all, why... Exactly. I asked them, why are you sponsoring this?
Lu (46:51)
Yeah.
MattCarey (47:05)
How are they that big? Is that being sponsored by New Balance? It's so weird. I remember getting off the plane and just seeing the Strava logo.
Lu (47:08)
That's after something else.
we should sponsor
a half marathon. The teel teel run teel draw teel drunk
MattCarey (47:17)
Yeah, dudes!
Wilhelm Klopp (47:17)
I agree.
MattCarey (47:21)
See you over on...
Wilhelm Klopp (47:23)
I think that's very good. Yeah, I asked them why they're sponsoring this. then as I was asking this, another guy came up and he was like, why are you sponsoring this? it must have been a long day at them for the booth answering the same question 100 times. But they said, yeah, a lot of them are, a lot of us are from the Bay Area. And we just want to give back, which makes, you know, that makes sense. That's fun. It's like a cool event to sponsor. And like, yeah, for this run, like everyone like dresses up and there are so many popes.
MattCarey (47:25)
Sound, yeah.
Lu (47:36)
You
Wilhelm Klopp (47:50)
my god, there were so many naked people. So many naked people, completely naked. Yeah, stressing down. A lot of centipedes, so like people like with like a rope that are all dressed in the same kind of costume. Lots of minions. Wild event. And then the second question I asked them was, like, what's up with this whole OpenAI acquisition thing?
Lu (47:51)
my god. What?
MattCarey (47:53)
That's not dressing up. I think that's the opposite.
Lu (47:55)
the stressing.
yeah.
Wilhelm Klopp (48:13)
And they were like, yeah, everyone pretends it's happened, but it's all just rumors at this point. I think there might have been a little bit of like, yeah, we're not supposed to say anything about that yet. So I don't know. it seems like, I don't know. feel like sometimes when a big news item like this leaks, it can actually kill the deal. Like, I remember when the GitHub acquisition happened, it leaked, I think, three days before it was supposed to be announced.
Lu (48:24)
Yeah.
MattCarey (48:32)
Yeah.
Wilhelm Klopp (48:39)
And according to someone at the time, that almost killed the entire deal that they've been working on for three months. So I wouldn't be surprised. Right. Yeah, yeah, yeah.
Lu (48:43)
Really? It can just change, it can change the situation I imagine, right? You know, suddenly
the dynamic is different. The public will be saying stuff about it. Other companies can react, right?
Wilhelm Klopp (48:53)
Exactly. Yep, yep, yep.
MattCarey (48:57)
Well, Microsoft can open source a competitor, which is just like...
Wilhelm Klopp (48:58)
It's...
Totally.
Lu (49:01)
I wonder if there's like a clause though, I wonder if it's like, you know, sometimes there are these clauses like, if you're gonna get acquired by someone else, you need to let us know and then wait like a month or two months. You know what I mean? So maybe it's more just like paperwork.
Wilhelm Klopp (49:15)
Mm.
MattCarey (49:19)
Maybe, maybe.
Wilhelm Klopp (49:19)
Totally.
Yeah, yeah. think that could be... Like, I think the... Yeah. The answer is paperwork.
Lu (49:21)
You hurry here first.
MattCarey (49:23)
Oh it's paperwork, it's paperwork. Sabotage and paperwork. I want
to know what your second secret topic is. go on.
Wilhelm Klopp (49:30)
I think we'll have
to leave that for next time, won't we?
Lu (49:32)
OHHHH ⁓
MattCarey (49:33)
What? No, come on, don't do that to me.
Wilhelm Klopp (49:37)
It doesn't fit very well at this point in the conversation.
MattCarey (49:40)
Okay, okay, okay.
Lu (49:41)
Alright,
tune in next week for a...
Wilhelm Klopp (49:43)
But
MattCarey (49:44)
Ahahaha!
Wilhelm Klopp (49:45)
there's
lots of other things on the list that we can talk about.
Lu (49:48)
Yeah, I mean, we still haven't really talked about tail-draw computer.
MattCarey (49:52)
Okay, okay, let's do it, do it, it, because this is, well, I hate to say it's my favourite one now, now you went off on about Teach, but I think it is. It's the, the demos are beautiful.
Wilhelm Klopp (49:52)
yeah, let's do it.
Lu (49:58)
Okay, know, listen, it is, it
it's the latest one, right? It's the latest one. It's the latest one, All ⁓ right, field draw
MattCarey (50:06)
Go on, explain, explain to everyone.
Lu (50:09)
Okay, so TL Draw Computer is a canvas tool that lets you create multi-step prompts. That's the ultra simple, kind of unfair description of it. What it is, it's like a node-wire interface. You put down components that contain data or instructions and you can connect them together.
and you can, I'm gonna use the word pump this data through different instructions and then it pumps out different data, right? And it, so you're like creating like a computer, right? Like with data flowing through, stuff happens to it, it merges together, it gets split apart, transforms one kind of data into another kind of data. But I guess the twist is, is that this computer, the tl Draw computer.
Wilhelm Klopp (50:47)
Mm.
Lu (51:02)
It's not code running these operations. It's an LLM, right? It's figuring out how to do what you ask it to do. You know what? That's... It's too hard to explain it without just showing it. Okay.
Wilhelm Klopp (51:08)
you
That's wild.
MattCarey (51:17)
Yeah, it's super difficult. So
I guess the fun one that I saw was like, I mean, I've seen so many fun ones, but I, okay, I'll start with an easy one. Like there was an easy one, which was like write an email for me about a review for this restaurant. And you had a little slider, which was like, the place was really good or the place was really bad. And then like, and then, then something where you put in like what you ate and then you press, there was a big red play button and you press play and all of the arrows are connected to each other and
Lu (51:33)
Yeah
MattCarey (51:43)
the arrows like it looks like you're putting a golf ball through like a hosepipe through like a hosepipe right and it like and it like and this little like it like pushes it through the arrow I like pump I never had pump before and then
Lu (51:46)
I'm so full. Yeah. Yeah, yeah, yeah.
Wilhelm Klopp (51:55)
was good.
MattCarey (51:56)
And then it creates the email and then randomly some arrow went somewhere else and it created a picture of what my food looked like. And then like another, and then there was like another one that created like a menu or like a stylized menu of what my food looked like. But there was an email there as well. And I guess there, there was a data API. It was, is there a data module, like a data thing? So you could send, you could send like a, you could fetch some data or do like a post request, couldn't you?
Lu (52:03)
Okay, yeah
Yeah. ⁓
You
can do requests, can insert files, or can make it generate files, can, I don't know, like dump in a CSV, things like that.
MattCarey (52:29)
You could really
do anything. Steve got someone to make a whole neural network, didn't he? Or something like that. Someone made something really ridiculous.
Lu (52:36)
do you know what? That might be something else built with TLDraw as well though. you know, there's a lot you can do. so the, I guess, okay, the really exciting part for me is that it's such an easy way of doing multi-step stuff, right? Like I think a lot of... Right, right. So like, you know...
MattCarey (52:56)
It's very visual, very visual.
Lu (53:01)
When people develop AI tools and features nowadays, it's hardly ever one step. It's hardly ever user input and straight back to a response. Nowadays, with models getting faster or I guess people wanting models to think longer, we're nearly always doing multiple steps of processing or having some loops in there.
some agent involved in the middle, but that's nearly always invisible. Or if it is visible, then it's, A, it's like not that clear, like how these steps are being constructed. oh, like in the little like thinking spinner or like thinking indicator, why did you do that thing this time instead of that thing?
There was some decision there that I'm not seeing as a user. And then finally, obviously the most fun part of this is being able to change it. You can just see exactly where in this multi-step process, I don't know, like an email generator, kind of a depressing use case, not gonna lie. But.
MattCarey (54:10)
Yeah, but then it made
random pictures of food and like a menu and then yeah, I was like, I don't know. I think it randomly created the weather for the day and stuff like that. It did so much extra stuff.
Lu (54:21)
Cool, cool. Yeah, you know, I guess the, yeah, the fun part is like, you can, you can go into, you know, so on Teodoro computer, we have these like examples that you can fork, right? And copy and then, and then edit yourself. So you, some of them are like involve like quite convoluted processes. One of them is like a, I guess, like an invention creator. You give it like a prompt and it comes up with like this entire like scheme and invention and name and
product images and landing page. And you can go into any one of those bits in the middle and change them. So you could say, there's one that says, hey, from these five ideas that the previous model has created, from these five ideas, pick the best one. So you could go in and say, from these five ideas, pick the worst one. Or pick the funniest one. Or maybe you could say, let's workshop 100 ideas.
Wilhelm Klopp (55:18)
Hmm.
Lu (55:19)
And, or
you could just, okay, you can change the law. And the other part that we saw people do is like, you can go really far. You can create something that runs for a very long time or just keeps running forever. Right.
Wilhelm Klopp (55:22)
That's awesome.
a really good... Yeah, thank you. I think I saw tldraw.com and I was like, wow, this is cool, but I don't get it. I don't understand it yet. So that's awesome. I have two questions. One is, so you can kind of make your own agentic loops visually in tldraw.com computer in a way that some people might do with code or whatever, but you can do it visually, which actually is genius because that means a lot more people can do it, presumably, right?
Lu (55:40)
You
Yes.
Yes.
Right. I mean, like, I guess that's how I think about, like, these workflows, or like, that's how I think about multi-step prompting. You know, when I'm developing something, it's helpful to be able to, I guess, represent it in that way. And, you know, there are tools out there that do let you create these things in a visual way, but in my opinion, they're all targeted at developers, right? They're all targeted, they're all intended to be used by people who can...
already do this with code. I think the thing that is exciting for me with TLDrawComputer is that we've seen non-developers use it for the first time and A, get a better understanding of what's going on under the hood, but also seeing what they do. And we know lots of people who have been sitting down and using it with their kids, right?
Wilhelm Klopp (56:52)
That's awesome.
Yeah.
Lu (56:54)
Yeah, that's incredible. That's always a litmus test, right? If your kid can do it, hopefully other people can't, right?
Wilhelm Klopp (56:59)
⁓
That's great. And the way it actually works, you feed an image of the arrows and everything into the LLM, and then out of that becomes something else, or how do the wires work, I guess?
MattCarey (57:02)
That's very cool. Very cool.
Lu (57:16)
So, I mean, okay, so my colleague Alex, she worked on like some of the real hard, like graph theory stuff. We had to work out to get this thing to work. That's basically so that we can, you know, when you've created a graph, we will know what order to do it in, right? And what we need to wait for. The, I guess the other part of that is that you can like...
Wilhelm Klopp (57:24)
End.
Lu (57:40)
run a graph from the start, but you can also then run it from the middle again or anywhere in it. there's some graph stuff to solve and that's useful for us to solve anyway and to figure out, I guess, some UX. Yeah. Yeah. That's right.
Wilhelm Klopp (57:56)
But in TL draw, then it is actually like a properly connected graph. It's not just like ⁓ shapes that still have to be
MattCarey (58:03)
No,
Wilhelm Klopp (58:04)
turned. Nice.
MattCarey (58:04)
they like click together. You were showing me those APIs, I remember Lou, which is like dump, yeah, the bindings. You can like dump all of the bindings and you can see everything that's connected to each thing. I mean, it was very cool to play with. I still need to finish the thing that I told you I was gonna do ages ago. Yeah. I have another idea for it now that's, yeah, that's like, it's kind of warped in my brain and I don't know.
Lu (58:15)
Yeah, yeah.
Yeah, I mean, so like the... ⁓ you have another one?
MattCarey (58:30)
We'll see, I may be talking to you about that another time. I don't want to derail this conversation. yeah, Natildra was super cool and I love yours and Steve's demo of it. It's really awesome. I think, I mean, we're gonna finish up pretty soon, aren't we? We've been going for ages. But maybe before we finish, maybe Will, you can give us a little bit of a rundown of what you're up to at the moment. Because we haven't talked, like, what's changed since last week? Go on.
Lu (58:32)
Great.
Thanks.
What are you doing,
Will?
Wilhelm Klopp (58:53)
yeah, a bunch of things actually. Well, so I actually did kind of like a soft launch of the triathlon brand over the weekend, advertising around two specific races. Because basically what the strategy is going to be, so we're making this triathlon sweater where you can display your triathlon achievements and targeting people. Hopefully you have done a lot of triathlons who want to build this.
Lu (59:02)
Whoa.
Wilhelm Klopp (59:16)
or who want to wear this, own this. And we need to figure out the distribution side of it entirely still. But the idea is that every weekend there's a ton of these Ironman races. And we can just target those very specific locations with Instagram ads in the hours or 24 hours after the race. And yeah, so I was learning a bunch of stuff about how to run ads effectively and how that whole site works, which was interesting.
Lu (59:33)
haha
Wilhelm Klopp (59:40)
Mostly because just the UX of Meta Ads Manager is shockingly terrible. Just like stuff doesn't work, or stuff only works in Safari for some reason. Which is like, this is driving billions of dollars, or not per month probably, Their MRR is probably over a billion at Meta. How is this tool so shockingly bad? It's very strange to me. But then you look at the AWS console, and it's also not easy to use, right?
At least it works reliably. I don't know.
MattCarey (1:00:10)
Yeah, it works in Chrome
though. It works in Chrome. Maybe you're not on a... Maybe you have to get the Enterprise Pro Pro Edition.
Wilhelm Klopp (1:00:16)
Yeah, it's strange. Or maybe you have like a maybe the way it works, you get like a like an account rep or something and then they do it for you. I don't Yeah, just lots of strange things. But then yeah, on the the color front on like the agent I'm trying to build, I think I actually have made some progress in like what I think for a long time I was missing like a clear goal. Like there's so much change happening in AI. And like, it's a bit confusing. Like what do you what should you be building? Where is like where's
Lu (1:00:16)
heard this story.
MattCarey (1:00:22)
and they build you the UI.
Wilhelm Klopp (1:00:44)
You want to skate where the puck is going, but the puck seems to be going a different direction every day or whatever. don't know. MCP. Yeah, Kolo has an MCP server, OK, so to be serious about MCP for a second, it's not what we strive for in the pod to be serious about certain topics. ⁓ yeah, so Kolo has an MCP server built in, but it just doesn't work super.
Lu (1:00:50)
MCP MCP
hahaha
MattCarey (1:01:04)
Especially not MCP.
Wilhelm Klopp (1:01:11)
reliably. So for context, the goal with the colo MCP server, or the colo experience in general, is just that the AI agent can have access to runtime information about what happened in your Python code. What were the traces stored? What were the recent errors that happened? We can give you a very, very detailed...
like a stack essentially of like every function that was executed in like whatever request you just served or whatever script you ran. So in theory, it's very useful, but you know, the MCP tools don't like get called reliably and it's like unclear like, yeah, I think basically the workflow is just like awkward at the moment. Like unfortunately, it seems like just making an MCP server doesn't automatically deliver the best user experience. So, but I have some ideas for like how to get around it. And I think I've made some
MattCarey (1:01:54)
Yeah.
Wilhelm Klopp (1:01:58)
some progress on how I wanted to work. And I'm very excited about this Claude code SDK, which we'll see what comes out.
MattCarey (1:02:03)
SDK. find the MCP thing
is super funny because it's like people have built before you opened up an integration, you opened up an API and then everyone had to work through the pain of like building to something that you didn't really care about that much. You just opened up for people to use. Now it's the other way around. You open up an MCP server.
And then you first like actually have to see if it works and that the barrier for entry for seeing if it works is not like, oh, I can call it with these like funky functions. It's like, I actually have to put it into Claude and try it. and you're, it's, it's never going to work for a shot. So I think the pain of the integration has moved a lot onto the provider, which I think is quite, is quite fun. Or if you're engaging with that process.
Wilhelm Klopp (1:02:30)
Right.
Lu (1:02:35)
I love it.
Wilhelm Klopp (1:02:37)
Mm-hmm. ⁓
Lu (1:02:38)
Right.
Interesting. mean, we need better debug tools really at this point.
Wilhelm Klopp (1:02:49)
Right, it's a good point.
MattCarey (1:02:53)
Yeah,
yeah, yeah. So yeah, I'm going to jump in with what I'm going with at the moment because I actually have a better debug tool for MCP and it's going to be good. It's going to be good. So I'm building this MCP hub, which is like a home of AI integrations.
Lu (1:03:01)
Ahhhh!
MattCarey (1:03:09)
So you can start a server, it to Cloud. You have all of the config is all that. It's like copy and pasteable and all the authors all set up and it's all quite neat. Like multiple people can use the same server and they can like store context in the server and it makes that very easy. Like the non-developers in my work can use it, which is really fun.
And then we were like, we could just ship this. But we're like, what would make people actually want to use it? Because it works really well as an internal tool. We're like, my god, to do this, we had to build this really hacky playground that's kind of like Inspector, but you can use multiple models. ⁓ And yeah, well, we're going to ship that as well. So that's delayed my ship a little bit, but hopefully I get to demo it at Tinkerer's next week.
Wilhelm Klopp (1:03:43)
Mmm.
that's cool. no
way. that's great. Yeah, it's interesting. feel like it's like you need for sure better debug tools or better ways to like, you know, when you make a website, you can just like hit refresh and you can see your code run, right? With an MCP, so like, it's like, let me work back to this point of the conversation where like, hopefully it calls my tool. So like, I totally get that whole thing. I also just think like in general, right? Like, if you do believe in a world where like,
Lu (1:03:52)
Read.
Yeah.
Wilhelm Klopp (1:04:14)
it could be conceivably useful to have hundreds of MCP tools or dozens of servers installed, which feels like reasonable to assume. The AI needs more guidance about when to call which tool, because you don't want to... Especially if these tools are supposed to kind of do stuff for you in the background, it shouldn't just be like, look up the documentation from context seven. That's not the point of this whole thing. as soon as... So in that world, you need not just the tools,
Lu (1:04:21)
Yeah.
Wilhelm Klopp (1:04:41)
and you don't want the user to prompt it. So then you also kind of need the user to put something in their system prompt, like always use context seven or like when is the visual thing, always use TL draw or like when there's a runtime thing, always use colo or something like that, right? So to me, it's like better debug tools, but I wonder also like more like customizable agents or like more access to the agentic loop where you can say at the end of every user message,
MattCarey (1:05:00)
Yeah. Dude.
Wilhelm Klopp (1:05:06)
do these things deterministically or like check this thing or maybe like, so MCP tools are obviously the thing right now, but MCP also has resources, right? Where a theory, the LLM can just pull in what the server offers to the system or whatever. Maybe they should be pulled in more frequently, like automatically, I don't know. Lots of questions, no answers.
MattCarey (1:05:25)
Dude, know
what we were talking about ages ago, like a staging area in the system prompt where you can put like the most active, the tools that would be active next. So you can be like, use this tool to do this, use this tool to do this, use this tool to do this, and then just only show the relevant ones. Well, me and Sunil had a chat about MCP, like an MCP manager, like a router almost. And this is for people building B2B SaaS. So it's not like,
Wilhelm Klopp (1:05:31)
Yes, yeah, yeah, yeah, yeah, yeah.
Yeah.
MattCarey (1:05:51)
people directly using it. But imagine a router. like a HONOR router, you just go app.get and then like the URL, like the path, and then you can put a function in there. But imagine a router where you can be like, router add server, and then write like a specific reason of why the LLM should call this server, what this server's for, and then attach the server. And then what happened,
Wilhelm Klopp (1:06:14)
Right.
MattCarey (1:06:15)
was
when the router ran, it generated this system prompt that was constantly changing depending on which servers were added. So there was this like overall, there was this like top level system prompt that had just the names of all the servers and then a quick description, like a short description. And then when you added a server, it was like, and these are all the things you might want to do with it. It like added those extra things to the system prompt. I released it in crossroads. It's like, it's like a very like beta.
Wilhelm Klopp (1:06:37)
That sounds cool.
MattCarey (1:06:40)
Like alpha, alpha, let's say alpha thing. Go on. What?
Lu (1:06:43)
know where this is going. You know where this is going. Right?
And I'm only half joking. In fact, I'm not even joking that much. You need an MCP server for MCP. I'm not even like... Like, you're like, I need my...
MattCarey (1:06:50)
Gone.
Yeah, no you are gonna, but every server is a
Wilhelm Klopp (1:06:58)
Hahaha! ⁓
MattCarey (1:07:01)
client and it is all, they're made to be chained together, or at least that's what David says.
Lu (1:07:05)
Yeah, I know, but like,
okay, it's time. It's time. You know, like enough people have jumped into it now. Now it's time to say, hey, just hook up to this MCP. ⁓ Yeah, yeah, yeah, yeah.
Wilhelm Klopp (1:07:07)
Mmm.
MattCarey (1:07:15)
Master server, the master server that works out.
But then it's like a sub agent and then you're like, my God, this sub agent now needs to work out which servers that start and stop. And then the sub agent, yeah.
Lu (1:07:26)
Right, that's the, okay,
but like, okay, you do as a user or like, you know, as an agent director or whatever you call it, I don't know. conductor, yeah. You don't wanna have to make all these micro decisions on a large scale about like which things to use or not use. So you kind of wanna offload some of that to someone who's put in the time to like have some good opinions, right?
Wilhelm Klopp (1:07:35)
Hahaha!
MattCarey (1:07:35)
A conductor? A conductor
of classical agents?
Lu (1:07:53)
and you use that as like your entry point. I guess it's like the router thing, but like, come on, may as well just call it MCPMCP, right?
MattCarey (1:07:53)
Yeah.
Yeah, at this point the router should just
be like, you should just be able to go export router and then just host that and then that is an MCP server. Yeah, that maybe you're right, maybe you're right.
Lu (1:08:08)
Oh, I don't know. I don't know. It's just like, it's right there. I'm CP, I'm CP.
MattCarey (1:08:11)
That's fun though.
That's fun. MCP Squared. Yeah, I think, well, we are the MCP podcast now. I'm sorry. We are the MCP podcast.
Wilhelm Klopp (1:08:15)
There you go. The official. ⁓
Lu (1:08:17)
You know, the MC people.
Wilhelm Klopp (1:08:20)
I'm actually going to an MCP conference on Friday. There's literally and it's paid as well.
Lu (1:08:24)
They already made one. They already made one.
MattCarey (1:08:27)
Dude, in San Francisco last week,
had a thousand, didn't you have a thousand people at like a Wednesday event?
Wilhelm Klopp (1:08:32)
Exactly, yeah.
It was MCP night. my God, have MCP. Wait, let me, I have an MCP poster. I have an MCP sticker now. my God, it's so good. Get the poster. All right.
Lu (1:08:36)
and second, I mean.
MattCarey (1:08:41)
Go get it, go get it, go get it, go get it, go
Lu (1:08:41)
I have an MCP tattoo! I
MattCarey (1:08:44)
get it.
Lu (1:08:44)
named my first born child MCP!
Wilhelm Klopp (1:08:47)
Hahaha!
MattCarey (1:08:48)
This is actually really funny because one, my colleague is called MCP, like her name is MCP. Like, yeah. No, I'm serious. I'm serious. Her initials are MCP and she's very confused. And secondly, this is like, I don't know. I think it's like Aperol spritz for nerds. know, like people get really excited about it.
Lu (1:08:54)
No, no, you're joking.
Wow.
Wilhelm Klopp (1:09:02)
Look at this.
Yes.
Lu (1:09:07)
love it.
Wilhelm Klopp (1:09:08)
Well, there's ⁓
Lu (1:09:08)
Hey, boyos, I have to go. I have to go. I love how in your, was it first episode, one of you was like, shit, we've been talking for way too long. We have to go.
MattCarey (1:09:12)
Okay, yeah, okay, we'll shut this down, we'll shut this down.
Wilhelm Klopp (1:09:16)
Thank you for joining us.
I'm gonna go to
MattCarey (1:09:22)
Yeah, and that was
Wilhelm Klopp (1:09:23)
lunch.
MattCarey (1:09:23)
like 45 minutes. This is like over an hour now. We're not going to become an hour long podcast. Yeah.
Lu (1:09:25)
Yeah. I feel like we could talk so much more. ⁓
I appreciate you for reaching out and getting me on.
MattCarey (1:09:33)
Luke,
well, thank you for being the first person on our podcast as you were the first person at Demo Days. I think it's a running theme. We had to follow on from the theme because Demo Days worked out so well. It was... ⁓
Lu (1:09:36)
Yes. Yes. ⁓ thank you.
Yeah, I
mean I'm looking forward to I mean This was a great chat, but I'm looking forward to seeing who else you get on as well. So yeah No
MattCarey (1:09:52)
Yeah, we've got... Yeah, this is it. This is it. You're one and done. One and done. It was dreadful. We're never doing it again.
Wilhelm Klopp (1:09:53)
No one else. This is it now.
No, this was awesome, Lou.
Thank you. Appreciate it.
Lu (1:10:03)
Yeah, thank you so much. MCP out.
