Selling SDKs in the era of many Claudes | Steve Ruiz from @tldraw

In this interview, Steve Ruiz, founder of tldraw, discusses the strategic and technical dimensions of building and selling a source‑available SDK in a landscape dominated by AI‑assisted development. He explains how offering a self‑hostable SDK bridges the gap between commercial SaaS and open‑source, providing data‑sovereignty for customers while giving the company valuable feedback on feature priorities. Ruiz contrasts the SDK model with traditional self‑hosted applications, noting that an SDK is architected from the start for third‑party extensions, whereas most self‑hosted apps are not. He describes the shift in customer demand from GDPR‑driven data‑privacy concerns to AI‑driven internal tooling, where companies need full control over the canvas API to integrate with agents, CRMs, and knowledge bases. The conversation covers performance engineering efforts in tldraw—moving overlay rendering to a native canvas, replacing lodash set comparisons, and compressing point data with 16‑bit floats—to achieve 100‑120 fps on large boards. Ruiz also shares his experiments with hardware (Android Daylight tablet, e‑ink devices) and the desire for a “mostly” product that ships as source code meant to be finished by the buyer. He highlights the emerging use‑cases of spatial AI agents (“fairies”) on the canvas for collaborative brainstorming, tutoring, and code‑to‑diagram workflows, and points listeners to starter kits, the tldraw.dev site, and upcoming masterclass events. The interview wraps up with reflections on community engagement, licensing, and the future of SDK domination in a world where developers increasingly demand sovereignty and AI‑enhanced tooling.
Chapters
Well, friends, we're here with Steve Ruiz. And Steve, I think the way it's best to kick off this pod is that we have had a couple Twitter DMs back and forth, and one thing you said was, uh, you're kicking off this new year trying to figure out how to run a software company in the age of clouds. I think we're all kind of feeling, trying to run something, maybe our lives, our careers, our software companies, our latest new thing these new superpowers we have in the age of Claude. So how do you feel about that statement? Like, when you share that with me, how— what do you, what do you feel when you hear that back to you?
Yeah, right on. Let's, let's just dive right in. First off, thanks for having me on. Uh, I was just saying, been listening to you for, uh, yeah, for a while, for years. Really enjoy the conversations that I hear here. Yeah, running a company— so it, it is a weird time to be a programmer. I think it's also a weird time to be someone who's trying to decide what to program. There are things that were on my roadmap for 2026 that I finished in the first week of 2026 that I expected to take, be like a Q3 type of project. Essentially every hard part about having a startup that it has suddenly become harder, actually. The only part that's become easier is the actual producing of code, right? But the alignment, the reviews, the, how do I position this? It's a technical product. I sell the code, right? How do I make sure that we are picking projects that play to our strength in that position rather than producing the same thing that someone else could make, like with a, hey Claude, could you please fix this or please add this feature? How do I comport to the community with regard to, contributions and issues and things like that. TealDraw is not open source in the normal sense. It's not like MIT licensed, but it is open. It is source available. And until very recently, we just took, you know, like we participated in that contribution ecosystem just like an open source project would. But like that's had to change as well. We could talk about that. And then all the, you know, like the communication overhead in order to, to know what we're all doing at the same time when you're running a team like this is just become harder because everyone's moving so quickly, right? And even the differences between how quickly people are moving no longer seem to directly relate to their seniority or their, like, you know, anything. It's like suddenly everyone can contribute at a level that is much more impactful on the product and can just do more of that. It's just really hard. I don't know. I'm sure everyone else is kind of experiencing the same thing. But just to put a name on it, it's just, it's weird and it's hard and feels very new and exciting, but certainly weird and hard.
Weird, hard, new, exciting. Those are great adjectives to describe how we all feel, I think. It's kind of funny that you mention, you know, the roadmap you have for the year and in the first week, and then really just the paradox of choice, really, because when you have a to-do list that gets done in a week or two, well, now you have a lot more choice because you've— maybe actually you might have less potentially because you didn't plan well enough to have an exhaustive list. But it, for me, it's like a paradox of choice where you have so much to choose because you can go so many different directions. And, you know, without maybe some prior knowledge or some wisdom, you can sort of get lost in the "Oh my gosh, I could do so much, so I should do so much, so I do so much." And then you get this cycle that sort of just churns into your life in some way if you allow it to.
I mean, I think everyone's had that experience of— well, I don't know, hopefully not everyone. I've definitely had the experience of going to bed and being like, "Ah, shit, you know what? I didn't queue up any work tonight. My clouds are just going to be sitting there waiting for me to wake up in the morning." We better get them something to do. And, yeah, I've had a couple of chats with friends of confused partners to be like, "What exactly are you doing, and why is this important?" And, yeah, I think, especially for programmers who like, I don't know, I like to optimize, I like to play Factorio, I like to set up machines that sort of run themselves. And now that I can do that with programming and with coding and really other things as well, it's hard to not do that in a way.
You almost feel ineffective to not have planned ahead to put a little Ralph loop going or something like that. I should write 17 specs today so that when I'm sleeping, Ralph can churn, something like that.
Might as well. It'll just be idle otherwise.
Yeah, I don't know if that's a good solution, but I do feel like that's a pressure on the aware. I would say it like, not everyone has that awareness. There's a lot of folks who obviously are aware of the era of claws that we're in and the era of AI-assisted development and all that stuff. But somebody who's like truly steeped in the minutia of running multiple claws, that's someone who's like truly aware of the guilt potentially that you would put on yourself for not planning ahead and not putting all the clods in the motion overnight.
Is it, is it guilt, Adam?
I think it's fear.
Yeah, I guess it's a version of FOMO, at least what I'm seeing.
And Steve, you can respond because you're— it's your emotion. But I'm not saying you're personally afraid, but I think a lot of us are. There's a fear not of missing out, but a fear of being left behind. And we've always said around here, open source moves fast and software world moves fast. And I feel like in the last 12 months. It's gone from fast to like, you know, Olympic skiing downhill, you know, and they're just, they're just flying down that mountain. And there's a coming onslaught of software. I mean, it, you're already feeling it. I already see it. So many announcements, so many new things, things ramping up so fast. I think it's a fear of being left behind, like with your product, with your skills, with your business, whatever it is where it's like, I'm wasting, you know, if I don't have my clouds running while I'm asleep, you know, somebody else does. So there's a sense of urgency that's not new, but I just feel like it's ramped up and you can opt out of that. But then, you know, we have this fear of being like useless eventually. And if you're not doing something with something, then you're kind of useless, right?
Somebody else is.
Yeah.
Right.
Yeah, I think that that is the thing.
But it's also teemed with excitement as well. Like when you're flying down that— I mean, I'm just watching the Olympics, so like when they're flying down the side of that mountain on these skis and they're going for speed, right? Like they are— there's fear there because you crash going 90 miles per hour down a mountain, like pain. But it's also fun. It's also exciting. They also enjoy it. And so it's not a, like, a univariate emotion because also you're like thinking, wow, look at all the stuff I can do. That's, that's an amazing opportunity. If I'm not doing stuff all the time, I'm missing out on more opportunity. And so I don't want to say it's just fear, but there's certainly like this fear/excitement. This is why we use all the adjectives right now, because we're just trying to describe how we feel about it.
Yeah, and I think that those two things in combination are really, really powerful and kind of remind me a lot of like gambling, you know, type of like toxic things that people will say about gambling.
Very much.
Yeah, like a little danger.
And I— yeah, like, I mean, uh I go through phases of watching TikTok a lot and I'm currently in a TikTok watching phase and somehow the algorithm is, I must have watched one of these gambling addicts talking about their gambling addiction videos for more than, you know, 10 microseconds longer than the algorithm designed.
Just long enough to get another one. Yeah.
Exactly. And there's a lot of like, you know, like, hey, you gambled away the house, you know, type of content. You know, where it was like, well, hey, at least I was trying, you know? Like, had I won, you know, that would've been a life-changing thing for our family and I was doing it for us. And it's like, okay, that, like, I can kind of make sense of how that would make sense, you know? And I think with, and there is a lot of this sort of like fear and excitement mixed together. And yeah, when using these tools and stuff, absolutely, I feel like, In the same way that I really felt the need at one time to learn TypeScript, like, way early, you know, even when it was still, like, just part of, like, the Android ecosystem, or not Android, what was it, Angular ecosystem, right, that was using TypeScript. I was like, well, this is clearly the future. Like, this would be such a high signal, like, good thing for me to be good at, because, like, if I'm good at this, then, and the industry goes this way, like, that'll be just great for me. Like, I'll be able to do more. And there've been a couple of these times where I'm like, oh, well, this is clearly the most important thing for me to learn and to be good at, like an expert at, and using, like, AI coding assistants, using these tools, without a doubt, like, this is the most important. Like, if I wanted to become good at anything, this is the thing to become good at right now. Not because I'm not even sure that the industry is gonna shrink in the way that we've talked about, but it's just like, The amount of, like, the stuff that you can, the amount of power that you can have within an organization, within an industry, with, like, just being able to say, "I can ship this much, this fast, based on this understanding, and allow us to have the time to iterate, like, you know, 6, 7 more," sorry, I have a 7-year-old, "6 or 7 more iterations than I would've otherwise," you know, and be, deliver this stuff that would've remained on the backlog, like, so much faster and everything like that. Like, it's just so high impact, like, so high impact.
Right.
Absolutely, you gotta work on it, right? And at the same time, if you don't, if I don't learn this, if I don't, like, develop these skills, if I don't become familiar with, like, how to use whatever cloud code and how not to use cloud code or something like that, I might become irrelevant, you know? Like, those skills that I have right now just might be, or that the things just might jump ahead so quickly that I'm no longer able to make sense of the next jump. That's also a big fear for myself. One of our engineers went on a year-long kayaking trip last October, and I'm thinking like, my God, when Alex gets back, is it going to be even possible to make that— will any of this make sense, right?
Still on the trip or is Alex back?
Yeah, yeah, yeah. No, no. Alex is kayaking for another 6 months. Okay.
I was going to ask if he made the, you know, how it went, but yeah, still happening. Wow.
I mean, I do think it's interesting that Peter Steinberger, right? The maker of OpenClaw, like, you know, this was like the first technical project that he's, he had a programming, you know, background, had worked on some incredible like developer products like before, but like had also been on a essentially in retirement, like not looking at computers type of thing until, I don't know, 6 months ago, 9 months ago when he got back into programming AI. This might be apocryphal actually, now that I think I'm saying it out loud. But like that, on the other hand, you know, maybe it's possible to come back into this with fresh eyes without that continuity and just be like, oh, clearly here's how I'm going to use these tools. But it is a fear of mine that again, like I won't be able to make sense of that next jump. But I also, man, I love the fact that we can, the things that last Friday I was going into the weekend and I'm thinking, you know what, we've been talking about doing this comfy UI style, image pipeline starter kit, right? TealDraw, it's an SDK. You can make anything on top of it, but for infinite canvas apps, But we also have starter kits for, hey, if you're going to make a workflow tool, here's a workflow starter kit. Or if you're going to embed this thing inside of a chat, here's a chat starter kit or a multiplayer app starter kit, that type of thing. And we had been talking about doing one that was kind of like ComfyUI. Are you familiar with these types of software? It's like a pipeline for AI image generation. So you say, generate an image of a cat. Okay. Generate an image of a landscape, use a mask to pull the cat out of whatever image you generated, compose those things together, and then make all the, I don't know, Instagram ads or whatever people use this stuff for. But, uh, and it runs asynchronously. It's like a, like a workflow thing. Um, and we've been saying like, uh, you know, TealDraw would be perfect for that. Let's make a starter kit for that. Um, but we knew it would be complex. We knew it would, you know, be a couple of weeks of work and, you know, okay. But last Friday, I'm just like, you know what, Claude, I can describe this to you. I can point you to, you know, 6 or whatever, a number of other products that kind of have these features and stuff. Come up with a minimum spec for the feature set of this thing, and then just build the starter kit, like, go for it. And 2 hours later, I remembered that I had fired off Claude to work on this, and I I load it up and I'm like, my God, this is like 80% done. Like, you know, okay, I need to guide it. I need to, you know, make sure there's not any feedback.
There's only 80% left.
Yeah. Like I still didn't write any of the code myself, but I just kind of steered the UX of it and the architecture and stuff like that. And we shipped it today. Like that was a 4-day, 5-day, like a shipping cycle for something that I really expected to to take weeks of a focused 1 or 2 engineers, you know, to really get across the line. And like, that's amazing. Like, I love that. Like, that's like, forget the fear. Like, that's just awesome. Like, I want more of that. Like, I can't believe it. Like, pinch me, you know?
Yeah.
So, but how do you plan for that? Now that I have, you know, we joke about having a zero backlog. At TealDraw is that we've gone through all the PRs, all the issues and stuff. We've identified them. We even had different AIs do some research on all the bugs and everything like that. And it's just like, if in 6 months there's still any issues left, would we be surprised? Is there any reason why we wouldn't be able to chew through all of this stuff? Either closing or ignoring or saying, we're not going to work on that. But even just building a prototype for some of this stuff, see if, see if it works.
Well, more software, more bugs for sure. But maybe not if you have a bug churn or something like that, that sort of all it does is look for bugs, you know, even like deterministic simulation testing. Like there's ways you can deploy that beyond the database, which is traditionally where you've seen it at these higher level higher-order places. There's a lot of places you can apply that kind of thinking, even to sort of in the background try deterministic things seeded with an idea, just to try things you would never do. And now you might even actually employ or deploy that kind of tactic in your code base, which largely will just help you restructure a lot of things. Maybe you've written it poorly, maybe Claude wrote it poorly, maybe whoever wrote it poorly, and now you gotta rethink how you turn your knobs and levers But now, now you can actually take the time if you hadn't done that from the origination of the project to comb through the project because you might as a human spend weeks just looking at your codebase to see how you can apply DST to your project, just to restructure so you can do. And now it's like, well, yeah, that's kind of like, let's just do that because I'm not looking at that code. I'm not going to spend I'm not gonna miss my child's birthday because I'm looking through the code. No, I got— I've deployed some sort of, uh, you know, infinite loop that helps me do that kind of thing and make that kind of plan. And so now maybe we have more code, but now it's even more possible to have more code and no bugs. That's a strange potential world.
It is. It is. It is weird. Like, I used to use this kind of, um, I don't know, it's not really a trick or a mnemonic device or something like that of just being like, hey, if I just fell off my bike and hit my head and just, you know, kind of like came to in this startup and with these, you know, the current state of like our codebase and the current state of our customers and all this stuff, like, what would I think would be the most important thing to work on, right? Like, to try and clear the— just try the exercise of like clearing out the sunk cost or the momentum or the continuity and say like, okay, if I just started fresh right here, like, what would be the most important to do or what would I do next essentially. And I'm feeling like I have to do that every 6 weeks now of like, okay, wait, hold on. The parameters of what's possible have shifted. Is this thing that we thought was a good idea before or thought was a blocker or something like that, or even a principle of the company, is that still relevant? An example of this has to do with our documentation, our changelog, and the way that we keep up communication around the SDK and around our releases. So TealDraw, we ship the website tealdraw.com every week, and then we ship the SDK every month. And essentially, the.com, which is free, tealdraw.com, free whiteboard that people can use, and please do, it's really good. It's a lot like Excalidraw, is how people describe it very often. Right. Which is, you know, we're friends, don't worry about it.
You probably predate Excalidraw, don't you?
No, they predate us. In fact, one of the reasons I started working on this project was I had implemented a, I contributed to Excalidraw a bunch and implemented a feature there. And I was like, wow, this codebase, because it was very organically, very open-source kind of codebase.
Yeah.
I'm like, this was harder than it should be to add this feature here. And like, you know, there are like 100 switch statements in this codebase where you switch on, you know, like whether you're dragging an arrow versus like, you know, drawing or something like that. And I could kind of see the, I was already thinking in this mode just based on my other open source projects, but like, I was like, I could kind of see the outlines of an SDK, right? All those things are pluggable rather than hardcoded. And yeah, I did pull down that thread a little bit and it turned out that there was a demand for it.
So you had the SDK in mind from day one, pretty much.
This started as, yeah. That's very interesting. So the.com was and kind of always, kind of still is, essentially a demo of the SDK, but it's a demo that has I don't know, I think, like, 130,000 registered users and, like, half a million monthly, like, users, because you can use it while logged out.
So, it's a good demo.
It's a very good demo. Yeah. Luckily, we get a lot of the infrastructure at reduced rates, so we haven't had any pressure yet to do it. But it is a good thing. It helps us. We license the SDK. It's awesome to have something you can send to your boss. But, like, yeah, we release the—.com is part of what it does. It's a demo, but it's also a place to, like, dogfood the SDK before we ship it, right? So, it's like, yeah, let's have our half a million people just kind of fuzz test over this thing and report bugs and crashes and things like that. Rarely happen, but, you know, it's good to— it gives us confidence. But the communication around Okay, here's what's in the next release, right? That's really hard. It's really hard to maintain because, like, PRs are going in all the time. It requires this, like, manual narrative synchronization across, like, the team. And I'm sure this is a problem at any team, right? And usually requires a lot of kind of, like, middle management and product managers in order to be able to have a cohesive story of, like, this is what's happening in TealDraw. For this next release. But this is what's happening in the codebase. But yeah, now I have an automation, Claude code runs on a Mac mini in my living room every day that says, what are the PRs that landed in the last 24 hours? What is the current state of this, like, next.md file? And let me just create the, essentially the release notes that we would publish today, if we shipped what was on main right now. And that just happens every day and it's good. And we spent a lot of time making it good, but it's still, it's like the idea of having that document, like as a startup, as 15, 20 people, like that's terrifying. Like making a commitment to a high effort thing to maintain that is not like, like tests don't fail if our changelog is wrong, right? There's no way to automate around that. And to say, like, to customers, yes, you can look at this document because every day it'll be up to date. Like, that's the type of commitment I would never have made. Just because it's like, if it's wrong, like, I won't know it. And like, it's gonna require constant, like, recommitment to the work there. And so, those are the types of things that we just didn't do. We didn't do intentionally, like, from a strategic level, like, we will not do these things that require all this maintenance. We need to do things that are automatable, that break loudly, and so forth. But these days, in this case, like, wow, I guess we can just do that. We can publish docs every time we land a PR. We can update the changelog. There's a lot of things that, yeah, it just changes what's possible, I guess.
This is all coming from somebody who, if I understand correctly, you are writing code daily. This is not like, hey, you run the company and you're sitting behind the scenes. You're active in the day-to-day. What is that like to, I suppose, not only be in charge, but also be in charge and still write code on the daily? I guess direct code maybe is a better way to say it.
It's not that different than how it's always been. I mean, like, This has always been, I mean, there have been times where I've written less code because I don't know, we were fundraising or I was doing a lot of hiring or other things, right? Or where, to my great shame, most of the code that I wrote would happen on Saturday mornings or evenings. There was a bizarre time where TealDraw went from being my nights and weekends project to my company, back to being my nights and weekend project, even though I still was running the company. But yeah, the thing that has changed the most for me is that there were a lot of things that I had to say kind of no to or not now to because the time required to do it was a lot and because the work itself was very opinionated or very tasty, taste-based type of stuff where it was subjective, right? And Teal Draw is full of those types of things. In fact, that's kind of its— one of its value propositions, right? Is that like, what does a good arrow look like? I don't know. A good arrow could look like anything. But you know what? I know what a good arrow looks like, and I will ensure that our arrows are great. And that's just one of those things.
Amazing arrows, by the way. Thank you.
The best I've ever seen. And the best years of my life went into those arrows. But yeah, like some of those things, like, okay, they're just hard to work on because the iteration is gonna be slow, or it's just gonna be like, it's gonna take multiple shots at this before I understand the problem, really, all that type of stuff. But they're not necessarily things that I'm super comfortable handing off to other engineers because they're, I don't know, they're, yeah, they're clearly a Steve feature, and they should be a Steve feature, but it's really hard for me to commit to Steve features during the times where I'm most busy. But I feel like I can work on those features a lot better these days because the work of the programming, the work of getting it to a point where I can, like, say, "We're going in the right direction or not," and then doing another iteration or trying a different direction, all those things, that time is just compressed. If it is a kind of a design feature, design interaction or something like that, where we're not really sure how it should work, we just have to do a lot of different, take a lot of shots at it, which is the place where I add the most value as a programmer, that stuff has accelerated massively, right? Because at the end of it, I might throw all of those versions out and say, okay, well, now I know what the feature should be. Let's even hand off that thing to get built by someone else. Or let's take that extra time in order to review it or something. But the decision-making within the design phase of these features, it's massively accelerated because, yeah, I can run multiple coding agents at a time trying different things. I can analyze things really quickly and, yeah, just take more shots on goal, I suppose.
Do you find yourself wanting to be in those details more then? Because like, here's where I'm trying to go with this, is that I feel like there's this necessary slowdown, not because you can't go that fast, not you physically, but the organization, given the new constraints and levers we can pull. I almost feel like folks will want to go a little slower, not to go slow, but to be in the details, to be in the Steve features, for example. Do you find yourself sort of lifting off the gas a little, not because you can't push it down, but because you want to personally be involved in very particular Steve details? That's an interesting question.
I think it depends. I think it depends on whether I'm working— if you can think of, especially with TealDrop because it's an SDK, kind of as a tree, there's the very core parts of the SDK and then There are the things that depend on it, right? There's like the kind of the, the TealDraw.com being a thing that depends on the TealDraw kind of core library. There are these starter kits, right, that depend on the core library, but nothing depends on them. TealDraw.com needs to work because like users depend on TealDraw.com, right? But we have other things that no one uses. I mean, like they don't have users, like the starter kits don't have users, the documentation doesn't have the same, like, relationship to user data that the.com has, things like that. When we find ourselves on those, like, leaf nodes of that tree, like, things that don't have any dependencies— Go fast. Go fast, like, full throttle. In fact, like, you should, because it's, like, an opportunity to practice going full throttle, you know?
Yeah, you learn to trust the model, trust the system, you know, trust the— letting go, even.
Make some mistakes. You might as well, because this is a place where you can do that, and you won't be able to do that on the kind of the core, the more dependent upon parts of the whole operation. The other place is internal tools. We have business intelligence tools that we've built for ourselves. My sales guys can look at a summary of, oh, which PRs are landing, and like, okay, put that in a language that I can understand or something. Like, abstract this for me. Tell me which types of customers I might even mention this to. We're putting in accessibility features. All right, well, here's how to talk about this to customers. On the flip side, I can look at sales and I can see— I'm essentially just taking all of the CRM data and handing it to Gemini and saying, tell me a story about this. Pull out the stuff that matters. And also just tell me if, are there any product insights that have come out of these conversations or the meeting notes, et cetera? Just give me something to work with and I can just refresh that anytime I want, which is great. This is another thing that it would be insane for me to tap my account executives on the shoulder and be like, hey, stop what you're doing and write me a 500-word essay about the deal that you're working on. But it would be great to have, right? It would be awesome to have. It's just like, I would never do it. Now I have that, and it's not perfect, but it's not load-bearing either. So it's still great. Those internal tools are another place where we've just ripped, and then sometimes they're broken, sometimes they're not broken.
It's definitely the era of internal tooling, I think. You can build so many things that help you move the data points you have. You're giving an example here where things fall through the cracks, not because you don't have humans involved, because clearly you have humans involved, but it's that the synthesizing the data out of certain artifacts has just largely been impossible. Not because it's been impossible, because spending the time on it has been impossible. And now you're sort of freeing up this data to you as a visionary and someone who has clear taste to make choices that you could never really make before. You didn't have the data, you know, the data available to you.
I didn't have the data in a— I didn't have the insights, I suppose. Like the— yes, I think like Granola, like I use Granola for my meeting notes and stuff, but I never read the meeting notes. Like it's cool to know that there's a summary of my meeting, but I just, I don't refer to it. The only time that I ever use it is when I shove those meeting notes in, in a big group to some other LLM and say like, hey, can you pull out some, you know, how do I, how could I be a better, how could I improve my one-on-ones or something like that, right? Right. Because that's the type of thing where normally I would need a consultant or a coach or a, I don't know, therapist. No, maybe not a therapist, but like, you know, like I need some other expert. A version of it. It's a feedback loop. Yeah. Like to, to do some real thinking about these particular artifacts, which by themselves don't really mean anything. Like, or at least don't, don't mean anything to, to me. The HubSpot, you know, the, the amount of information that goes through a CRM every day is just massive, right? It's a working tool. It's just like a Git, you know, a code repository. Like things are coming in all the time. Like you can't stay on top of it. You can work within that, you know, but like actually zooming out is very, very difficult. Um, and, and yeah, it's fantastic to have essentially an army of consultants that I can just throw at all of these things.
Uh, here's what's interesting about you're saying this, that you, as someone who's leading, you're able to stay in the minutia while zooming out, which has largely been next to impossible to have the macro and the micro at the same time. Without losing major context in your brain. Because you can kind of like just let Granola do his thing behind the scenes and summarize 10 or 15 conversations you've had to some degree to learn, for example. That's a, that's a macro. The micro is the day-to-day when you're in the minutia of what is the feature, how are we moving things, you know, how I'm automating cloud, all these things. And you don't have to give up the other to get the other. And I think that's a That's a unique position to be in. That's the thing. I think when you have these AI skeptics out there, which I was an AI skeptic, and Jared and I were both like, gosh, this, this hype wave, is it real? Is it not? And we all kind of were there. I think until you've gotten past that, that threshold to see what's beyond just the word AI, or the, I guess, the acronym in this case, yeah, uh, that you can truly understand what is possible for someone who knows how to fully leverage and stay in the details, but also zoom out?
I think I'm really lucky to be a technical founder because I kind of know both sides of the problem, right? Or I'm learning both sides of the problem. Oftentimes these internal tools are a way for me to learn about a part of the company that I might not know about. So it is like I didn't know how our CRM organized data, were, you know, some of the routines until I was like, all right, well, I want to build a tool to help me visualize this or help me understand it, right? And just like anything else, right? Like, I'll learn the things that I need to learn in order to build the thing that I'm building. And oftentimes, I try to build things that will force me to learn the things that I need to know, that I know that I need to know for other reasons as well. But also, just like, Yeah, I know the, like, I'm, it's not that I know what the AI stuff is capable of, but I know the problem and I know the type of problem that I can solve with AI and having a bunch of analytical, like, intelligence problems, like where the bottleneck is cognitive work is in a way a kind of like a luxury, right? Like it would be very hard for me to think of things to do with I have no problem finding use cases for using whatever AI models because so much of my life is trying to get that macro, right? It is trying to get the intelligence or insights out of a— even with only 15 people, it's still a complex system. We're producing knowable things all the time, whether that's bugs or customer feedback or code or conversation with customers, or I mean, you name it, our analytics and all that stuff. So, at the moment, I feel very, very kind of, like, lucky to both have a problem which can be solved and can be, or at least can be addressed with these tools, the ability to work with those tools, the capital not to worry about the cost of working with those tools, which is fantastic, but enough of a problem to really sink my teeth into without having it be the same scale of problem that you might have, you know, I don't know, at a Shopify or something like that, which, yeah, you couldn't really fit into your head, or maybe you could, I don't know.
Tobias may push back on that.
If anyone can do it, it's Toby.
Yeah, I think, speaking for the audience, Tobias Lücke, the Founder and CEO of Shopify, who went from bespoke, uh, random Ruby app storefront to Shopify, ICO, stock market, massive, which is cool.
Uh, Canadian powerhouse. That's right.
Yeah, that's for sure. A feat of nature, for sure.
Tell us about the SDK business. What is business like selling SDKs?
So what's like some advice that I got like really early on when I I started the startup, which is that like, if you feel like you're doing anything really creative with your lawyers, then you're probably doing something wrong. Like if you're asking any like original questions to your lawyers, then you're probably like, stop. Because you're like, don't do that. Like don't try and break new ground in terms of anything like that. And I think, you know, similar advice with go-to-market is that like starting a startup, selling anything is just so hard that if you find yourself innovating in the go-to-market or if you find yourself innovating in the thing that you're selling, you should ask yourself, is that really what I want to be doing or should I just be using a much more normal go-to-market and just focus on differentiation, product market, all that stuff, right? Unfortunately, selling an SDK, there's not a lot of great examples of companies that have gotten past, you know, a certain size selling code, selling npm libraries, essentially, right? And so, yeah, we find ourselves in the uncomfortable position of having to kind of innovate in how you do that, right? And experiment much more than I expected. The good news is that we're kind of figuring it out and that a lot of the, and I'll talk about specifics, but when I started, I was really scared, honestly, that if I try to commercialize this thing that I sell to developers, then people will not accept that, right? If you require a license key in order to use an npm package or something like that, then your adoption will go to zero, right? If you put a price on something, then people will just immediately create an open-source alternative to it or something like that. Somehow I think we've actually kind of made it out of that problem pretty well. And, you know, like, we're not break-even, but we're going to be close, and we're probably going to actually break even like this year. Congrats. Even with like 20 people, I think we're going to do do that this year. But it's interesting. And some of the decisions that we made about changing our license, about how we work with license keys, how we identify people, all that stuff, in retrospect, I'm so happy that we did them. And again, I'll talk about the specifics, but when you look at some of the things that have happened this year, the kind of the big stories in open source and the big stories in developer tooling, like, they're not happy stories. They're mainly stories about how AI is, like, really disrupting the revenue channels, the kind of traditional revenue channels around open-core software, right? And that's not been the case for us. Our story is closer. It's not as good as Supabase's, but it's closer to Supabase's in the fact that, like, Models recommend us, people use us, people like us, and then people pay us, right? That we're delivering value and we have the mechanism set up to capture the value that we're creating. That's great. If I were trying to sell premium features on top of TealDraw, which is one of the things that one does with this type of thing, I would be terrified right now because Oh, it's just some code on top of a known open-source library? I can do that all day. I can have 10 of my Claude's doing that at once. But if it is, all right. So anyway, selling SDK, the way that we do it, TealDraw is, we distribute it on NPM. Again, it's source available. You have to sign in a CLA if you want to contribute. Yeah, it's not MIT license, it's under essentially a commercial license.
Which license did you actually choose? You said source available. Which one did you choose? Was it self-made?
I think we adapted one that Microsoft used.
I don't want to interrupt, I just wanted to get that clear when you were going through this all.
No, no, no. It's the TealDraw license. I think the important thing is it's not AGPL. It's not, like BSL or the kind of common ones. Honestly, for most organizations, either it's MIT or it's Apache or it's nothing, or it's, okay, we'll talk to sales. Either it's fully permissive in a way that is not going to complicate your next funding round when the lawyers do due diligence and they say, hey, why are you using this this library? Do you have a license to use this library? If it's not totally compatible, like fully, you know, don't worry about it, it's MIT, just go nuts, like, do whatever you want with it. And it's not AGPL or GPL, where, you know, there's requirements on the parent organization, like, that your app needs to be open source as well or something like that. If it's anything else, it's basically all the same. which is that, okay, we're gonna have to buy a license. We're gonna have to arrange an alternative license that we can use. So, TealDrop's license has its little particularities, but essentially it's not permissive in the same way that MIT or Apache is. So, yeah, there you go. Gotcha. Everything else kind of fits in the same bucket, which is not permissive. Anyway.
Anyway, what it is, is like being source available and choosing your license is super important to run an SDK business. That's why I wanted to get that clear, because yeah, yeah, yeah, the license you choose and to make your source available is where the rubber meets the road in terms of adoption and even experimentation, and obviously converting to a customer if you're a true— if you're beyond the, you know, the the development, now you're actually in production with it, for example. But continue.
I just want to get that clear before we go deeper. Yeah, yeah, yeah. Gosh. So, we are— SDK business. This could be a 3-hour fireside of, like, how— I know it could be. Just the story of how this thing evolved. I'll tell you the current— You know what? No, I will actually go into a brief history of it, right? First, the V1 of TealDraw was MIT licensed. It still is if you want to use that version. When I formed the company, we basically rewrote the thing and that version was in alpha and that alpha was public under Apache license. But there was always a statement basically like, we're probably going to change our license when we hit 1.0 unless we just decide to do something completely different. But if we're going to maintain this, if this is going to be the project of TealDrop, which is the SDK, like, we're gonna change the license. And yeah, when we did the 2.0 of that, when we released that version of it, it was just a non-commercial license. It's just like, you can use this in academic work, in student work, in things that don't make money, or, you know, inside of companies that don't make money, I guess, or maybe not inside of companies. but if, if you wanted to use this in a, in any commercial settings, you need to buy a license. Um, how much does that license cost? I don't know. Talk to me. Then we, we, we just put that out there and crossed our fingers and, and hoped that, uh, anyone would show up. And I was shocked that a ton of people showed up and, and we did, uh, almost a million dollars in, in revenue in that first year with like such a bare bones, like go-to-market, license structure, you know, sales structure, anything, right? It was just like, let's negotiate every single deal and try and figure out how much value we're providing and argue that TealDraw is a valuable thing. And we have this very simple, like, you can't use this in a commercial setting, you can use this in a commercial setting, you know, under these sort of conditions. All of the licenses that we sold at first were perpetual, meaning like you pay, you get a year of updates, and then if you want to buy another year, like you get another license. Otherwise, you can just keep using those updates that were released within that year, like forever. I don't care. I mean, it's really like the most generous type of commercial license that you can imagine. But I needed to know whether anyone was even out there. Like, if we had sold $100,000 worth of licenses with the most generous terms possible, then, you know, we could only sell less than that essentially with more restrictive terms. But that's the way that we did it in the first year. And I say we, but it was just like, just the way that the 6 of us came up with as the way to do this that would make sense is that we needed to validate this because there was no guarantee that anyone would be willing to pay for this. But yeah, by the end of that year, we had switched to a system where you could use TealDraw even in production, even in commercial apps for free, but it had a big "Made with TealDraw" in the corner. And that was our kind of like V3 watermark license. If you wanted to get rid of this "Made with TealDraw," then you'd have to, by license, but you could use it. Anyone could use it, even in a commercial setting with this watermark. And part of the reason why we did that was we needed to know where this thing was being used. We started to realize that we were bottlenecked in selling the SDK and just knowing who was using the SDK so that we could talk to them. And that little— I mean, there was no license enforcement for the V2 or the V3, I think. No, for the v3, there was, but it was all local. Like, we're not pinging a server or anything, but I made sure that that little SVG was hosted on a CDN. And we could look at that CDN and say, okay, who is requesting this little watermark SVG? And that gave us at least some idea of, like, which domains were using this, who was using this. Okay, we should go talk to, you know, this company because they're clearly using the the watermark or something like that. Maybe they're gonna wanna become customers. But it was bad. It was a bad idea. And it was a bad idea because when we did talk to customers in that setting, they wanted to pay much less for TealDraw than they would've before when there was no difference at all within the SDK, except for a piece of paper that said you could use this in a commercial app or not. And it was because, like, in the minds of the customers, the conversations we kept on having were like, ooh, Well, that sounds like a lot of money just to get rid of a little SVG in the corner of the canvas, right? Is that we had essentially anchored the price that we were charging to the pain of this little watermark rather than the value or whatever of the canvas. People were building, investing. There would be like 20 people working on top of TealDraw and stuff. They're putting millions into this project. But, that SVG really didn't feel like more than $10,000 a year. Type of thing. And so, the summer of last year, we kind of did the next iteration of the license, which was much more restrictive, which said, you need a license key to use this thing in production. It will not work in production without a license key. You can use it locally. That's fine. But As soon as it detects that React is in production mode, if you don't have a license key, it'll just disappear, right? Which was pretty extreme. We balanced this by saying, if you have a hobby project or a non-commercial project or just something that is a student project or anything else, I'll give you a license key forever for free. I don't care. And if you have something in between a commercial project, not commercial project, you're kind of evaluating it, here's a 100-day trial license key that you can use. And at the end of that trial license key, either you can decide not to use this, or you could say, actually, this thing is just gonna be a hobby project. I'll, you know, give you one of those licenses. Or you talk to sales and you, you know, if you're using this in a commercial app, you can, you can, uh, you can do that. The reason why we did that and the reason why this was like so important, besides the fact of removing that like low anchor to the price point, was that it allowed us to know who was using this. Like, if a person signs up for a license key and says, "Here's my email," or, "Here's the domains where this license key needs to work," like, that is such a, like, you know, we don't blow up their inbox right away, but, like, that's a person we can talk to, right? We didn't really have that before. We were just constantly trying to chase, like, okay, where did our watermark load, and all that stuff. Now, of course, the developers who are using this, the developers who are getting, like, login keys and are on our Discord and stuff, are usually not the people who decide whether to buy TealDraw, right? Like, they're the experts who are gonna bring this into their organization. They're the people who are gonna answer the question, how do we build this thing? Do we build it ourselves or not? But they don't always have the, the company credit card, you know? So oftentimes we don't even ever talk to the actual developer who, like, you know, whatever, got a license key or something like that. We don't care about that email address, but it gives us enough information in order to start looking at, okay, well, who in that organization is probably running this project? Who should we reach out to? You know, who should we try and get an intro to? I don't have a huge sales team, and I think I have a really good sales team, but that's the type of work that they do in order to actually make deals happen out of this interest. And all of those things currently are working really well. And we have some, I don't know, Google's using TealDraw in a product. Shopify is using TealDraw in their internal products. Autodesk is using TealDraw. We're growing within these companies and almost all of the AI design tools that are out there right now are using TealDraw for their canvas. It's awesome. It's really good to see something that I didn't think was possible at all, which is to make a venture-scale, potentially venture-scale company based on front-end tech, right, actually start to kind of like, you know, for the engine to at least turn over, you know? And it's really, really, yeah, it's encouraging.
It's exciting. It's even more interesting that your distribution is via npm. You know, you're not even really having to pay for your distro.
You're just— Dude, we don't pay for it.
In the sense that you don't have to rely on the infrastructure, right?
The things that we don't have to care about are insane. Right?
Yeah. I mean, super high margins.
For a while, the biggest cost to TealDraw, apart from developer salaries, was DocuSign. Just because the cost of doing business for a product like this is so low. Now, developing it, expensive, of course. Engineers are expensive. Other infrastructure is expensive. Our biggest marketing tool, TealDraw.com. We have really great relationships with like our cloud providers and things like that, or Cloudflare. But, you know, it's still, it's, it's like compared to a normal marketing budget, totally reasonable, totally acceptable.
You know, this is a weird analogy. I just literally thought of this in this moment because I want to make this point to compare to SaaS. That's my point. Like, I get your argument and I 100% agree with it. But my suggestion is that it's largely margin-based. In a much higher scale because you're not SaaS. And it's kind of like, uh, the concentrates that don't ship with the water kind of thing, you know. I just heard that Minute Maid is no longer making their, uh, frozen cylindrical thing that they would sell you as a concentrate anymore. And I thought it was kind of cool because like here you got Minute Maid, uh, shipping this thing you've had in the freezer probably since you were a child, right? Not maybe that too, Maybe a 20-year-old version of it or something like that.
Probably the same, the same tube. Yeah, yeah, yeah, right.
But you got this concentrate in this tube that ships without the water, so you got less cost, right? You got, uh, more that can fit into the case, maybe dramatically less weight, so a lot easier to maneuver around.
Inventory cheaper. Yeah, of course. Yeah, all the things, right?
And now they're kiboshing this thing, and I'm like, whoa, how is that a thing? Because like, that's like an SDK versus SaaS. Like SaaS is me giving you the whole bottle with the water and everything. And the SDK is like, here's your concentrate version of it. Do what you want. You don't have to put it in water. You could put it in something else if you wanted to. So this is like the SDK version of it.
I mean, I think the— okay, so there's another conversation that I've kind of been watching happen, which is about the impact of AI coding and other things on SaaS. Why the heck would I pay for this if I could essentially build it in a weekend, that type of thing? Which I'm gonna prevent myself from diving right into that, even though I think it's really, really, really interesting, and it will have an impact on Tildraw's future as well. I think selling an SDK, yes, absolutely. Like, our margins are good, right? It's just that the, you know, you can sell a, If you add the water yourself, you can sell it for 3 times as much, right? And all those other problems about inventory efficiency and things like that, they're solvable problems, right? They're complex, but they're solvable. And I think SaaS similarly, like, oh, it'll require a lot of infrastructure. Like, yeah, okay, we can solve that. Like, oh, but reliability will be a problem. Like, security will be a problem. All right, we We have people, we have capital, we'll solve all those problems. And then we'll be able to sell our canvas, like a Miro or something, sell the whiteboarding experience for millions of dollars a year for enterprise, right? Makes sense, certainly has made sense. From a how hard is my life perspective, selling an SDK is easy. What's your security, Steve? I don't know, what's your security? I'm never going to touch your data. I don't care. What do you, like? I don't know what you're talking about. That's a great response. I don't know what your security is. Exactly. Like, I am not involved in that problem. Like, that's the, that's part of the whole point.
You can literally say, I don't know. I don't know.
You know, like, hey, can you build this feature? Like, well, no, but you can build that feature. And in fact, here's how, and here's 1,000 examples of how to do it. And especially these days, like, It's trivial, you know, to customize this stuff in some really deep, deep ways. Like, that's exactly what we've built this thing to do. So much of the normal places where, like, support, like, all this stuff is just like, it is crazy where we don't have to spend time compared to almost every other product that I've ever worked on because we are one step removed from users. right? Like, we are, we're not even exposed to the same risk that the, the, uh, our customers are, right? Like, we sell a lot into edtech. Edtech is brutal. Oh my God. Like, you're, you're, you're on the line for, you know, the, a government changes the way that it, it distributes, um, you know, funding within a, a school district and like, and you just lose that customer. Like, or you lose all of the customers within that, that state or something. It's crazy how hard those people are fighting. Nothing but respect for people doing business in education technology, but we're not directly related, like we're not as exposed to that problem as those customers are. We're providing the tooling for them to build their product, right? And our customers take on that, I suppose, the investment, the risk of bringing us into the product, and it's our job to make sure that we do the best we can at the thing that they brought us in for. But like, every now and then we're like, how many people are on TealDraw.com? You know, like, how many people have registered? We're like, oh, I don't know. Let me go check. Like, oh, cool. It went up. But like, yeah, our attention is towards things that are, the seas are a lot calmer in selling an SDK. It's just not obvious how you sell an SDK.
Have you done a masterclass?
I mean, we got the, uh, the short version here for listeners of the pod, but is there, is there like here's how to sell an SDK.com, or like do you have anything with that? Because I'm sure there's others that would like to skip to the end because you went through a heck of a process to get there.
Yeah, I'd like to talk more about that, and that's something that, that myself and my, uh, I had to go to market, um, Phil Lowe also talk about a lot, which is that like, man, they're This is new information in a way that I didn't expect to kind of be producing new information, kind of to back to what I said at first is like, these are not the problems that anyone wants to have, but they are the problems that we have, uh, or the places where anyone wants to innovate, but it is a place where we've innovated. And, uh, yeah, I'd like to talk more about it. I spoke recently with like the CEO of like AG Grid. AG Grid is like a data grid component. Almost the exact same story as us with regard to the go-to-market. 100% inbound ourselves, 100% inbound, right? Trying to change that, trying to change that. I mean, we have a lot of differences in terms of how we price. That's the other, man, pricing is a really challenging part of this. But the, uh, you know, there, there's, there's, there are companies out there that are doing the same type of thing, but there's not a lot of like literature on it. There's not a lot of like best practices or anything like, it's still very, very new way of, of, of running a business. Mm-hmm. Um, just on the pricing, there are so many ways of pricing, of charging for like an SDK use, use like this. And kind of fellow travelers here would be maps, like Mapbox, right? No one's gonna build a map. They're gonna buy that or they're gonna license it. Text editors, data grids, kind of charts and diagram libraries, like if you're doing a lot of automatically laid out charts or even Mermaid.js at a certain point, you would wanna be customer of them.
It's kind of like frontend infrastructure.
Yeah. That needs deep thought. It's not something you can, you could probably do some of it over a weekend, but you have to have extreme institutional domain knowledge that you've obviously got. Yeah.
It's a, my, my line is always like, look, you guys could do this. Like there's nothing, I mean, I think we're a pretty special team of, you know, people I've tried to build that special team, but like, at the end of the day, we're programmers. You guys are programmers. You could build TealDrop. Yeah. You just— I wouldn't want to. It would take a while. And then if you got it right— Let Steve do that, please. Let Steve do that. Even if you got it right, no one would notice because that's just the way that the canvas is supposed to work, right? I could build a text editor. If I did my job right, you wouldn't be able to tell that I built it. Yay. Right? That's a terrible— Not the best use of my time. No. And there's enough bad canvases out there that I can point to, or at least subpar canvases out there that I can point to, to say that you might not get it right, or you might have to ship it early, and your users will know, and here's something that you can use today, right? It's a strong value proposition for companies that know that they want to use this type of thing. But how much is that worth?
How much are people willing to pay for that?
The biggest number that we put in front of a customer was half a million dollars a year. Our average deal size floats, but it's not half a million dollars a year.
Yeah, what was the response to that offer?
Yeah, well, I think that the conversation with the half a million dollars a year guy was like, we are a consultancy that builds large projects and we only have one customer. Basically, we were a consultancy with one client. And I was like, that's an interesting— who is your one client? They're like, it's the US Department of Defense. That's pretty common actually. Yeah. And yeah, I was like, oh, okay, cool. And they described this project and I'm like, man, this is like, it's all the things that we would want to have is like, well-funded. Yes. Needs to work and needs to be good and needs to be something that they can rely on for the next 10 years type of thing. Basically, like, all of the ticked, all of the boxes of the things that would lead me to believe that TealDraw is going to be a major part of the slew, whether this deal even happens or not, right? Whether this project happens or not. So not every project is like that. Obviously, there are a lot of projects where TealDraw plays a very small role, even in a big project. But yeah, there's a number of apps that just would not exist without TealDraw just because of the kind of the lack of alternatives, number one, but also just the unviable, it would not be viable to build this themselves and then build their product on top of it. So those people probably just would've done something else. Anyway. Yeah. How much is that worth? Well, we're figuring that out. Talk again in a year. I'll, uh, okay, try and have a better answer for that.
That's part, I think, the detail to be in those negotiations, because like when you're in those sales negotiations, it sounds like you're learning too about your customer, how like how your value permeates into their, their software stack, and truly what your value is. Like, that's, I think, like I was kind of like taken aback by your desire to negotiate every deal, but that's also a learning process you have to do for a measure, could be a year or even two or potentially a whole entire version like you've done, because that gives you a learning process.
It gives you a learning process. I think everyone should try that as well because it also gives you an opportunity, really low friction opportunity to just ask for more money. And everyone says like, oh, you should raise your prices, raise your prices. But like, it's a lot easier to just, you know, come off of a call being like, all right, those folks agreed pretty quickly to the number that I put out there, maybe on the next call I'm gonna, you know, ask for a bigger number, right? And there's nothing wrong with that. Like that is the process, right? You can just iterate on it faster. Everyone does it, but you don't have to change your landing page. The other thing is that like one of the things that we took away, just kind of again, like the, how do you sell an SDK thing? When I first started talking to customers, I would be pricing based on how big the customer was, right? And a lot of, like, a lot of SDKs will do this. They'll say, like, AG Grid prices based on the number of developers who work on the project that's gonna have this feature in it, right, that's gonna use the AG Grid codebase, right? Or, like, how many times will this component load, or how many minutes will this thing be active, How many connections or all that, right? And what I found was that the pricing based on the size of the company did not make sense. A lot of times we're talking to small teams at a really big company and we want to be in that company. We want to sell to them. We want to be, have them as customers. But in order for that to work, we have to bring that price down. But now we had, we're going to give that whole company a license to use the product for like a small price. And so, the kind of the genius unlock was just saying, like, all right, this is a— because we were negotiating, because we had that ability to make these types of moves, we could say, hey, you're a large company, let's just limit this agreement to just that feature, or just that application, or just that part of the product. And I'm happy to give it to you for whatever. A price that would seem out of fit with the size of the company, right? Right. But hopefully, you like it, and hopefully, other people at the company see this and say, "Oh, I want that in my part of the product," or hopefully, it grows, and then we have different agreements with those teams or those other, or we renegotiate this agreement next year or do whatever we have to do. But that type of thing would've been really hard to do with, like, a pricing calculator on our landing page or something like that. That would have been really hard to do with a number of connections per, you know, charging per connection or something like that. So, it's terrible because, like, again, as a programmer, I like to automate things. As a software guy, like, I like to set up systems, and nothing could be further.
Yeah. It seems like so inefficient to just negotiate each time through, you know.
But, but it's— you just got to do it. Uh, like, there's— otherwise you're— yeah, yeah.
I think once you find your deal repeating itself, that's when you're like, okay, I've done 20 of those, let's turn that into potentially a package. Or I've done— like, gosh, I gotta customize this proposal again, but it's been the same thing the last 10 times. Maybe it's time to, you know, dial in that particular type if you're able to. Yeah, that's where I found it. Is selling an SDK similar or exactly the same as self-hosted? Are they the same?
Good question. Cut differently. I don't know. Oftentimes what I see with self-hosted is that there's a commercial app, right? Like Sentry would be a great example, right? Like you have a hosted commercial version of the product that you can also self-host. I think Cal.com is similar. There's like There's a lot of these. And I think it's a good model, right? Because you get a little bit of the best of both worlds. You get broad adoption that will tell you what features are really important. People will request anything, but once they start building it for themselves, then you know that they really need it. And so having some sort of open source or some sort of self-hostable path is a great way to learn about your customers, if nothing else. And I think having your code be open and/or available and self-hostable, all that, kind of keeps you honest. And I think it leads to a higher quality codebase, leads to a higher quality product. You can't really hide in the same ways that you can. There's reasons for it. And some people just want to care about open source in ways that I wish I could. I wish the model worked for us as well, because I also do care about these things. But in that case, you're giving a full product and you're saying you can put this product on your servers, right? It's different than an SDK. The SDK is like, here's the engine, go build software on top of it. It's like the thing that you get when you use TealDraw is that engine. And of course, in order to make it easier to adopt, we've built a lot of these starter kits and modules and things like that, that you can use to, for example, do multiplayer collaboration, like, really good as well. We nailed it with the backend. And that backend is not a service. That is, here's code, put it on your server or deploy it to Cloudflare yourself. Like, I don't wanna ever touch your data, and I won't. But it's, yeah, like, it is all the things that are kind of sitting around this SDK that help move it. But like, hey, we want to build a comments feature, you know, on top of TealDraw. And is that part of TealDraw? And I have to say like, no, that's not part of TealDraw. Or can we just have tealdraw.com but inside of our own, internal organization, I have to say, like, no, actually, you have to kind of build that layer yourself. And I have to say, after, like, 4 years of saying no to that, I'm having second thoughts about whether I should be saying no to that. But the interesting thing is, and here's what I was talking about, about, like, AI kind of eating SaaS products or changing the way that SaaS products work. At the beginning, the companies that were asking for TealDraw kind of, like, in a box, like, can I just have, like, an application around this SDK? They were almost all motivated by concerns of data sovereignty. So they were like German or like, you know, or European, and maybe they were part of a university or government, or they just felt very strongly about this. And they were like, we can't use these SaaS products that all are based in America because of the data requirements in, in our country or in our organization, right? Or we have to use open-source software, we have to use software that we can modify ourselves. Or they were like in air-gapped facilities, you know, like we're, we're in an engineering facility that is, uh, you know, 200 feet underground, and, uh, and, and we need to collaborate, or we still need to do these, these things where we're still a technical team or a business, but we just can't use SaaS because we can't access the outside internet. I'm calling you from the parking lot type of a conversation. That was how things— that was the type of inbound that I was getting before. And that's not very motivating. That's not very interesting. There is a market there, but it's not the most interesting market to go after. I'm not going to pivot the company because of GDPR. I don't want to be the GDPR alternative to Miro. Doesn't sound super interesting. It is an opportunity and there is actually a GDPR thing that markets itself that way. Anyway, whatever. These days, the reason why companies are coming to us saying, hey, we want TealDraw in a box or we want to have an application around that is almost entirely because of AI. And the way that they describe it is like, we are building these really cool internal tools, these agents within the company, and they're great. I'm summarizing pretty heavily, but they're great, but they're bottlenecked on two things. They're bottlenecked on context, how much do they have access to essentially, and they're bottlenecked on essentially like agency, like what can they actually do? The external SaaS products, wonderful. They solve the problem, right? The Minute Maid comes in the bottle. You can just drink it. You don't have to worry about whatever. But you have no control over the API surface. You have no control over the feature set and you have no control over what they allow you to access or do within the application. As an example, we use Notion. I really like Notion. I've been using Notion for like 8 years now or something like that, right? And they have an API and that API is really good and they have like an MCP server and that MCP server is really good. But I noticed that they don't let you get the past versions of documents. You can get a page, but you can't get like the history of updates to that page. It's in the application, like Notion UI, lets you see that. And Notion's own agent can tell you about the history of a page. But if you're using it programmatically, like with an AI MCP server or just the API, you can't get that information. And I was trying to build a thing that would summarize, here's what changed in our Notion this week. And that was just the end of that story. I could not get that information. The only other way that I was going to get that information was doing a daily cache of like pull everything, every page that has changed. And I'm like, this is silly, right? And TealDraw is a small company, right? Like the cost of that bottleneck is relatively small, right? Like I'm not relying on that agent, I'm not relying on that feature that would've used Notion's history to like generate revenue for the company or something like that. It was just intelligence. It would be cool for me to know. But for a lot of companies, yeah, like the fact that maybe their entire whiteboard that they had during the onboarding session or something like that is essentially in a black hole on some online whiteboard SaaS product, that's a problem for them. Like, that's a big problem. They can't get that information. They can't access that knowledge. They don't know, you know, like the systems that they're building just don't work as well as they could if they had access to that information. And maybe they wanna write into that same situation in a way that isn't so mediated by the API surface of the SaaS product. Anyway, those are the types of conversations that I'm having these days with teams that are looking into, okay, what would it cost? What would be reasonable if we wanted to replace this external product, this SaaS product, with something that we owned ourselves? And that's, that's a much more interesting conversation in my opinion.
Sovereignty is key in that case. I think that's a, a great example. I want to throw a potential target into your hat, and I might be wrong, but the, the next best thing to a whiteboard is a reMarkable. So a personal whiteboard. And I know this very clearly because I love my reMarkable, and I'm sad because it's downstairs, it's not right here. And I'm really sad about that because I usually like note take and doodle. I'll write your name 17 times. It's just, I don't know, it's a, it's a muscle memory thing. You might think I'm over here not paying attention, but I'm really just drawing and having fun. And it's, it's how my brain processes. I'm an audible learner and I learn by writing things down, as strange as that might be, like this analog process. And so it's my personal whiteboard. Uh, the cool thing about Remarkable is that they do have a developer mode. But it's kind of like you're going off this beaten path. You kind of like, they kind of treat you a little weird in the Remarkable, uh, but it runs Linux. And so right now one of the things I'm doing is I wrote, because it doesn't have an API, I'm like, well, I can install a Go binary on there and I can act as the API because I can traverse the path and it's Linux. And so I can be the, I can make my own API essentially. And so I have my, I have my own that I'm working on right now. A Remarkable API that I've just dropped on this thing and it's doing some cool stuff. But by and large, like, it's sort of in this black box. And I think at some point they'll change that feature and I'll kind of be on an island again and not have my Go API Remarkable thing that's sitting there doing some cool stuff for me. But this infinite canvas is totally a Remarkable. Like, that's how it works, right? And all you have to figure out is, do you want to be a hardware company? And do you care about e-ink? Because those are the two things that are really cool. Anything else you seem to be able to build upon, and I love their principles, the SDK nature, the ability to give people sovereignty over the thing that they get to build with your tool. Like, you have that lens, you have the street cred and the reps on that front. So if there's a market you want to compete with, I would say hardware and Remarkable, because they are not cheap. They're, they're fairly expensive. $600, $500, $800 is like the, the measure between them. But by and large, they pay themselves off. It's like the note-taking I've been able to do has just been tremendous, more than I've ever done before. And I go back to them. But the Go SDK in particular— or sorry, the Go API I put on it— is really helpful for me because it can actually take that, OCR it, turn into real notes elsewhere, and do all these cool things for me that now I can throw into large language models, things that I can automate just by writing down when normally it would just be a piece of paper that just goes into the ether. Because that's what we do with paper. You know, it sort of is this unlock. But my suspicion is at some point they're going to change that developer mode, they're going to change how they feel about developer mode people, and lock me out of that feature set because it's not core. They have Remarkable Cloud, they want you to pay for it, and I'm cool with that except for I'm like, that's largely overpriced. Can you just give me the device with Linux on it and let me do my own thing like I can a computer? And their answer is no, because they want to sell you this platform, this rented platform. I think we're all kind of pushing back on this rented platform aspect in this new era. That's why I asked you about SDK versus self-hosted, because I feel like sovereignty and SDK and self-hosted will become the words of '26, '27, '28. Like, we're gonna, we're gonna all want those things because we can largely control our world more.
I think there's something new that we're going to see. And by the way, like, boy, have I been tempted by the hardware.
Well, the moment you do, put me on the list, okay? Well, put me on the list now.
If you have an Android tab, I have a Daylight computer, like an Android tablet that uses a, it's not an E Ink, it's like a transflective screen, but it's black and white and it's, but it's like 60 frames per second and it's really good. And there's a new, actually the team who works on this at Android, a new ink algorithm API in whatever Android Jetpack new alpha ink thing, whatever. Fantastic, like super good code, super fast, low latency, predictive, all that stuff, right? Think of PencilKit for Swift, but honestly better for Android. They actually came to the office to show me this stuff when they were in London. And I, last year, at some point, I vibe-coded like an Android, my first, very first Android app that uses these things just because I wanted to draw on this Daylight computer. And yeah, I flatter myself by saying I think it's the best drawing experience that you would ever have on an Android, even at 60 frames per second, even on a fairly low-spec piece of hardware. I just haven't released it because I'm not actually an Android developer. I don't know how to do these things. But if you do have one of those, I'll send you the insider link from the Play Store. But no, I think that there's something actually new that we're going to see. And every week there's a question of how much do I want to bet on this being true or not. Self-hostable software is also different from an SDK because the self-hostable software, it might be well-architected, but it's not really designed to be extended any more than just, like, the application itself might be designed to be extended, right? Like, hopefully, the code is good in ways that allow new features to be added without having to rip everything up. But in the same way that, like, I don't know, Excalidraw, it was really hard for me to add new features to Excalidraw because it was just an app. Like, at the end of the day, it was just built like every other app that I've ever worked on. It's kind of a little bit complex, whatever, under the hood, but it worked. An SDK is built entirely in anticipation of third-party code. And that has such a huge impact on how the thing comes together. And it's just, it's very, very, very different type of codebase than you would have with just a normal application. I've never seen that same approach taken at the level of an application because, like, why would anyone design a whole application in anticipation of third-party code, right? Like, that's just not a thing that you often see on the market. And anyway, like, that's not the thing. Like, who would buy and then build on top of, like, maybe, like, a white-label solution? But even then, like, you have a pretty narrow API surface layer, right? But I could totally imagine, and we're gonna try this, but to say, okay, you know what, let's build that layer around TealDraw with the assumption that people are gonna hand this to their, whatever, AI coding agents and say, well, in our organization, we need this thing to be tied into HubSpot because we're constantly, like, sorting deals and looking at org charts. We're gonna need all these extra features on top because that's That's the way that we collaborate, right? Those are the features that are unique to our company. Or, you know, I know that the software has organizations and then teams and then members of those teams or whatever, but in our, you know, agency or whatever, we also have a lot of external people that we need to have certain permissions. And I know that's different than what this codebase has, but like, make it happen. Rather than using an SDK and building everything around it, you might just have these situations where, like, here's a CRM or here's a Notion-like competitor, a knowledge base that works out of the box. You could use this kind of vanilla, but the thing that you're buying is source code. And the thing that you're buying was built with the expectation that you are gonna build on top of it, and then you're gonna kind of complete it, that you're gonna add the water yourself, you know. It's just bigger. It's just like, it's not just a little part, it's not a component. It's like, here's the whole application. And it was designed that way. It was architected that way. It is distributed and priced and everything like, within that expectation, which is different than an SDK and different than a self-hostable thing and different than SaaS. I don't know what to call it. I bought the domain mostly.software, the same sort of like, oh, yeah, it's mostly complete, it's there, but, you know, it's fundamentally unfinished because the presumption is that you, the consumer, will finish it yourself. But currently not using that domain, but we'll see if I put something else out there. That's kind of the thesis. You should call your, uh, your remarkable—
you should call it Mostly.
Mostly. Yeah, mostly. Almost. Mostly. I don't know if that's a good name or not. Struggling. Yeah, I like the word mostly.
I mean, me and a friend used to say mostly a lot. It was just a thing, I guess. But, uh, contextually it doesn't make any sense here, but it was funny to us.
All right, if it's a— if it can be a meme within the, uh, within your friend circle, then it can be a star, at least for sure. Yeah, exactly.
I know we're here like basically at the, uh, at somewhat, I would say, a version of the end because we're getting close to time, but it seems like you're at a mature state and you're in optimization where you're like able to dial in things that, uh, you may be able to. And so I actually, uh, had my agent do an examination of your codebase, and one of the things it thinks that you're optimizing for, and you can correct me if I'm wrong, Or if they're wrong, is you're optimizing replacing lodash is equal with an optimized set comparison. So reworking your draw shape encoding to binary, things like that. And then maybe sync collaboration, maybe an enterprise play, pluggable things, things like that, like your SQLite storage versus Cloudflare Durable Objects. Can you share any details around how you're— yeah, if that's true for 1 and 2, if, uh, how you're optimizing?
I think our backlog was a lot of optimization stuff that we knew was possible, but we just, you know, it's not that it was low priority, it was just like, it's not feature work. And so optimization sometimes, like, kind of slips. That said, for the last 3 years, every January, we've done optimization work. So it just sort of was the time. And a lot of the development in TEAL Draw also kind of ties into Honestly, our social media also is like, what do I want to tweet about right now? In December, I wanted to tweet about performance. That was just part of the messaging that I wanted to do around the canvas. We were doing this AI stuff at the same time. I wanted to be balancing the whimsical kind of crazy AI fairies on the canvas. I don't know if you saw this. That might not make any sense, but little AI agents flying around the canvas. which is great. It was super fun, but I wanted to balance that with something that was really grounded. And so I looked at some of these PRs that related to performance. And yeah, we're doing some super gnarly stuff of looking at, we've replaced our, one of the layers of, like, Tilted Rock Canvas is made of normal, it's like, a React DOM app. Everything you see is like divs and things moving around and SVGs. It doesn't use like the canvas element. It's like just normal web stuff, right? Which is crazy, but it works. But we were starting to optimize the performance of the canvas by finding places where we actually could use normal like canvas rendering in order to just reduce the cost of rendering, essentially. So, all of the overlays and indicators and, you know, blue shape that shows up when you hover something, we started moving that into Canvas. As part of doing that, we discovered several bugs, I suppose, like places where we could optimize. One was, yeah, we were using lodash to do a set comparison with an array. And the way that lodash does that is it turns the set into an array, and then does the comparison. And it's just making tons and tons of these fairly large arrays. And it was just like, it was very wasteful. So we refactored that. Our draw shape was storing the points, the individual points using JSON, just like, well, just normal objects, right? XYZ objects. And we're like, actually, we can make this much more efficient just by using 16-bit floats, you know, and having a fixed size for it, we'd still be able to pull out individual points if we wanted to, just because the bits are known. So we'd be able to, like, slice into different places. But that would change how accurate or how precise, you know, the numbers are in that thing. But so we'll have to fix that problem. We fix that problem, all that type of stuff. Those are just the types of fixes that you get after, like, 4 years of working on a problem. And a lot of them are just like, this is what works and lets us validate it and lets us ship it. And then we feel confident in, and then, okay, let's continue to kind of look at that flame chart and, you know, pull up 5,000 images or 5,000 shapes and, like, move one of them around. And be like, uh, oh, hey, look, this thing in the flame chart shouldn't be there, or it's too big, or like, let's just pick the biggest problem that we can recognize and just fight it. Um, and we've been doing that for a long time. Um, and, and what's really fun is that a lot of these optimizations like actually change the user experience, but in ways that aren't noticeable. So for example, uh, if you move your mouse around, we need to find out which shape you're hovering, right? And if you move your, if you like pan, if you scroll the camera, then, you know, a shape might come under your cursor. And so we're kind of like, we need to know whether like the hovered shape is no longer under the cursor. We need to, you know, still participate in that even though you're moving the camera. Moving the camera means that the shapes which are culled, which are off screen, might need to come back on and things like that. and so there's a lot of performance work going on. Those are really busy frames when you're panning, uh, the camera across. Um, and we, we found out that, well, in certain cases you wouldn't notice if you were hovering shapes or not because it would change too fast and things like that. So we could actually, under certain circumstances, just not check for hovered shapes while you're moving the camera. As a result for that, actually, on a big, big canvas, busy canvas like that Reduced the frame length for, as you're scrolling across the canvas or something, if you flicked your trackpad or something, by half. That was an expensive operation on a big board, but now we're back to 100 frames per second or 120 frames per second, which God help us is our target, right? Even with a React-based canvas, shooting for that 8 milliseconds. And again, yeah, these are those things of like, yeah, you could build this, you just wouldn't. But trust me, we're obsessed with the problem. We will.
Putting nails under your fingernails. What's the analogy they say? Something about your fingernails, don't do that. Not the chalkboard, that's not the one too. Don't do that.
I don't think you want to put nails under your fingernails.
I think that's an intense analogy. Interrogation technique. Yeah, it's like, just don't do that to me.
Toothpicks, right? Isn't that toothpicks? I'll, you know, I haven't seen your price for my organization on your license, but for the most part, I'm thinking, yeah, let's just go ahead and buy TealDraw versus try and build it.
Build the parts of the app that people are going to notice and attribute to you and your product, and then buy everything else. That's what I do as well. I use Clerk for auth. I use whatever, Vercel for DevOps and all that stuff. But yeah, I make the canvas. Cool stuff, man. Yeah.
Anything we did not get to ask you that you're like, man, I really wish you asked me about that here in this moment we're closing out?
I didn't have a chance to talk about the type of actually using the AI stuff with the canvas itself. I mentioned a little bit the fairies. I think this is going to be a big year for that. We've been kind of experimenting with everything that I've seen so far about that type of feature set is incredibly encouraging. People like chat because I can chat with you, right? I can chat with people and I know how it works. If a bunch of people are working on something really complex, you jump over to a whiteboard, right? And it turns out that that works so well with AI that I think this year more and more people will be just shocked that we hadn't seen this earlier, of like, "Wow, this really, really, really works." Any particular clear application you can mention or describe?
In a multi-person whiteboard scenario, I guess, and in the case, how does that permeate into— how does AI fit into that? I can kind of understand, but what do you mean by that?
I mean, we've had situations where, again, the fairies sort of represented our spatially present AIs on the canvas that you could talk to and say, "Hey, clean this up or tidy this up or draw me a picture of a cat or turn this code into a—" Blow out the candle. Blow out the candle. Yeah, you know my content. But we would have our whole team jump into a board, 14 people, and every one of them had 3 of these little fairies with them. And we were all collaborating together, like 14 people plus whatever, 42 AIs. And it was just like, oh yeah, this just works. 14 people, 42 AIs. I've never been on anything even close to that in terms of collaborating with people in AI at the same time. We're only now starting to see, oh, group chats with ChatGPT or something like that. And for that to work and for that to feel so normal, like just all of the UX around the collaborative canvas just translates almost perfectly to working with AI. It was really, really cool. The use cases where we've started seeing this already is education. Like, you know, I want to have a tutor. I want to be working on something. Teach me about this because, you know, it can build on the canvas. It can also see what you've put on the canvas. It can modify what you— this is just like another person, right? All the expectations are the same. And that's awesome. The things of, you know, you can kind of take Mermaid.js and create a diagram of it, but it's really hard. And you can even generate Mermaid diagrams from code or from descriptions of a problem or something like that. But it's really hard to get that data back into the AI, or saying, like, actually, no, I want to change this up and rewire this thing, right? And then to say, okay, now give me the code based on, like, what I've changed, right? Like, we went from code to diagram. Now I want to go back from diagram to code. That's something that, like, an AI agent with access to the canvas can do very easily. Like, all sorts of these sort of, like, back and forth between the canvas and then other artifacts can absolutely do. Just using that as an input or a reference point to, like, for a coding agent to say like, oh no, here's what I want the UI to look like, you know? Or like, can you build out some next wireframes based on like what I've built here? Or can you just finish this thing that I'm making? All that stuff. And then for that to also be collaborative with other humans at the same time, is you're gonna— I think you're gonna see a lot more of it this year. And, uh, I think hopefully we have a, have a role in that as well. But it's, um, it— I, I feel very privileged because I've had these experiences, and I know that like, uh, maybe 100 people on Earth have had those types of experiences. Uh, but they're, they're good. Like, it's cool. You'll like it. Yeah, it'll be a thing by the end of the year for sure.
What's, what's my quickest path to the experience? How could I have that experience?
Probably the closest thing is we have a, one of our starter kits actually at TealDraw is, it essentially looks like Cursor, like a panel on the right-hand side and then the canvas. If you Googled like TealDraw agent starter kit, there's a demo of that. And of course you can whatever, clone it or, you know, npm create teal-draw and select that one. But the only thing that is missing is the sort of the spatial nature. There's nothing flapping around on your canvas, but it is like having a cursor-style agent next to the canvas, and you can go back and forth and draw the cat and say, whatever, draw a candle and make the cat blow out the candle. Or, here's some code, show me it on the, build out a state chart that represents this type of stuff. All right. That all can do. But we should have fairies.tealdraw.com launched by the time that you release this, which is our— we did the fairies feature on tealdraw.com for one month and then we pulled it out and now we're just gonna kind of put it on fairies.tealdraw.com as its own little demo site. So maybe that'll be out as well by the time that this launches, but if not, then soon after. Very cool.
I was trying to get fat finger my way to tldraw.com. I mean, all it is is a blank canvas. People go there like, okay, cool. Kinda underwhelming, but it's also, after this conversation, very overwhelming underneath. Yeah.
If you wanna learn about the SDK, you go to tldraw.dev, and we should be making it more obvious that those two things are related to each other. In the near future.
But you know what, absolutely, tldraw.dev, tldraw.com if you just want to go right to it, or do, I guess it is, uh, tldraw.dev/starter-kits/agent, or Google it as Steve mentioned. Thank you, yeah, yeah, Steve, so much for, you know, forging a new path. And, uh, thank you. I'm looking forward to the masterclass, as Jared alluded to. I know this is a micro version of it. I'd like a long version of it. If there's an email list for that, just put my name in there. I'll, I'll sign up. I want to, I want to hear more about your plans for SDK domination and how you do what you've done, because you've clearly, you've gone down a road not many people have, and you've been successful doing it. So that's pretty awesome. And thanks for being a listener and a fan and willing to spend your precious time here with us. I mean, you're not driving an agent in this moment, so you must have anxiety like, oh my gosh, "Will these guys please shut up and let me go back to coding?" You don't know that, man.
You don't know what's going on.
Check on your work. It's time to go babysit.
No, I've got 15 agents, running agents in the office. All good. And yeah, I post a lot on Twitter. I should say that. If you want to follow me on Twitter or X, I'm @SteveRuizOK. And then TealDraw also on Twitter is our primary way of sharing devlogs and GIFs and all that stuff.
So yeah, I pay attention to you on YouTube. That's, uh, I've checked out several times on there. And then I loved your talk at, uh, I think it was AI World's Fair. I love that talk. Oh yeah, um, it was a good talk.
I think, uh, I think I'm doing the one in London later this year. Maybe I'll do San Francisco.
Yeah, that would make sense because it's like your backyard basically. So yeah, listeners, we'll link up all the things Steve mentioned. We obviously link up to websites and Twitters/Xs. I don't think YouTube, maybe not YouTube, but we'll drop in the show notes for sure. Uh, we'll make sure this in the show notes for you all. So check the show notes if, uh, if you want to go and learn more about Steve Ruiz, TL Draw, etc. Thanks again, Steve. It's awesome. Thank you.
It's great meeting you both.
More from Steve

Group Chats With AI Don't Work — He Built What Comes Next | Steve Ruiz, Founder@tldraw

Founder Fridays: The Side Project that Became a Startup People Needed with Steve Ruiz of tldraw








