Coding with Cursor: Session 4 ft. @shaoruu

Sahil Lavingia and Ian discuss how AI makes software cheap, shifting value to brand and expertise. As AI becomes a sophisticated copy-paste tool, Gumroad bets on culture and content to stay relevant, rotating roles and paying in equity while building what Sahil calls an "anti-work" company focused on saving time.
Chapters
37 minutes. That was pretty insane. So yeah, awesome. Let me just make sure that YouTube is displaying your screen because that's the issue we had last time, was like for some reason YouTube didn't show the screen. But I'm pretty— I feel like it's gonna work this time. I'm optimistic. So where's the fucking live button? I'm streaming somewhere. There you go. Awesome. Yes, it's showing your screen. Perfect. Awesome, awesome, awesome, awesome. Perfect. Okay, let me just email everyone, uh, and then we'll get started, and I'll tweet about it too. Um, boom boom. Publish. X.com. Cursor session for featuring. Your handle, which I always forget how to spell.
S-H-A-O-R-U.
Who use? Awesome. What is the significance?
It's just my Chinese name. I'm from Taiwan.
Got it, got it. Very cool. Awesome. Awesome. Well, I think everything is ready to go so we can get started. Welcome everybody to Coding with Cursor session 4. This week we have a very special guest, which is Ian, also known as Shahru.
Yep, that's my name.
How's it going?
It's going good. How about you?
Doing well, doing well. Yeah, I've been writing using Cursor a little bit before this and it's been fun. So I'm, yeah, I'm excited to see how you use it. I feel like you probably have more insights into how people should be using it anyway than almost anyone else. So I thought it'd be awesome to have you on and I have a bunch of questions from people as well, but I thought we'd start with you building something, coding with Cursor and then we can take questions from the chat and and I have my own questions and I'm sure other questions will come on by as we get started.
That sounds good. So I think what I have ready is a really simple Vite template of just vanilla TypeScript. And I think what I'm gonna try to do is like, I don't even have like a plan in mind. I'm just gonna ask Cursor to sort of wing it. I have a couple of libraries installed, for example, Three.js, which is the thing that I use always for 3D stuff, and also p5.js, which is like a 2D library. What's cool about Cursor is that I'll demo Composer first because it's one of my proudest work at Cursor. What I usually do is what I'm about to work on, I open up separate tabs and I get ready to work on that thing. And since I don't have something in mind, I'm just going to open up Composer. And by default, it sort of populates in 3, um, whatever is open, like the open tabs currently. And I usually just say, like, let's do— I do this a lot just to, like, sort of brainstorm and find inspiration. Let's do something cool with js in main. Uh, then press enter.
Yeah, so this is something I've never seen anyone do, even though I feel like I've been talking to people about Cursor for like a few weeks now, is like using it as a brainstorming— like using it as a very creative partner versus more of a just like do this thing that I, you know, I, I'm— I don't want to write code, so like write code for me.
Oh yeah, yeah.
So yeah, I'm already, I'm already like pretty astonished.
That's great to hear. Um, what's cool is like, I feel like a lot of people miss this button, the Save All button. Uh, it's great for like front-end stuff, uh, usually for back-end too. But what's cool is that you see how like all these files are now dirty, and I don't really know what it wrote yet. Like, I usually go in and read it later, but what I do is I just save all, and then it saves the files to the new version Then I just go and check out what it built. It built some weird cubes rotating around. That's very cool. What's cool about Composer is that you can iterate on it. I could say, let's make the cubes brighter. They're so dark. It says, oh sure, let's make the cubes brighter, blah, blah, blah, blah. Then it goes on and Let's save all. Oh, a log writer. Oh, that's pretty cool, right? And I could do like, if I like the current state, I usually just accept all and then I move on with it. I'd be like, uh, it's all—
accept all. What's the difference? So the difference is accept all actually like sort of finalizes it within the context of Composer. All the diffs go away versus save actually saves it to disk, but Composer kind of keeps the state of the git diff. So if you You can effectively test your changes, but still kind of keep iterating instead of effectively being scared to commit, testing, and then having to undo all those changes if there was something wrong. Is that right, basically?
Yeah, so one thing I really paid a lot of— Baltazar and I, I don't know if you've seen Baltazar, but he's also my high school friend that I got into Cursor. But him and I, we work a lot on making sure accept and reject they worked well. So I always do Save All because if eventually you feel like this series of changes is not what you want, you can just Reject All and then we guarantee that you're back to the state, you know, but back to your previous states. So now it made some changes, seems like it added some vibrant colors. Save All, check it out. Oh, let's do some, uh, I really like some, like, I really like the visuals.
So let's see, what does reapply all do?
Oh, reapply all pretty much just does— you see how these individual tabs, they have a version? So reapply just takes the latest version and reapply it onto the current file. So, uh, Composer is a two-step process. It first streams in the thoughts and the code blocks, and then it then takes the code blocks and individually apply them onto the files. And so reapply is just great for like whenever, for example, sometimes, uh, apply fucks up or like sometimes it like messes up, and then you can then reapply and to like sort of reset. And then let it get it again.
Yeah, it's not like an atomic process. There's like two steps. So for whatever reason, if there's some issue in between, you can just— it's kind of like turn it, turn it off and on again, and it'll just Rerun the last little bit.
Awesome. Yeah, uh, let's just keep building with this. And usually when I get to like a state that I like, uh, I notice how Composer— this is probably like either— like, I usually just reset it. So I see a lot of people doing the plus button, but the plus button is for, uh, like this creating new— this creating new Composer, and then you create a bunch of separate ones. But what when I'm done with a composer, I kind of just want to dispose it. So I usually just do reset. This is, uh, I think is not communicated clearly enough, and that's something we're working on right now. So you could even either do Command+R or like click the reset button.
Yeah, I— what I do is I hit the X and then I do Command+I again. I didn't realize you can just—
yeah, I think, I think the problem with that is like, I think it opens up, uh, the previous one.
But yeah, Yeah, it does.
Yeah. And then you could do, uh, one thing about reset is that if you have diffs, reset does just discard the diff, so you get back to the original state. So that's one thing that people should watch out for. Um, so I think we can just keep building this, make it look cool, and just be like, let's add some evolving lights, whatever. And then we can open up the control panel. This is great to, to see like the overall, overall change. You can click on files and you can see what, uh, the AI did, and it collapsed like the, the lines that are not changed. But I think everybody has different workflows, but I personally like it when it's just a little window right here, and I just do, uh, save all. Take a look. Seems like there's some lights going on. Yeah, so this is going from ground zero up to like a pretty cool demo. This is usually what I do. And also have another demo that I want to show is, uh, this is Voxelize, which is the, the, the library I used to— like, this is the library I've been building since high school that you can build like 3D environments. And just, this is my website.
And yeah, just playing around with it today. Yeah, that's funny.
In this demo, I, I had this idea of like, what if we create a new block, um, sort of like this block? You see how like this block has a, uh, time display on it? Let's create a new block but render Game of Life on it. Game of Life is this Not this one. Game of Life is this cellular automata that I always use as like a demo when I try to demo coding. So what's great about— I think I would use Command K for this. So if I go to blocks, registry, you see how this is where I register all the blocks inside my game. Time, current time block. I can then— one fun fact is the most feature I use in Cursor is actually just cursor tab because it's just so— I don't know, I really like it. It's just right there for you. Let's do a game of Life Block Dimensions. I'm just going to do that. And Faces. Oh, that looks pretty good. Let's do that and, uh, register it. Let's just register it. That looks good too. See, like, that, that's why I really like it. It's like it sort of reads what you're trying to do. And then it just predicts your next steps.
And it's a lot of tab, tab, tab.
Yeah, it's really just tab, tab, tab at this point. I think there's some problem here.
What's the problem?
Seems like there is some problem with Unclosed. Probably just some open-close brackets problem. Wait, was it here before I was here? Oh wait, it's this. Anyway, I fix it.
Yeah.
So now that we have a block, we can go to blocks.ts and then just current— current time, width and height, update. Let's see, let's just world.apply. So you see how like I was editing the registry in Rust and it knows that, oh, now I want to apply the block texture. It just suggested something that I'm about to do and I can then remove it. I'm just going to put some random stuff for now and hopefully it works. Let's see. Oh yeah, it works. We have this Game of Life block now. You see on the top you have a Game of Life block, and the next step would be probably be, uh, I think we should make it like actually render Game of Life on it. Let's see how good, uh, Composer is at that. So I usually with Composer, I like to tell it to do something and then give it an example. So an example I will have for this would be, you see how I do the current time block and it's animated, whatever, do the current. Now I want you to do the same for the Game of Life block, but instead of rendering the time render a whole Game of Life in the texture. Well, I sure hope it gets it. We'll see.
And similarly, it takes— so it takes the entire files, all the open files, as context.
Yeah, so in this case, in this case, this is just one file. And so it seems like it's going off. So I created this setup_game_of_life, which is great because I have a setup_portals. So create this setup_game_of_life and, uh, is now drawing to it. Let's see, let's see what it did. Yeah, so it called setup_game_of_life here. So I think there's some linters. So Composer automatically sees the linter errors inside your file, so You can do like, I think there are some linter errors. Let's fix. Or usually I just say fix and then it'd be like, oh, you're right. Go ahead. Yeah, fix.
Soon you'll just say F.
Yeah, or just be like, bruh, go ahead and fix it on the spot. Let's save all to try it out.
Wow.
Wow. I think it's working.
There's some life going on.
Yeah. I think it's just, you know how like Game of Life gets into this state where it gets stuck?
Yeah.
Let's just do like, great. But it gets stuck after a while. Let's add some randomly paint the cells so it doesn't get set from time to time. So I think Cursor is great for like prototyping and then just like getting your ideas through. And I do think one thing though is important is to like sort of still glance through and make sure it doesn't like like write some really bad code. Like in this case, I think it's a pretty good code. Like they wrote 0.1% chance for each cell to be sort of flipped. And so we save it. Seems like it will probably work. Whoa, that is very cool. That's awesome. We sort of create an illusion that it's constantly growing. Um, that's pretty cool. I also built this Cursor logo a while back. You can like spin it around.
Whoa, that's awesome. Yeah, that is kind of trippy.
That is pretty trippy. Oh yeah, and yeah, I also built this with Cursor. So this is what I do in my pastime, and like I just sort of, uh, walk around my 3D world and just build stuff. So the idea is that it's all hooked onto an image generation, and then this is the main block hooked into this pipeline. And then, so for example, it says a starry, starry night, and then now it says in Van Gogh style, or it says in a galaxy, or in Japan. So you're going to click on this button, and then I'm not sure if it's going to work now, but supposedly it will then generate some image. Yeah, and cursor was a built-in cursor, I guess. Wow. I think the server is not running, but so there's a—
yeah, there's a backend server that then pings. Yeah, yeah, some multimodal. What is the API that you ping to generate those images?
I use FAL, fal.com. Oh yeah, I don't think entity is hooked on yet. All good. Yeah, like within, what, like 5 minutes we built a Game of Life block, which is really rewarding, I think.
Yeah, I mean, the amount of time to just figure out the math to do that is, you know, I mean, most people would take weeks, literally. I mean, it's not a trivial thing at all. Uh, yeah, yeah, it feels like it, you, you kind of spend more time at the higher level of abstraction. And you just have to kind of know, like, okay, what are the rough methods you're gonna need to set up Game of Life function? It's gonna look like this other function you already have for this other block. And then I feel like you have very high sort of high, you know, you're very confident, high confidence interval that it's gonna do what the function says it's gonna do. It feels like, like, The stuff it struggles with is more like systemic architectural design, but actually like on a function-by-function basis, it feels almost perfect. Yeah, that's how I kind of think about it.
And so I do think like currently, at least with like Composer or ChatGPT, the human is still quite important to be the one that's making decisions over like the bigger picture of what's going to be changed. Totally.
How do you balance— I mean, as a personal user, what is your favorite way of interacting? Is it the Composer window that allows you to see everything still, just the mini one, Command-I? I know there's the big Composer, like multi-Composer that takes up the full window. Is there a preference for what you want to see people use and you're trying to get people away from one and into the other or more chat, less chat? I know chat is— there's a bunch more improvements as of the most recent version, so I'm kind of curious what things people have, you know, what things you've added to it in terms of quality of life improvements. So yeah, that's kind of a lot.
In terms of like what preference I want people to use, I feel like one— the beauty about Cursor is like there's so many different ways to use it. Just talking even within the team, there's a lot of different ways that people use Cursor within 12 people. Some people would really prefer the control panel and I do think it's really useful for when the changes get too complicated and you really just want to go through line by line to make sure that the AI didn't mess up. But for me, especially when doing things that I have high confidence that the AI won't mess up, I usually just use the bar and then sort of glance through the files on the spot. And I saw a question about like, what's the difference between ChatGPT and Composer? I think for me, the biggest difference is how, how much you sort of trust the AI to, to make changes. So for Composer, it's really like, oh, you give it a prompt and it straight— it goes in and edits your file kind of like Command K style, uh, but for chat it's more so like you're talking to this, this, uh, model and then, and then continuously iterate until you get the, the perfect code, and then you, you as the human decide when to like apply it into your file. And I think, uh, there's no correct way of you of change, uh, generating code with AI. I do think Both of the ways are great, and I do think sometimes I see myself using chat to really work through a problem and get to the right solution I want. But then I still use Composer more. That would be my personal preference.
Yeah, I feel like I want to get to a place where I trust even larger changes and I spend more time in this Composer control panel, and it almost, almost in a way replaces like the GitHub pull request view where you're like PR feed, you're kind of reviewing the code and then you're, you know, you're applying your QA and you're doing all these things. And then when you're done, or you're saving, and then, you know, when you're done, you kind of just merge to main in a way, right? Like it feels like it's built for that view versus actually writing code. Like you're really trusting the AI to write Yeah, the code for you and you're just kind of commenting as you go. What is the shadow workspace feature? Someone asked.
Oh, the shadow workspace, it's currently not used in any prod features at the moment, um, but the shadow workspace is built by Arvid and it's, uh, the ability to, uh, I think we had a— we have a blog post about this, but it's Basically, when the, the model gives you a suggestion, we can get the linter errors really easily if we just change your file. But for example, if it's— if the suggestion is inside the chat, you don't necessarily want to change the user's file on disk, but you still want the linter errors. So we built this thing where you can get the linter errors inside the shadow workspace, but in reality nothing is really modified on the user's computer.
Got it. Got it. Is that what enables that kind of like save but without—
I think that would be— or that would be a goal for it.
Yeah. Interesting.
Interesting.
And so you said Cursor is 12 people total?
Right now it's 12.
Yeah. Wow. That's crazy. Now, how did you end up there? I mean, you said you've been coding since at least high school, maybe a lot before that, but what is your origin story and how did you end up at cursor.
My, my story was that I was— I started coding in, in middle school. I was, I was into competitive programming. But then in high school, I transferred to an American education system. And then suddenly I had like so much time on my hands. And that's when I really learned about how to— so I started learning, my first course was actually GraphQL. I don't know why, but my dad was like, oh, that's the hot shit right now. You gotta go learn.
That's hilarious. GraphQL.
Wow. Yeah. And then so I bought a Udemy course, and I started taking it. And then I was like, oh, this is really cool. And so in, I think in sophomore year, Baltazar, which is, he's also at Coursera now. Baltazar challenged me on a cross-country run. He was like, you love Minecraft so much, why don't you, you know, try to build Minecraft yourself? And so I did, like, I built a Minecraft clone in JavaScript. It was a really, really shitty version of Minecraft. But that project got me like really hooked on to building products, I think. And so the journey sort of like went on until junior year of college. I've just been building things left and right. And then I started using Cursor last year, I think in August. And I think Michael saw me in like the list of power users. And I was like, he saw the products I've built. And he was like, oh, this guy's pretty interesting. So he got me, he asked if I want, like, he reached out and he was like, do you want to interview? And I interviewed with them. And then he flew me over, we did a work test. And I really liked the team. The team is they, they work really hard and I love that. And the problems are really interesting too. And so I just decided to drop out for now and join the team.
Yeah. Wow. What, what college were you? What university were you at?
I was at UIUC, University of Illinois Urbana-Champaign.
Oh, nice. Awesome. Yeah. Mark Andreessen went there. Max Leptin went there. A lot of good— yeah, pretty good track record. Yeah, you can add your name to the list. What problems? What are the kinds of— I'm curious, like, yeah, what, how do you spend your workday at Curch? Like, what are the kinds of problems that interested you maybe when you were interviewing? And then also now, like, what are, what do you, what do you get kind of excited about, um, with what, what happens next?
I think the, the main problem that, uh, really excites me is like, how do we make one programmer very, very productive? Like, how do we make like one programmer have the, the, the, this ability or like the shipping speed of like 20 programmers? I think that's, that's one thing that me or like most of the people on the— everyone basically is trying to solve. And simply that there's like a lot of different ways to, to think about it. For example, there's how do we enable one person to understand a huge codebase really quickly? Or how do we allow one per— one developer to implement things really quickly, to test out ideas and to move fast, right? And there's also like, how do we make sure that the developers— the code is like correct and it's like not like buggy? You know, a lot of people don't trust the AI code. And so I think these are the main big areas of problem that really interest me.
Yeah. Interesting. Do you, do you, I guess Cursor does train its own models, right? Or things like Tab and, and, and stuff like that. How do you balance like focusing on the sort of user experience app layer and then training your own models in order like, or do you, do you think like they'll like, you know, you'll kind of outsource the kind of core coding model always, or do you think maybe you'll bring that in-house at some point? Like, how do you balance those priorities?
Uh, for me, uh, on the team, it's, it's— we work really well, like, as a team, but we sort of all focus on various different things about the product. So one, one thing I primarily focus on is, is the, uh, the product front, like what the user sees and how the user interacts with the AI. And I am, yeah, this, that's what I like to focus on mostly. And usually whenever I have an idea, I would like talk to one of the teammates and then we would then work together and he would, he would like work on the, the ML side and then make sure that that's, it's powerful. And then I would make sure that the experience is great. And then together it's, it's a quite a good match, I think.
Got it. Wow. So I mean, you, you have to have like a very tight feedback loop, right? Because you're effectively potentially building a feature that may not actually be possible based on the results of this like ML engineer's work if they're able to get the quality to be, you know, zero hallucinations or whatnot.
Oh yeah.
So you kind of, do you work remote? What are your thoughts on remote versus in office? What is Cursor's thoughts on that?
Oh, we are really in person. We currently are, we were in North Beach and I live like 3 minutes away from the office. So sometimes I just, I just go back and forth a lot. I think it's pretty different, remote versus in person. I don't feel strongly either way, but I think in person it feels more like real and you can like discuss problems together anytime you want. You just go and tap on the shoulder. So you don't have to like set up a Zoom call, which I really like.
Yeah, I feel like you're allowed to have worse ideas, you know, in person. You're like, hey, and then you're allowed to like admit how dumb you are in person in a way. Like, I feel like in Slack it's kind of hard to be like, hey, I need help with this basic thing, you know, like what's going on? But in person you're like, hey, I'm an idiot, can you like take a look at this and tell me what I'm doing wrong? And there's no record of that, you know, so Yeah, it is quite— I also lived like a 3-minute walk away from this office and we had mostly remote, but I do think like, yeah, like being able to come into the office, being able to talk to people about my bad ideas, getting real-life body language feedback, especially someone who runs the business. If you sort of go into Slack and you say, hey, is everyone happy? Right? It's very easy for everyone to be like, yeah, we're happy. We're happy. Like, you know, like—
Like hard social.
But yeah, exactly. Hard to get like, it's easy. I get, you know, I go viral on my company Slack all the time. You know, I'm like the most popular person. Yeah, whatever. But then if you do, if you say, ask people stuff, you know, in person there, you can kind of get a read from their body language that they're not that excited, right? Or they're a little, they're happy, but they're also a little scared. Or like the amount of like nuance that you get, I think in real life is just, is real. It's real. I think there's like something you, you have a hard time getting that with just pure English, like typing English into a little text field.
Yeah, it's even also for working on things like Cursor, I feel like one thing that drives me forward is the excitement I feel just from the teammates. A lot of times when I feel like I'm bearish on what I'm working on, I just grab a teammate and then we talk about it and then the excitement in person builds up and then we both get super hyped about the thing we're working on, and then we just go and, you know, grind it out. Yeah, yeah, totally. That's what I really like.
Yeah, I think, I think remote work is great if you're working on easy, pro— easy, only fun problems, right? Like, if you're like— but it— but most work, like, if you're really trying to do something difficult that hasn't really been done before, you're gonna hit your head against the wall for a lot— several hours straight, you know. You might not make one— any progress the entire day, like It's kind of like going to war. Like, you don't want to go to war like by yourself. Like, you kind of want to go to war with like a company, right? A company of other people who are all in it with you. Yeah. And yeah, that's pretty crazy. It's pretty crazy that you started so young. I also had a similar story. I got into design because a friend of mine was into World of Warcraft and he was making icons, avatar, little avatars for forums. Uh, and he's like, hey, you should, you should see if you're better than me. And I took that very seriously. It seems like gaming and like the gaming often seems to be sort of a gateway drug into programming generally and kind of wrapping your head around some of these concepts like data structures and algorithms. You know, you learn about in like whatever college or APCS or something for loops, while loops, but like they don't really make— I find a lot of people don't really get what that means. But in the context of like a video game, I feel like it's a lot easier to like internalize what those ideas are for whatever reason.
I totally agree. I feel like ever since I started building video games, like, video games are not as interesting anymore because all I think about is like, how do they do it?
Yeah, yeah, yeah, fully agree. Like, when I play a game, it's more like I want to play the game to kind of just spend time in from the perspective of the developer and be like, why did they do that? How did they do that? And yeah, like I started learning how to paint and my way, you know, when I go to a museum, I just like go really close to the painting and I'm just like, how did they— like, why did— like, why did they do that that way? Like, what was going through their head? And it's a very different approach to like, you know, standing across this, you know, the room or whatever you're meant to do. I have one question, which is I often have this workflow and I think there's probably a better way to do it, which is if I wanna do a sort of a find and like a fuzzy find and replace, right? Where I say, okay, there's like some parts of my file that are Ruby or my project that are in Ruby. So there's like underscores, but there are other parts where can't, you know, like in JavaScript, TypeScript that are like, you know, camel cased. So I can find my find and replace. I see the files there. Then I have to like manually add all the files I see in my search. Into the Composer bar and then I, you know, prompt it to, to like make the change. Is there a way to sort of like auto-add all files in the search or like is that coming or like how do you think about like that kind of workflow that, um, like trying to basically edit, you know, you kind of know what files you want to change, uh, but there's sort of, you know, 50 of them, you know, they're not— they happen not to be in the exact same folder. So how do you— yeah, how do you kind of think about that?
Yeah, I think this feature request is— I also see myself wanting it. I think I just need to get to it and I just need to implement it. I think that's the only block. I don't fight back from that. One good example is Next.js 14. I think they refactored a lot of their libraries. For example, Next/router is now-next/navigation or something. And then a user messaged me. He was like, oh, he wished that there was like a smart refactor across many files from the search bar for Composer. And I was like, I totally agree. I just need to, we just need to implement it, I think.
Yeah.
Yeah.
Yeah, I mean, that's a huge use case is just refactoring, right? Rewrites. So you're moving, like you're upgrading Rails or Next or React or you're moving from, you know, like one, one, one thing we're currently doing is we're migrating to Tailwind. And so I'm sort of constantly doing this thing where I go into the CSS file, I copy it, or I guess I could just include it now and I should really get the muscle memory of like including it in my, you know, app and there's just like add buttons.css and then add button.tsx and say, hey, I'm moving to Tailwind, like inline all these classes. Right. Um, yeah, but then, but then I have to do that same thing, like for every single component we're migrating, which is like say 30 different components, which is not bad. It's only gonna take me 2 hours, but if it could take me 1 minute, that would be like, if I could sort of take my entire composer and say, you know, I'm doing this for buttons, sort of do it for the other 25 things in this folder. Um, there's so much. Potential for like meta cursor programming, meta programming, meta coding, or I don't know what it will be called. Uh, but this, yeah, you're kind of programming the programmer in a way.
Yeah, I totally agree. I think, yeah, I really just gotta get to it, I think.
Yeah, I mean, it's crazy how much traction you already have and how much low, low, quote unquote low, into the user it feels low. Obviously there's like so much work you got to do to like actually ship the feature. But it's pretty exciting to see how much, like, just how much better it's going to get based on how awesome it already is. Do you use cursor rules? Do you have any .cursor rules?
Or—
oh, the, you know, when you add like a kind of config basically you add per project, per repo.
I think the surprising thing that people might find is like me personally, I don't use Cursor rules. I do use these rules of AI. I think I found it. I found this from, uh, I think I was just really—
that's awesome. That's—
I think that's, that's the only thing I use. Uh, I could paste this into chat if people are interested.
Yeah, that'd be awesome.
Yeah, I think it cut off my message.
Oh, that's so annoying. Why does it do that? It literally— Google Chat has like a— I like how it ends at sour. Sour.
Oh, it ends at mention.
What?
Let me just paste in these 3 blocks of messages. Sorry for the spam, but that's what people are here for. I think I found this part from some person, probably like last year talking about how they should put it into ChatGPT. Like, the ChatGPT had the, like, rules in ChatGPT, and so I just sort of— whenever I started using Cursor, I just copied it over.
Wait, no.
Yeah, one day I just copied it over, and it's been great ever since. I don't think it's the best though. I've seen some very creative ones on Discord.
Um, yeah, it feels like a whole form of, like, code golf too, right? Where people are going to come up with, like, sort of— it's like, uh, no yapping has become a thing. Oh yeah, and I feel like no yapping is kind of shorthand now for like all of, you know, please do not like lecture me. Yeah, be terse. Exactly, be terse. I like that. Uh, terse is a great word. A lot of words I feel like are making a comeback too just because of this, this stuff. Yeah. Uh, how do you— you mentioned competitive programming. Do you think AI will factor into that? Like, do you think there will be like Do you think either it'll go in a direction of no AI allowed and it's sort of like watching people do math with like, you know, paper and pencil kind of thing, or, you know, like a Math Olympiad? Or is it going to be like embracing AI and saying, okay, how fast, uh, can we, you know, what more— like, you have 1 hour, like, go crazy. Like, what is— what kind of competitive program are you doing, and do you think AI will play into that?
Well, I think, um, the, the kind of competitive programming I did in middle school was a lot more less competitive than a lot of people because it's a middle school. And I know for sure, like a lot of a couple of people on the team definitely know a lot more than me. But I think I can't— I don't know. I don't— it would be crazy. Like during the competitive because how it worked, I remember in the competitions it would be like they give it like like 9 questions, and then we would just try to solve every one of them, and within like 3 hours or 5 hours. And every time you, you solve a question, they give you, give you a balloon, and then you just have this balloon hanging off your monitor. And so you see some teams with like 5 balloons already, and you get super like competitive. Um, I think it would be really different if you could use AI and just like print them out on the spot.
Uh, Yeah, I feel like it's a game of cat and mouse, right? Like, the students figure out how to use AI, and then it's the job of the teachers to figure out how to, like, make the game fun even though the students have figured out AI. Yeah, the easy way out is to just say, hey, AI is not allowed. Yeah, to me that's boring. That's like, well, okay, sure, you know, but if you can say, actually, we're gonna, like, change the rules of the game I think that's just like way more, way more exciting. Way more exciting. All right. Jason has a question, which is, you mentioned how with Composer it saved the state of the file changes so you can have flexibility to go back. Can you kind of like version control where you can save like certain chats to go back to later? I know that kind of they, at least in the current UI, I think they kind of just get wiped But I did notice on yours you had like a few, like kind of an archive or history state. Is that a beta feature or is that something I just didn't know existed?
Uh, I think you're talking about this, the, the control panel. The control panel is already— you can click on the, this button right here to open the control panel. I think, uh, this is still a design choice. A lot of people are requesting for Composer history to be persistent. I do see it being persistent, but I think I'm still trying to rationalize the user story of what it would be like for it to be persistent. Because when I imagine Composer, it's more so like a temporary, like I want the change right now. If I want a more longer chat history with the AI and work through a problem, I think ChatGPT would probably be a better— I don't, I don't feel strongly on, on either side. I think I see a world where Composure can be saved as well.
Yeah, like if you're going to bed for the day or something like that, or you're working on 3 things and at once, it would be nice to kind of maybe like save your state, go do something else for a couple days and then come back. I know, I notice I do that with like just because I have other things to do running a business where I'm like, I want to code, but some days I can't, and then I have to kind of like start from scratch more.
Yeah, I don't see why not. I think it makes sense to make it persistent.
Yeah, yeah, awesome, awesome. Any hints at what's next? What changes with Andreesen Horowitz coming in? Besides the standard answer is we're going to keep doing what we're doing, but more, or faster, whatever.
Well, I feel like the standard answer is still really truthful. I feel like the team hasn't really felt like a difference internally because we just want to build something that we use. But in terms of what's coming up, I can share what I'm trying to work through. I think I want to see through— So there's this new thing called Projects.
Yes, let's talk about this.
I'm probably going to rename Projects to something else, but the idea behind this is a— I want to be able to create, because I know there's a lot of people, they don't really trust the AI because they would be like, oh, the AI does not have the context of what I'm trying to do fully. And so I think somewhere where you can sort of work through a problem with the AI and have like a space where you can write down your ideas would be really useful. And it would be sort of like, uh, I see it more like a notepad. Uh, yeah, like a notepad where, uh, there'll be so many applications too. I feel like it would go like people are going to be so creative with the use cases. One use case I can think of is sort of like intellectual macros. And for example, in Cursor, whenever I want to add something to the settings, right, like in the features tab, whenever I want to add one of these, you actually need to change like 5 files and to like just register and then like render it and then like add it to the settings page. And this is like a, the, a brain, brain dead, uh, sequence of edits that can just be sort of like a macro. I think Composer notepads will be great because they're persistent and then you can write out this instruction of which file to use, what to add in those files, and then anytime you can then spin up a Composer using this notepad and just be like, oh, please feature toggle feature blah, blah, blah. It then does whatever the instruction says and then it's great. Another example is like, I might have a hook and it might be a little like a SolidJS or ReactJS hook, might be a little confusing to use, might need some definitions. Then you can write out an instruction again as a macro. Every time you want to add, for example, one example is adding autoscroll in chat. I can demo this later too, but imagine adding autoscroll. In chat like this autoscroll, then anywhere you want to use it, you just spin up a Composer from that note and then just be like, do it here. I think that would be really useful.
I would love a demo of Composer projects.
This is, let's see. The most basic one is just like, I should call it test and then just do like extensively— oh, this is so ugly, I gotta fix it— extensively review my code, please. And so I would assume like people can have like really long instructions of how they want AI to act. And so you can like click a new composer and you see how the project is then used here. Let's rename it actually to AI reviewer and then create a new composer and just open this and be like, let's do it. Wow. It then knows that I'm supposed to be reviewing, the context is included. This is a really tiny project, but you could imagine for this feature toggle thing that I was talking about, you could then add a couple files that you want to, and so it goes on and it seems like it made it better by extracting the constants and things like that. Let's just accept all. Why is it not working? I'll fix it.
Got it. It's a little bit like Claude projects where you can say, for example, I'm doing a refactor into Tailwind. I can create a Tailwind refactor and say, hey, every time I, you know, like basically take my, you know, anytime you're given CSS, you know, whatever nested boring native CSS, do this to it, or like make sure you follow these kinds of rules. And it's almost like a subset of cursor rules that only apply to that specific anytime you include that project. That's pretty awesome. Yeah. I feel like there, like, I think this kind of helps a lot with what I was saying before, which is like, if you have 50 PRs you need to do and you're kind of going through the same rigmarole. Every time. Like, you know, we're planning to move from a Python backend for one of our apps to Node, TypeScript, Next.js, everything. And it's going to be this, right? It's just going to be— it's not that hard. It's kind of what you said, a brain dead, uh, sequence of events that have to just be done. And that it's kind of like cursor tab, but like super powerful.
Bigger picture. Yeah, I think that would be one of the use cases. Another use case could just be like, imagine you don't really trust the AI to, to do the code, but you kind of want the AI's help to do it. So you want to work through a problem with it, then you can use this space to like— this is not the final form I'm imagining right now, but what I'm imagining is like some thought space where you can, uh, work on a problem with the AI and then build out a like really full detailed spec for Composer to be like 100% sure what it's doing. And then you can then, you know, let it go, let it rip.
Yeah, because right now what I've tried to do a little bit is, you know, you can sort of take like a spec from Notion or something and paste it in to Composer, select the files that need to change or whatnot, and then, you know, do that. But you can't really— there's a— there's like, if there's anything wrong with that, you know, it's too general, it's not specific enough, It has weird markdown stuff going down, right? It doesn't actually solve the problem. But if you have a way of actually going back and forth with the AI in a scratchpad format, building a very comprehensive set of changes that are gonna have to happen. And then once you kind of— there's some form of, I don't know, there needs to be some sort of visual that gives you confidence it's actually gonna work. When you hit yes, you go, You go to the bathroom, you come back and it's done.
Go grab dinner and it's done.
Yeah. That's the dream, man. I mean, I really, what I dream about is queuing up these, like, hey, I want to migrate this thing from Python to Node, full stack type, Next, and then I go to bed, right? And I wake up the next day and it's kind of, it's taken, it's all this brain dead work that I, that I just have commanded it to do, and then I can review all the PRs and merge them and do, you know, make sure all the tests pass or whatever.
But, um, I think for me, one, uh, the one thing I'm trying to change in Cursor is like we have a lot of tools, we have a lot of features for people to use, but I really want to sort of build a, uh, full-fledged workflow, because I think if this is— if this space is really good, it would be like a workflow that people would, you know, start using and opt into to like really use AI to the fullest. That's my vision of it.
Yeah, it almost feels like I'm in between. Like, we actually just actually basically deleted our Notion workspace because I felt like if, if this is happening so quickly, like everyone in the company is going to just be building stuff. Like our designers are going to be building stuff, our customer support team is going to be building stuff. And if that's the case, then like Notion was acting as like a translation layer between effectively GitHub and like other people in the company. And so like, let's— so we, we just deleted and moved everything to GitHub issues. Not that dramatic, just like, you know, copy-pasted it with the help of some AI. Uh, but yeah, I feel like there's still room where there's the GitHub issue and then there's like the PR of, of the sort of final, you know, 2,000 lines or whatever, and then there's like this project that can exist in the middle, which is the scratchpad that kind of gets you from the 3 or 4 lines of English of what you're trying to build to the, you know, thousands of lines of code. There's like a lot of back and forth you want to do, kind of like what you would, you know, kind of like a whiteboarding session you would do in the office.
Yeah, yeah, totally. Yeah. Now one thing I do have to note is that right now on prod, sadly, I, I don't think symbols work properly. Um, so like it's supposed to be highlighted and it's supposed to add file here, but I don't think it's working properly. But, uh, yeah, it's still under active development and I will fix it. I think it's already fixed. No, Bot is already fixed, I think.
It just needs to be deployed.
Yeah, it just needs to be shipped next release.
Nice. Someone asks, uh, the only thing blocking them from going all in on Cursor is, uh, lack of GitHub Codespaces support. A friend of mine actually brought this up, uh, yesterday, uh, as well. It's like they would love to use Cursor, but they use Codespaces. So is that, is that coming? Uh, what are the kinds of issues you run into with just generally having kind of a fork of VS Code versus an extension of VS Code? Do you plan on having, you know, what is the kind of, what was the thought process behind that decision and is it even possible to resolve these kinds of issues, or are you going to compete with them and launch your own complete client? Like, how do you— yeah, I'm just kind of curious, like, the bigger picture around that. And then on the micro issue, like, GitHub Codespaces, is there a way for that to work in the near future?
Yeah, um, in terms of like why we decided to— why the founders decided to use a— do a fork instead of like an extension, like a lot of people say, oh, it should just be an extension, but a lot of things are not possible to be done from an extension. I think one, I'm not entirely sure, but I think one example would be like, actually I'm not 100% confident, but something like the inline divs. I'm not sure.
But there's a lot of extensions. Yeah, like the inline apply stuff that you have, like saving but not actually saving it or saving but then allowing the diff to preserve so you can still see the diff and stuff. My guess is trying to pull that off would be tricky. Maybe possible.
Maybe possible. I think it's just really dependent on what they expose to the extension API. And by just doing a fork, we have a lot of freedom of what we want to do.
Yeah.
Yeah.
And you never want to run into a place where you make it as you're an extension and then it works great for 2 years and then one day you learn there's something you really want to do and you can't do it.
And then you're like, oh, that'll be so sad.
That would be not—
yeah, I'm not— and I'm not sure if, um, GitHub Codespaces, uh, have been looked into yet. We don't use it internally, uh, and I'm not— I'm just not sure. In terms of that.
Yeah, yeah, it's tough, I guess, because it's kind of like an in-browser Visual Studio Code, so I don't know how it would actually—
oh, I don't even know what it looks like, to be honest.
Yeah, I know, it's, it's, it's kind of crazy. It's kind of like Replit, you know, built into Go in a way. Yeah, um, but, uh, it's nice because if you, you know, when you want to make some changes but you're like on iPad and you don't want to like, you know, whatever, you just log in.
Is there like, like, is there like a mobile app also?
There is not a mobile version yet. That would be amazing. I really believe— maybe I have a question. This is my follow-up, is like, do you believe Cursor will ever have a mobile app? Like, what do you think about voice dictation? Some people say they can talk faster than they type, you know, at least in English. If you're saying, hey, do this for me, uh, do you think that would be native, or you just rely on like the Mac or whatever dictation apps? Or do you think that will actually be like a, like kind of like Composer, like a whole new form of like potentially interact with AI.
I saw a lot of people demoing their cool workflows with just talking to Cursor. I think that's super cool. But I think we are, at the end of the day, we have a lot of things to build and that's on the backlog but not priority priority right now.
Yeah, makes sense. Do you ever plan on integrating more deeply like, uh, GitHub in any way? Like GitHub pull requests, comments fed into the kind of cursor context? Um, like for example, if a, you know, GitHub comment shows up, uh, I think— oh, there you go.
We— oh, I'm not sure if people know, but you can do symbols in either Chat or Composer, and then there's a Git menu where you can enter to go in. And you can then sort of do things like you can reference commits, you can reference the diff working space, the diff with main, main branch. And I think I saw one of, one of the users do this where they do @git and they do diff of working space. And I just do please extensively review my code. And, uh, on, on an actual change, it would be really useful. But this is something—
yeah, no, that's really— that is super useful. Yeah, especially if you're like, hey, there's a bug, but like you've made so many edits to— like, you don't really know what edits you've even made. You can just do that.
You can like reference one commit. And then be like, something broke after this commit, please fix.
Something like that. Yeah, exactly. Yeah, exactly. I know the problem is in this. I mean, this happens when you upgrade like Ruby or something and you're like, okay, something broke, but I don't know where. And it would be, could you, can you, can you, one thing I would love is if I could say, hey, like basically replicate this specific GitHub PR, but for this file. Like, —like, link to a GitHub PR, you know, URL or, you know, whatever the number of the PR is. And then it's able to basically be like, oh, yeah, in that PR, you were migrating this component to Tailwind and now you're asking me to do the same but for this thing and these are the files that are changed. Because I feel like this is how I often work as a subpar engineer is I just copy. I'm like a—I try to be just a really good copy-paster. Where I just, I'm like, okay, what, what is like in the, in the, and this is nice for something like Gumroad, which has been around for 13 years where it's like, if you're building a new feature for Gumroad, almost definitely someone has built a very similar feature somewhere else in the product. Right. So it's like, let's go. I go to GitHub. I like search for the PRs. I try to find like the closest example. And then humans, you know, before, before AI as a human, I would just go in and be like, okay, that's how they added the toggle. That's how they added. Yeah. Paragraph, that's how they, you know, update the route. And, you know, and often if I get stuck, I often compare with another PR and I'm like, what did I miss? Oh, I forgot that. I forgot to add the route in routes.rb or whatnot. This is partly can be fixed, I think, by projects because you can just have a project that says, hey, every time I make it, you know, I add a thing, make sure there's a route associated with that in the routes.rb file or whatnot. But yeah, could you— I guess, uh, would that exist in the future potentially where you can kind of just like add an actual GitHub PR and it would kind of like suck in all of the diff of that specific pull request?
Yeah, I think like the, the interesting thing about like the project or Notepad thing, Composer Notepad, the, the interesting direction that I want to bring it towards is the how you start a Notepad. You can start blank, and what I'm envisioning in the near future is either you could start blank, you could start from an existing composer that you've like gone through a series of change, and then you then sort of like say like, oh, make a notepad from this composer, right? And then so it would like write down the instruction, whatever. Or even you could like reference a PR like in your use case, and then it would be turned into like a set of instructions or like a detailed spec if you want, and then you can use it repeatedly. That's how I imagine it working. There's still a lot of thought to be put into it, but I think that'd be really interesting if implemented.
And how do you work? Do you— do you— when you have an idea like this, do you start building it in code, or do you spend a lot of time like just like thinking through it, whiteboarding it, talking to other people about it? Like how quickly do you get into actually kind of like an implementation of a proof of concept or what does your workflow look like?
My workflow at Cursor usually looks like, Baltazar and I, we try to think of many ideas and then anytime we have an idea, we just put it into, I noticed how like a lot of people don't use it, but we put it into Slack canvas. Like Slack has a canvas feature. Oh really? Yeah. No one uses that. Yeah, we have that. We started using like a month ago. Anyway, it's great because like it's like right next to chat, but we put our ideas there, or like we put things there, uh, bugs, whatever. We have a huge idea board there, and then when we, when we really want to work on something, Baltazar and I, then, uh, we tap on each other's shoulders, we go to this room, we have a room with like a big white, whiteboard, and then we then start brainstorming what the user will see and then like what is going to feel when using it, right? And then we draw it out and then we're like, oh, this is great, right? And we get super excited and then we then go back to our desks and then, uh, here's the next thing. And then we would like type down a bunch of to-dos to reach that goal. And then next to each to-do, we would then assign our names next to it. Like, oh, this, you do this, I'll do that, you do that, I'll do that. And then, uh, we just crank it out.
Yeah, nice. That's awesome. Uh, Bilal asks, how good is Cursor at consuming API docs? Uh, so you can do this, right? You just and then you just paste the URL of the, of the docs. It's pretty, it's pretty good, right? I mean, would you agree or do you not recommend— do you recommend copy-pasting specific doc of the method, or you just like say, hey, just this is the Tailwind docs? Or Tailwind's probably generalized enough, you don't even need to specify the docs, but for maybe something more, more, less, less training data exists for or something.
Oh, we have a docs feature. I think a lot of people use it, uh, this docs feature. Where is it? Uh, features, docs. I only have PyTorch because I was testing it, but I, I, my personal workspace workflow is I like to just get whatever page, the docs I'm using, and then just copy the link. Like for example, I could go to holo.dev and I usually just go to their API docs and then just, for example, if I want to do some Holo Request stuff, I copy it and I just go to the new one and then just like, hey, this is blah blah blah, and then check out this and it would read the link and then it would be like, blah, blah, blah, blah, blah. You know what I mean?
Yeah, got it. Yeah, I guess GitHub is a little bit more effort because there's like an auth, like login behind it and stuff like that. Oh yeah, it's not as trivial as just scraping the site. And Cursor Rules, we started using that pretty aggressively. I added, we added it to all of our repos because it's so useful when you have 30 people that you can just like You don't have to tell anyone how to write good code, right? Cursor rules, you just tell cursor rules and then in theory, as long as they use cursor, it's writing. I actually think maybe we don't even need linters in the future because as long as you assume that AI is writing most of this according to cursor rules, why would you really? Maybe you have linters on before you deploy to master or something. Before you merge or something. But like currently I think you can't actually add in the cursor rules. It's just like kind of English that gets prop stuffed. But like, do you plan on some— is that true or is that wrong? And if it is true, do you plan on potentially adding like a similar functionality where you could add like @help.gumroad.com or docs and say, hey, make sure when you're updating the help docs to like only refer to things that exist in this place, or would that just slow down every single prompt too much? It doesn't really make sense. That's not the right place to embed.
There's still a lot of ideas floating around my head, but I think it makes sense for cursor roles to be more like a slim version, sort of like instructions of how AI should react. But then in terms of like actually mentioning files or like @referencing links, I can see that it's being added to the like notepads. I think notepads could be— and then maybe in the future I, I should— we should add like ability to share notepads across the team. That would be really cool. And then because the problem with like it being a file, I still have to think about it, but I think the problem being a file is that, uh, you only have like so, so limited text that you can sort of, uh, save as a file, right? Uh, like for example, today if I had another main.ts right here, then in my file if I had add main.ts, like, and you push it to Git, you only know if this is pointed to this or this. And I'm sure there's like some, some ways to like work, work around this, but I think notes make more sense because it's also like not really part of the code. Yeah, I have to think about it.
Yeah, that's, yeah, that's, that's, that's fair enough. Uh, is there any file like limit on that file, the cursor rules file? Like, like We have a PR open right now that's like 100 lines of rules that someone wants to add and almost takes almost all of our onboarding documentation for engineers and just puts it in Cursor Rules. That's pretty cool. Is that wise? Or are you like, no, actually it should only be a tweet amount of stuff? A tweet amount.
That's a cool unit.
That's a callback for people who don't know. There's something called tweets.
Yeah, uh, I think it's just extra context, uh, used by the AI, and I think you can use it however you want.
I don't think there's like a specific way that you should use it. Um, yeah, you can like format it however you want if you wanted to use like down for readability on the human's part, you could do that. And like, it doesn't really matter because it just gets put into the prompt and stuff.
Yeah, it's just, uh, yeah, this is like a way to like customize how they, I respond. So you could put like, uh, like always talk about, I don't know, and then like, it's like how the AI would respond. Yeah, I'm just coming this up on the spot.
Oh yeah, nice.
I don't think there's like specifically how you should use it.
Yeah, makes sense. I mean, I guess it's kind of related, but how are— if you can share any of the magic kind of dust behind Cursor, like the pipeline that kind of puts together the prompt in terms of, you know, RAG, the prompt itself, uh, some, you know, you can see some of it because when, you know, when you say like AI fix this, you can kind of see what it's being put in there. But, uh, um, yeah, I'm kind of curious, like, how, how, how you guys actually chain the prompts together. Oh, what is this?
So this is the thing. Yeah, preamp. This is, this is preamp or prompt, either way is fine. This is how we do, uh, prompting in, in Cursor mostly. So this, the idea is like you sort of construct a prompt using JSX. And then we then render the prompt based on priority. So, so you— we would then like this, it's all explained here. This is open source, people can check it out. But then like you can put priorities to messages or like scopes or like individual things. And then we then use some algorithm to like own, know which ones are the most highest priority, and then when context window is like constantly limited, right? So we only include the ones that are like high priority into the prompt. Got it.
Awesome. So yeah, it's just like a sophisticated prompt stuffing, but then you also have this like JSX rendering. I mean, that's crazy. Uh, yeah, it's pretty cool. How many tokens do you— I mean, like Claude, I think goes up to 200,000. Uh, so is that the limit, or do you have a little bit more like lower limits on sort of like the prompt that you send.
I'm not familiar with that part. I feel like I should be familiar, but I'm not really familiar with that part.
Fair enough. Yeah, because my dream is to take the entire CSS of Gumroad, which is like 13,000 lines, like 80— it's like 80,000 tokens or something. Uh, actually, there's something else we want— I want to do with Gumroad and Cursor. So this is a very real thing that I want to do, which is I want to unlocalize the product. And so we have all these localization files. If people don't know how this works, you basically have a massive dictionary of key values of like, you know, login is login, password is password. And then in Japanese, you do login is that and, you know, password is that. And then in all of your views, you have to kind of do the key, right? And basically what I think is going to happen is, and it was already happening, is like AI will basically mean that all translation can happen better. On the client side because the client can actually have all the context of what's being shown to the user and whether it's your email client, your web client, whatever, it'll be translated to whatever you want. If you want everything that you read on the internet to be about horses, everything will be about horses, right? That sort of— you have your cursor rules for like your Chrome rules or whatever. But the way to— I think the best way to do this is to basically take the entire en.yaml file and then basically paste into the prompt and then go file by file and say, hey, I'm unlocalizing Gumroad, like replace all those, you know, you know, all the keys with like the actual string. But I've so far it's timed, it's timed out because I think there's too many, too many tokens. Um, so I think you, yeah, I feel like it's probably a Claude problem where I think at some point you kind of just like run into issues. Uh, it would be nice to have like 200,000, you know, like to be like, this is an extreme prompt, I really want you to maximize like the context length, and it's okay if it takes 5 minutes because I know it's going to work, but it needs, you know, 5,000 lines of YAML.
Yeah, uh, I think what— I think what you're running into is like the long, um, long files. And like for long files, I think— I, I hope this is long enough— I, I like 3 really long files that I can think of. 3,000 lines. Oh wow.
Yeah, these are long files for sure.
Oh, this is not that long. But if I do like walk me through these, hopefully there's a reading long file thing that pops up. Or maybe it's just not long enough. Oh, it's not long enough. Let's try another. Maybe not long enough. Let's do, let's do card. Yeah, it should take a little while. So I think usually it shows up like what's being included. We, we go through these files and then we— okay, it's just not trying to kind of do it. It's not long enough, but like we tried to find the relevant parts of the file. Like when the file is way too long, we pick the relevant file parts of the file and then send that to the model. That's how we do it. And you can usually see it right here on the top if it decides to do it.
Got it. Do you— what model do you use? Do you use multiple or are you completely on Claude 3.5 Sonnet or do you switch or how do you think about model choice?
I think most of the time I use Claude nowadays. I just like how chill Claude is. I feel like GPT-4.0 always gives me all the headings and the bullet lists, especially when using Composer. It's weird to have a whole markdown sent back to me. But for Claude, it's like, oh, let me just do it for you. And especially with like my roles of AI, Claude is just super human. Yeah. And then I could be like, bro, what the hell are you doing? And then it would be like, oh, my bad. Fixes my stuff.
Yeah. Yeah. It's very terse. I mean, terse is like already built into Claude. I feel like it's just more terse than GPT stuff. It just, GPT feels more preachy, more of a teacher than a peer, I feel like. Yeah. Yeah. Do you think you'll build in a web app preview? I think one thing that would be really cool is when you make a change to actually, right now you have to still tab between your cursor and your, let's say web browser. I could imagine having a tab, half the screen dedicated to actually your personal website.
And then one cool thing I don't think people know about, uh, this is— I think this is just built into VS Code, maybe, maybe Cursor. Yeah, actually maybe it's a— I'm not sure, but you could just do Command+Shift+P and do Simple Browser and just type in localhost:5173. And now you have like this browser just right inside your your cursor. And so you can undo, like, make cooler— I'm trying this right now. It's just called Simple Browser. And yeah, wow, that's awesome. Yeah, and then, and then you can just save. All right, some cool shapes.
Yeah, because then you can have— I mean, the dream is you just never even have to leave Cursor ever, right? You're able to do almost like everything.
Yeah, so you can actually get like some sort of like Claude artifacts vibes to it. Uh, yeah, I love this.
Really cool. Yeah, I really like— I really like this view personally. It's like I didn't really— I like working on my laptop, but More and more I'm like, oh man, I really need to, I really need to start using them. And I did get a big monitor because mostly because of Cursor. Yeah, I mean, before Cursor I was like, ah, writing code's annoying. I don't like writing code. I like building stuff, but like writing code I don't like. But if I, if I can command my computer to write code, then all of a sudden it's, it's fun. I even think, I'm curious your thoughts on this, like so much of the, of the, of the IDE is still dedicated to the code. Yeah. Do you think that like maybe there's like a sort of compressed version of the code? Because if AI is actually editing most of it, like why do you need to see everything? You know, like you're not actually— it doesn't really matter, especially if you trust it to such a high degree. Oh, maybe. Yeah, there's a really cool idea.
I, after talking to some teammates that we came up with, it's like really far, maybe like in the future. But the idea is like, imagine you have a long file, and then we use some way to quickly sort of compress it into like a pseudocode, right? Yes, exactly. In this pseudocode, you can then prompt with like Command K or like Composer. And then what we could do is we could totally just take whatever you modify to this pseudocode and then sort of like reverse engineer it into like a full-fledged prompt and then actually modify the file behind the hood. And now I feel like that would be really cool to have.
Yeah, that's— it's almost a little bit like a shadow workspace-y kind of thing.
Yeah, it's like a, like a, uh, another level of abstraction, you know?
Yeah, exactly. Yeah, it's another level. It's, it's another level of abstraction. You know, maybe one day you have like multiple layers. I mean, who knows? But that, I mean, honestly, that simple browser thing is, that is very nice and basically solves a lot of, that's gonna save me a lot of time. What experiments have you guys tried that didn't work? Like, have you had a cool idea and you're really certain it was gonna be a great way to, you know, to like for people to write code and you're like, ah, this is actually not. Not good, or because you're solving your own problem, you kind of have pretty good intuition around like what you really would be useful. And most things actually like pan out pretty well.
Yeah, I think on a side note, I just have to say it's so, it's so cool working like on something that you use 12 hours a day. It's like I, I have my own user feedback at this point.
Yeah, yeah, you don't even need to really talk to users, you know, as long as the numbers are going up and like you just focus focus on solving your own problem. Your users are similar enough to you anyway.
Yeah, that's super cool. Um, one example of like a cool experiment that we did— I did, uh, I think I did in April. It was called— I was trying to think about how to make Command K. So Command K right now is this clunky huge thing, right? And it's sort of like you have to select and then hit Command K, uh, and then it appears on the top, and then you have to prompt within this selection. But I was trying to think about how can I do it in a way that it's sort of like— maybe I could just do like— this is a bad example, I'm working on imports— but maybe like here I want to do like add some stuff. I like add shaoru.io here, or here I want to add, add a new route. And so it would be like a sort of like a passive prompting, but right inside your editor. Like, it's like, it's not like a separate thing. And we— the, the problem is like, I think it's, I think it's an ongoing, uh, experiment that people think about and work on. Uh, but my version, it was hard to know what the exact range to modify would be. That was one of the challenges. So I did like some like floating range thing, and then I realized one, one very annoying thing about Rust is that those floating ranges kind of, kind of weird. Like for example, if you look at this— wait, there's bad examples. Let's see, like the floating ranges doesn't work as the same as say, uh, TypeScript. And so using the folding range to like get the range is not as ideal sometimes. Like for example, this one, there's no folding range right here. Oh yeah. And then, and then if you— it'll be like, for humans, really obvious that it should be this. But if you do like— it's still in the Command+K auto select. If I do Command+K, it selects this thing instead of like this. And that's one of the hurdles that we should, you know, get over.
Yeah, I mean, you deal with this problem where, I mean, you can code in so many different languages, right? So you have to think about all the different sort of, you know, each, each language has their own preferences on syntax. Yeah. And you have to run by them then. Or I don't want to take up too much of your time.
Uh, I, I'm not too time constrained. I live a few minutes away from the office. Yeah, uh, another cool experiment which was, I think, in one of the blogs for our problems of this year is, uh, hello, we, we— so when you're coding, a lot of times, especially with cursor tab, you're like really in flow, you're thinking about the problem and you're, you're getting code out, right? Um, Hallucinating functions is an attempt for Command K but to be very inflow. So the idea would be, for example, if today I'm in like a TypeScript, right? And so I want to write some like client auth thing. I would then do like handleClientAuthWithCourse, like something like that. And I would hallucinate the function and then I move on. And the guarantee is that that function is already like in the back, Cursor is already trying to like, you know, uh, trying to implement it and make it, make it work. And so you move on, you, you go on with your life, and then whenever you're ready, you just go back. And then when you do like GD, maybe like go to definition, and it's already like in some other file like ready for you to view. That would be like a— that was like a cool experiment that Arvid worked on. Oh wow, that is really—
that is a really cool idea. I like that idea a lot because I feel— I feel like one thing that is going to happen in the next 6 months is, is that basically designers are going to be basically required in a way to come into the code base and like stub out their perfect user experience, like basically take whatever they design in Figma. But the problem there is then you often have to like to actually render that you need to get the props, do a backend call, get the data. All the types have to be correct. And a designer is like, what are all these squiggly red lines? I just want to see my HTML. But if you could do something like that where you just hallucinate the fetch request and you just say it's gonna return a dictionary of a user with a name and profile avatar URL or whatever. And then, you know, but then, you know, the designer can just go back to what they were doing and then Cursor, Cursor, like, sort of asynchronously, like, actually starts working on, like, making those changes. And then, uh, that I think would be really cool.
Yeah, I think there's a, there's a live demo for this too. So this one, like, you're just working in Flow, right? And you're typing out a bunch of And you see how it turned to green? Yeah. And you can then like unfold it to like see what Cursor came up with. And then you can like go in and fix it up with CPP or CursorTap. What is this page?
This is like a—
this is our blog. Uh, this is our problems, problems of the year. Um, we got a couple of things that we want to focus on.
Awesome. This is a good way. Yeah, basically if you want to get a job at Cursor, solve one of these problems, give us a good solution, and we'll, you know, yeah, exactly, appreciate it a lot. Yeah, 100%, 100%. Awesome. Yeah, the Symbol Browser thing honestly is going to save me so much time. I didn't know that existed. That's, that's like, yeah, the Claude artifact thing is such a nice invention, like a nice little UI evolution, I think it's gonna get way more popular. And at the end of the day, people like, you know, when you see someone, like when a normal, a normie sees someone coding like this, right? They look at this, their brain is like, what are you doing? Like, it looks like you're hacking into the Matrix or something. But if you can see on the side, like, oh, you're building a personal website. It's just an H1 tag, like, don't freak out, it's just a heading tag. Uh, I think it just sort of makes it just so much more approachable.
Yeah, and it's like, it's just a tab and then you can like move it around. I think it's super cool.
Yeah, that's really nice. Like, this should— yeah, this is gonna be really— so many people are gonna, gonna get into coding, which is— that, that's to me what's most exciting about this, like, seeing all the people watch these videos, it, you know, I'm only getting a sliver of like how many people are probably trying it out. But to me, it's just like, I want more people to be able to like not get blocked by like, oh, I need to hire an engineer to do this.
Yeah, it's a— I think it's really, it's super cool what, what Cursor's doing, I think. And, uh, yeah, I really like it. I use it a lot.
Do you use anything else? Like, are there, are there any times where you're like, oh, actually the best thing to get this problem solved is VS Code without Cursor or Sublime or TextMate or I don't know, like not real. I guess like if you're doing iOS, you kind of need to use Xcode. I don't know if you have a choice.
Oh, I don't really do iOS. Yeah, I was a huge VS Code person. I used GitHub Copilot a lot before I used Cursor. And even after, before they came up with Cursor Tap, I was using GitHub Copilot. I was really mind-blown by it, I think. But yeah, the problem with Copilot was like, it wouldn't— like, the trigger behavior is super obvious, and then a lot of times I found myself having to delete one character just so that I made a change, and then it would like recommend something. And it's only like, if I do like console.log and then If it's GitHub Copilot, it would be great, right? But if I did like console.log, then GitHub Copilot would just panic. And that was one of the biggest transitions I had with Cursor, I think, to like really migrate me out of GitHub Copilot. Interesting. Outside of Cursor, I just use— I'll just show you. This is just an app I built because I really like Vim. So I built this app where you can just jot down and everything is persistent. You can just jot down thoughts here. And I kind of went— this is the cool thing about this. I can actually show you code type here. It's super bad code, I admit. The app.jsx is 1.8k lines and it's just like everything was, this was pre-Composer too. Everything was just built with kind of command key, but I guess it gets the job done, you know, like it added Vim, it added a lot of really useful things. Like I could do like Command+P and then do like dark mode. And it looks good. I can even like create new, like, Cursor brainstorm, create a new note by just typing enter. So this is like some— this is what I'm talking about. Like, for tiny projects, Cursor really just enabled me to like ship fast and like get the concept out. And I'm actually just using it, like, I have it ported into Electron so that I can have a standalone app. Like this was what I was brainstorming on, right?
Nice. That's awesome. I mean, I find similarly, like I've never used Electron. I've heard of it too. It's like, oh yeah, Slack maybe was the first.
Cursor is Electron. VS Code is Electron.
That's cool. Oh really? Oh cool. I didn't really know. Oh wow. That's news to me. Wow. It's kind of crazy that like the path of like basically Atom, like started this whole wave of like, I mean, no one knows probably what Atom even is listening to this anymore, but Atom was, I think I was, I was Atom user, I was a huge Atom user.
Yeah, yeah.
And that was like pre-VS Code basically, uh, and that was probably inspired by TextMate or whatever. Yeah, yeah, me too. I love Sublime. What was it, what was your first, I mean, you said Vim, but what was your first like text editor, like like, I guess you're probably too young for Dreamweaver.
There was one— I remember I was trying to do HTML and there was one app that worked well with Mac called like— wait, let me just ask. There's this app called Started with WIG or something to edit HTML really easily. Popular in the— let's see. No, definitely not. Not Wix. There was a RapidWeaver.
I'm not— no, which is like a wiggle.
Is it wiggle? Uh, wiggle IDE.
Let's search. Probably not.
I don't remember.
There was a Panic had a— what, Coda? Did you ever use Coda? Oh man, that was Coda. Yeah, that was like— it was if there was designers built an IDE. It was like the prettiest IDE ever.
Uh, this is— it looks really, uh—
oh, that's pretty good. It was fun. It was pretty cool. It's useful. It was like really nice because you could basically like It was back in the FTP days where you could, if you're working on a personal website, you just SFTP and then you could, it just gave you this beautiful WYSIWYG editor and code editor and you just saved and it just saved everything to your server. It was really nice. Panic is such a wonderful company and people don't really think about that company anymore, but I still love their aesthetic. Coda? Yeah, Coda, or now it's Nova, I guess. But Panic.com, they did Transit, if you know that, or I mean—
I don't really know.
No, yeah, it's— I think I came from like a Mac iOS design background, so Panic was like the company that basically popularized a lot of like just basically making developer tools look pretty, like really pretty, you know? Focusing on, on that kind of stuff. But, uh, yeah, now they do a thing called Playdate, that like little video game console thing that they're making. But they're cool, it's a cool company. But, but yeah, anyway, I wanted to say Electron, like I wanted to build like a little, uh, time tracker. I wanted to test, I don't really track like what I'm actually working on, and I just went into, uh, Cursor and I just said, hey, like, you know, build me a build me like a way to do this. Never used Electron before, and it was, it was like 3 files only, you know. Uh, yeah, it was like index.html, main.js, or whatever the 3 files were, and it worked. And I was literally like, wait, I just made a Mac app. Like, what the hell? And it was easy. Like, I've tried to make an app, Mac app, like using Xcode, and it's hell on earth. Like, it is so painful. Yeah, because there's all this weird proprietary Mackie type stuff you have to learn, but like Electron has abstracted all that away and I was able to build like a little time tracker. And it was, yeah, it literally took me 1 minute and I was like, wow, this is crazy town. Like, yeah, Number doesn't have like an Electron app, but it would literally take us 5 minutes. Why don't we have one like that? Like all of these things, like you're, you know, your muscle memory is used to like how long it used to take and so you don't really reconsider a lot of decisions.
Yeah, it's, it's crazy. Yeah, I'm just letting it see if it works. Oh yeah, main.ts, uh, Electron. So I made like a main.ts for Electron. I think I'm supposed— I should add like ability to, to like run commands.
Yeah, I think some— for some, I mean, this seems like almost kind of like a projects feature where you could say, hey, anytime there's, you know, uh, I don't know, new, you know, commands that have to do with like yarn packages needing to be installed, like run them in the terminal or something. Because yeah, right now though, then you have to like copy paste, wait for them to finish. Yeah, it's funny because all these things used to be considered fast, but now we're they're slow relative to coding, you know, like the bottleneck is shifted.
Let's see if it works. And oh, I think I need the, the command. So you'd like to go package.json and reapply. See if it works. Accept. NTL concurrently. So I got a little sidetracked trying to turn this app into Electron. Oh, what the fuck?
Whoa, yeah, isn't that crazy? Honestly, that like, that's my— that's mind-boggling to me that you're able to— yeah, the website and turn it into an app. And like, you didn't have to read— like, you didn't read a single line of code doing that whole thing. You just trusted it. I mean, you know, you're doing enough to like know what's going on. But like, that's crazy. Yeah, it's crazy. I mean, like, anyone can just now build like a little Mac app, you know, for—
and they can play around. Yeah. And just—
yeah, I mean, like, there's, there's just like so much, so much value. Like, any, anyone who has a job, like, they're, they're on their laptop, they're doing some job, they can now little build a little Electron app that like effectively like does their job for them in a way, right? Like, to some view to some degree. Like, just like your Scratchpad thing, right? Like, there, there may be some, you know, you're a musician and you're like, I don't know, I, you, I kind of constantly need to be coming up with like interesting sounds, and you could just build your own little app that like allows you, allows you to do that, you know? Yeah, it's very—
the entry barrier is a lot lower, I feel like.
Yeah, 100%. It is so low. It is so low. But it's scary too, I think. I think, you know, because it's like, it's like kind of like during COVID you know, it's like you had all this time in the world, you know, just have fun, accomplish your goals, you're having a lot, and then you're— you want to have fun. Yeah, I think it's really— I think that's, that's the key, is like you want, you know, like some people are scared of AI and how it's going to change the world or whatever in good and bad ways, but I You, like, the world constantly changes. You have to be the one to say, okay, how can I continue to have fun in this world? I don't get to type code anymore. That's not probably what people are going to pay me to do. But like, what's the next evolution of this, of this role in society? And for sure, yeah, stuff like that. Um, yeah, that's pretty cool. Pretty cool.
Awesome. It's so cool. Yeah.
Yeah, I, I was blown away. I just didn't realize like Electron was that simple. It was just literally just like index.html and yeah, it's, it's, it's pretty— that's it.
Yeah, main.ts and even those like if it's packaged and it's already built out like the system for me to do electron.build but you can, I can already turn this into an app. A little, yeah, a little Bible.
Yeah. Bible file. Yeah. It's all these things that, you know, are not, it's kind of what you're saying, like brain dead sequence of events, right? Like there's nothing that difficult here in the sense of creativity required. It's just you would have had to like Google, like, you know, 4 years ago you'd had to Google like Electron docs. Okay, how do I do this? Paste that. Oh, you know, like, oh, it's out of date. Oh, I used the wrong thing. Like all these things that AI just knows. And it's, it's astonishingly, astonishingly good. Yeah.
Could you give me like, uh, one minute? I'm going to the bathroom real quick.
Yeah, sounds, sounds good. Sounds good. How's everyone doing? Pretty good. Have you used Cursor to upgrade packages? Um, like, uh, like Node.js, like Node module type stuff? Yeah. Um, so the other day I had to update, like, you know, there was probably 3 major, major changes I need to upgrade to. And, um, typically, you know, there's code changes involved and kind of a hassle. I was able to just drop in the changelog and it just worked miraculously. Yeah. I mean, at this point, if it doesn't do that, I would blame the people maintaining the package basically. Right. Because at this point, the people who maintain packages know what, how people, how people work today. Or at least, you know, it's changing quickly. So it's not like everyone's gone on this train, but like, I do think like we went from maybe a from 1% adoption of Cursor AI stuff to 10% in the last week. So it should become a default in the next few months. And so yeah, I would say these gem package, whatever maintainers should basically be writing changelogs as if people are just going to paste them and say, upgrade, this is the changelog. And sometimes they don't do a good job, right? They just say, hey, We changed the method definitions of this, right? What they should do instead is say, we changed the method definitions. They used to be this, now they're this. The way you fix this is changing this to that and just being more comprehensive, basically. Yeah, absolutely. The reason they don't do that is because humans read them. So like, if, if, you know, they're, they're, they're read like they're like made to be like really pithy little one-liners. But if the expectation now is that actually, and what's actually gonna happen, I think, is that basically like these bots, like Renovate, Dependabot, will just get smarter and smarter and smarter so that like when there's a Rails upgrade from 7 to 8, what currently happens is that it does it, it upgrades the gem, but then the tests will just fail. Like the tests will all fail, basically. And over time, I think basically when it upgrades Rails, the tests will fail. If the tests fail, it should basically recursively look at the changelog and try to fix the the codebase in order to make the tests pass and then keep doing that, eventually gives up. But I think there's probably maybe 80, 90% of the manual labor required in upgrading stuff is— it's— I honestly, that phrase is gonna stick in my head for a long time, like brain dead sequence of events. Because that's really what AI— like the bar for what is considered brain dead is going up a lot, I think. But that's basically what it is. There's so much work in building stuff that has almost no creativity involved, right? Like upgrading gems, switching from CSS to Tailwind, moving from this to that, right? There's all of these translation transforms that people have to do that are important to do. They're still necessary, but they're just not worth, they're not nearly worth a lot of like, to the business, there's not a lot of value, right? Um, so AI should be doing all of those things. I mean, like, merge conflicts is another big one, in my opinion, where, uh, basically there should be no merge conflicts. Like, because the reason merge conflicts happen generally is because, like, there's big diffs on two different people working on two different things, but they're in the same files, right? Um, but if, if AI is constantly making sure that like on any potential merge conflicts or any small merge conflicts, they get resolved automatically, then you never get the big ones that AI can't really do. And then you need like a human in the loop to like look at all the, what's going on and what's all the changes. And then that I think would save like another 10 to 20% of dev time. Like there's just such a huge amount of time spent on like, like right now we're migrating Flexile to Tailwind. Jack is doing the pages and I'm doing the components, right? And the reason is because we wanna avoid merge conflicts. But like we're just doing a deterministic change from CSS to Tailwind. Like there's no, like AI should, can already, if we just had the right prompts and stuff, we could probably do it already. But you know, it just, it should just figure that out. Like if there's any, like right now, for example, this happened actually today where in main I updated the file. In the branch, I deleted the file and all the AI has to know is like, okay, the context is you're basically moving to Tailwind. So the answer is you delete the file. You don't need the file anymore. And it should just do that. And it should just— we started using this thing called AutoFix, which is incredible. It's this little gem in, or this little plugin. I don't know what you call it, plugin, whatever. Thing you add to app for GitHub and it just automatically commits on your PRs. And it just fixes stuff it finds. It's like a linter except you don't run the linter. It runs the linter for you. And I love that because I basically can just ship my stuff and then wake up the next morning and it's fixed all my errors. And I can imagine that gets more and more powerful over time where you have really, really powerful, you know, AIs you've added to the codebase effectively. And it's gonna get really, really good. So, uh, yeah, but that was, that was awesome. I don't know if Ian's still here, but that was pretty amazing. Honestly, I learned a lot. I got a lot out of it, uh, especially the simple browser. The fact that simple browser, I think, is underrated. Uh, I think that's an underrated way of building stuff and seeing what you're actually trying to do. Please explain. Please, please explain.
I closed the wrong path.
AI can't stop you from being stupid. Just kidding. That's awesome. Well, yeah, I mean, I think we covered most of what I wanted to talk about. What else? Let's see if any other people have questions. Uh, when using Composer, is there a command to quickly choose a certain Composer project or just select files? So to select the project ID, I need to go into the Composer control panel to select it.
Yeah, I think, I think that part we still have to make it better. Uh, right now the only way to open a Composer from a project is from the project view, and then you hit Command+I or create a new one by hitting the new composer on the bottom right. But, uh, I'll— we'll add the ability to like select projects. I'll make sure that's implemented.
Yeah, yeah, I love the idea of having projects that you can almost pin and say, hey, today I'm doing this, and so everything I do kind of needs this context added to it and these kinds of macros associated, associated, you know, um, like I'm just refactoring the code base today. So yeah, um, have you messed around with the— do you use Tailwind? Is, is Cursor a Tailwind shop?
Uh, I use Tailwind personally. Uh, internally we don't use Tailwind. It's kind of hard to— oh really? Integrate it into the VS Code codebase.
Oh, I see. Yeah, so for cursor, like, to build, to actually, like, but cursor.com and stuff you will, but it's just not—
yeah, those are, those are cursor.com uses Tailwind.
Got it, got it. And what do you think about Vercel v0, v0.dev, their new chat stuff? Like, do you think you'll use that as a way of building stuff potentially? Uh, like, you know, it's kind of a little bit of a scratchpad-ish kind of thing. I think it's super cool.
I think it's, uh, I haven't played it like extensive. I've only done like one, uh, one or two chats. Um, I think it's super cool though. I think I've seen a lot of people's demos of what they built with v0, and, uh, seems like they've done a really good job on like going from description to like actual UI. Uh, yeah. And I saw a guy, I think Imrat hooked up VZero to Christian or something. That's insane. Yo, really? Yeah, it's really cool.
I'll check it out. Yeah, he's been— he's somewhere in here. Yeah, uh, Imrat. Yeah, there's so much. It's crazy how much stuff has popped up in like the last few days even, honestly. There's websites about cursor, cursor directories, YouTube series, and communities. And it's definitely having a moment, which is kind of crazy how it really is. It's kind of like Stable Diffusion back in the day. Everyone was obsessed with making Pokémon, extra Pokémon or whatever, going viral. Hey guys, I got a question.
First of all, what you guys are doing at Cursor is just awesome.
It's so cool. I have one person on my team who's just like a hardcore Vim user, and we finally were able to get him to use Cursor.
Would not use VS Code, but he sees us use Cursor and he finally changed, which is really cool.
So we have proprietary patterns and I was wondering, is there a particular way for us to pre-prompt Cursor so it knows some of the naming conventions and patterns that we use for our codebase?
I think right now you can probably add to the cursor rules, like the cursor rules, or like as a file.cursor_rules. I think we talked about this, and you could probably like put your definitions there and like, uh, put some like the project-specific descriptions there. That would probably be useful.
Awesome, thank you, thank you. Yeah, if you want, I can show you kind of an example of, uh, yeah, that'd be awesome. Awesome. Yeah, let me Or let me see where— Yeah, so let me share my screen really quickly and then I can share, I can show you this example real quick and I can go back. So this is for Flexile, flexile.com. But yeah, so we have like, we're attempting this, we haven't merged it, you can see, but we're like trialing it out. But you can kind of see, like, we're basically taking our onboarding docs that, you know, like, all of the edge cases of, you know, proprietary, in my opinion, honestly, is bad. Like, it's kind of like, just like you have to teach every human about it, you also now have to teach every AI about it. And it's kind of a smell, like, you want to minimize, I think, as much proprietary stuff as possible. But, uh, like, ideally, we don't even have to say this. Like, it should just know, like, you know, Ruby file, it's always the latest, blah, blah, blah. But, like, imagine we just said, like, you know, let's say we're really stuck, we're like, you know, using like Ruby 2 or, you know, Rails 4, you know, then it would be useful to tell, tell this. But the goal, I think of this almost like technical debt, like over time you want to delete it because you shouldn't need as much of it anymore. Cursor will get smarter, clog will get smarter, etc., etc., etc. But this is kind of what we do is we just kind of like, we're trying, just putting basically as much context in this cursor rules as possible so that like Basically, someone new should come on board. If they're using Cursor to ship, there should be almost no PR feedback from senior engineers who are like, hey, you didn't do this. All the tiny little— same thing as Ian was saying, all these brain dead sequences of events where it's just like, it's not— I mean, this is probably redundant, but sometimes people will not know that, oh, the way that we are handling routers because routes because we have Rails, Ruby in the backend, and then we have frontend Vue, and they need to sync. And the way we've chosen to sync is to basically have Rails manage the routers. This is something we'd have to teach every single person. But if we can just put it right in here and say, this is how we use it, ideally, it would just pick up all of these things and then— I love that example. That's such a good example. Yeah, I mean, it's really tech debt. I mean, the thing that I think— I think that the really interesting trend you're going to see in the next, like, 6 months is all of these companies have made decisions to basically be okay with tech debt because effectively it doesn't mean more features for users, so it doesn't lead to more money generally. And tech debt is just very time-consuming to solve. It may be brain dead, but it's, like, still time-consuming to migrate, right? The amount of lines of code that actually have to change is, like, just tons. Like, let's say we want to do ditch Rails and move to like a TypeScript-only, you know, sort of stack, which we wanna do. But all of a sudden AI, one, AI means that you can get rid of the tech debt much faster. So whatever cost you were evaluating when you're prioritizing stuff, you know, let's say it's $1 million of labor, it's now $100,000 of labor. So that alone should speed up a lot of refactors. But then on top of that, you have a double win, which is the less technical debt you have, more AI can do your work for you. Because basically almost all the human prompting now is like explaining the technical debt of the project, right? Because if it was purely clean, perfect code, super new, then, you know, you basically— AI could do all of it. Like the, like the demo Ian was showing was amaz— you know, like doing boilerplate, like starting from scratch projects are amazing with AI because you have no technical debt, right? But when you spin up Gumroad, which is a 13-year-old code base, with 16,000 tests and started with Python, then moved to Rails, and then now we're moving— then we had Flight and then jQuery and then Flight and then React. And we still have jQuery, we still have Flight, and we have React as 80% of the code base, but we still have Flight because these other pages we haven't migrated. It's like all this you have to teach the AI, but for some reason it was okay to teach the human. No one complained that much. Like, oh, it's annoying that we have to teach every human this because it's just why it was. But now you have infinite amounts of AI. And so I think all the math changes where all of a sudden, the technical debt is so much more expensive and so much cheaper to get rid of that you're going to start actually— it's going to be more fun to be an engineer because you're going to deal with less technical debt generally. You're just going to get to— generally, you're like, I'm an engineer. I think we should get rid of technical debt. And then your CEO is like, no, we need to ship these 30 features. Otherwise, we're dead. But I think that equation is gonna shift and it's gonna just make it more fun to be an engineer. Cause you're actually gonna be able to spend more time like making the code better. And that's way more fun as an engineer because there's gonna be no bugs that you're gonna have to fix. You don't have to talk to users and like, you know, like all of the annoying things about, you know, annoying, scary things about developing are often to do with like shipping new features. Right? So if you're just doing a refactor, that's pretty dream job, honestly. I love it. I love refactoring code. Like, it's just so fun. So, yeah. What do you think's gonna happen to software engineering? Are we screwed? Or like, what, you know, do you think people will hire more, less? Like, people will have to be more skilled when they graduate college or like less skilled or juniors are done or like how, yeah, like I don't know, what are your hot takes on this kind of stuff?
I think my take on this would be, I think I mentioned this at the start, I think what Kurzer is amazing at is making you, at least for me, I feel like I'm at least 10 times, maybe an exaggeration, but I feel really productive. When I'm using Cursor. And so the idea is like, if we can make one programmer really, really proficient, or like if we can make somebody really, really productive and can ship a lot more, then if we look at just one person, his or her own value is like increased by a lot, you know? And even like nowadays, everybody can, with a little bit of like— I think one thing that people don't think about a lot is like how there's literally like a chat built into Cursor too. Like Cursor's— when I think when people try to like criticize Cursor, they think about, oh, AI coding is like, ah, you just coding with AI, it's a bad or whatever. But what's also helpful with a chat is like you can literally learn and understand what you're building on the spot. So you're not only just shipping faster, you're all— you're also gaining a lot more knowledge in a faster pace, right? And like, the difference between like Googling all your problems and like finding the solutions would be ChatGPT gives you like a— like an essay, like just like, oh, this is what you're looking for. And that just speeds up the whole learning process, the whole shipping process. And I think as a software developer, it's a great time to start, you know, just building. Yeah, yeah, you're totally right.
I mean, it's, it's the best way to learn is to try to solve the problem and like exactly reverse and reverse engineer how someone else solved the problem. But often you had to like, you know, you'd like— your math teacher would be like, hey, this is how, you know, this is, you know, 1 1 2, 2 2 4. And then you take the math test and it's just like something you you've never seen before and you're like, I don't know what to do. But in the context of building things in real life, you prompt the AI to do the thing and then you read what the AI did, right? And you're like, oh, it's like proof of work in a way. You're seeing the actual sort of, I never really learned Tailwind. I'm a boomer at this point. I'm 32 years old. And I was like, I don't really wanna learn Tailwind. It's kind of annoying. And then what I did is I just copy-pasted our CSS and put it in and said, translate this into Tailwind. And it did all these, you know, it did that. And then I like read the code and I was like, oh, I know Tailwind now. It took me 5 minutes. It turns out MT is short for margin-top and like, yeah, like MB, PX, 4, 5 font. It's like amazing actually. It's, it's better, way better honestly than like border radius. I mean, I did that, you know, 15 years ago when I learned border radius and font size and font family and line height and blah blah blah. This is just like a new, a new like abstraction layer on top of that. Uh, yeah.
And I also feel like, uh, with, with AI right next to your code, you learn— I, I personally, I learned a lot more because when, when I'm trying to come up with a solution, what I usually do nowadays is I either just ask chat or like I just use Command+K to simultaneously, as I think about my solution, let it run out. Then I can compare in my head like, oh, I thought about this solution and it proposed that solution. Oh, maybe that's better. Now I know a better way of doing it. Or I could ask ChatGPT, why is this better than doing blah, blah, blah instead? ChatGPT would just be a great teacher.
Yeah, I fully agree. I mean, I think so many people are like, they're like, oh, you know, like, you can't, like, cursor, you can't, you know, you can't use AI to like build stuff. But actually, like, the humbler you are, like, the more willing you— I mean, like, I love that the fact that the way you started it and just said like, do something cool. I think that's so important because at the end of the day, like, you know, you become like— I started out as a designer and then I was like, I'm only going to use Helvetica. I'm only gonna use white backgrounds. I'm only gonna use— like, you just, you figure out like who you are as, you know, what your fingerprint, your style, who you are as an engineer. And then you get stuck, frankly, you stop growing. Right. And so if you're willing to actually like give less, be less demanding and say, actually like be creative, do something weird, do something cool, do something creative, do something like I started saying pretty a lot. I'm just like, make it pretty. And then I grow as a designer, 'cause I'm like, oh man, that is so much better than what I would've done. I would've done the same thing that I've always done. All my labels are gray, you know, CCC and all this, and then whatever. And same thing with Tailwind. Like moving to Tailwind has been nice because as we've moved to Tailwind, our design has improved purely by just deleting the proprietary stuff and switching to how they do spacers, how they do fonts, how they do this, because they've thought about this stuff way more than I have and anyone on our team has. And then extrapolate that to the AI. The AI has thought, quote unquote, about all of these things way more than any one human has. And so yeah, I feel like if you get comfortable and you figure out like the sort of fuzziness you want where you don't wanna be too vague, you don't just say go, right? You need just a little bit of direction. I think of it almost like a flashlight or something where you can kind of choose like the, where the focus, and you can really start to like really, really have fun. Because to me, that's like the happy surprises are what makes it fun. It's like when you're a confident painter, the best painters I've ever met, when they paint, they just, they start with like crazy colors and they just go like wild with it. Like, and then because they know they can make it look like what it's supposed to look like, right? And so over time they like render the face and, but then they have this really cool abstract thing. Yeah, I've seen those leading in versus like, yeah, like speed painting and all that kind of stuff. But then the students, what they do is they like draw everything perfectly and then they fill in everything and it's like color by numbers, right? Like paint by numbers. And like no one looks at a paint by numbers book and is like, that's beautiful, that's artistic, that's exciting to look at for a long time, right? Uh, and so yeah, I think the confidence actually gives you that like freedom to, to like kind of give it, let go in a way. And I think, I don't know, it's, it's exciting to me.
Like when people are like, it's super exciting.
Yeah, it's so, it's so exciting. I mean, like, I, I think people— yeah, it's just— sometimes frustrates me.
But I think, yeah, I think at the end of the day, we still have to remind ourselves that these are tools and tools are supposed to benefit and make life, make you happier, I think. And my rule of thumb of doing things in life is just like making sure that I'm happy at the end of the day. And I think whatever Cursor has helped me is making me pretty happy.
So I don't see Yeah, yeah, I think, I think if you really truly enjoy making stuff, it's like such an exciting time. And I think a lot of people are realizing like maybe they don't like making stuff, like they got a job making stuff because they needed to pay the bills and that was like the closest to, to like what they really truly enjoyed. But what they truly enjoyed was like, you know, like surfing on the beach or something, right? Or whatever. And, and then when AI is now doing the doing— like, I, I have a painter friend, and I was talking to her about AI. This is maybe 2 years ago now, and she's, you know, pretty famous artist, whatever. She works for Marvel. Like, she's, she's very successful. And she was saying, like, you know, the thing that, you know, you don't get is, like, I enjoy the act of painting. Like, I enjoy, like, this. Like, and I enjoyed listening to music and doing the thing. And, you know, it's like, well, then do it. Like, just You can do it. Just do it. Just buy paints and paint. No one's stopping anyone from riding a horse, even though there's cars. You may not be able to do it in the sort of capitalistic way, but that is maybe unfortunate. But yeah, I think if you're truly one of these people who likes to build and make stuff, and your vision for what you can now make You're like, oh, I can make an Electron app? Like, what? Yeah, it's like, yeah, it's like instead of like saying visit my personal website, it's like download my app, you know? Like, yeah, you know, it's just like there's just— your, your mind can expand so much. And then to your point, you have the chat, so like you can learn all the things that you're, you know, you would have taken you so much longer to learn because you're only learning what you need to learn in order to do the thing you want it to do anyway. Right? Like, I went for a walk yesterday and someone, someone asked me, they're like, uh, how do I learn to code? And I was like, uh, that's a very hard question to answer. I like, I was like, uh, what do you want to build? And he's like, I don't know.
And I'm like, dude, whenever I'm asked that question, I always just be like, what do you use every day? And like, what do you play, video games? Do you use Messenger? Like 'What do you use?' And just try to build it. Like, and you'll— if you like it, you know, you'll like it.
Yeah, like, what do you— what do you use that you think could be slightly better, maybe? And build that. Uh, yeah, he's like, 'I don't know.' And I'm like, 'You honestly, you have a perfect life. You have no problems. And so you don't have to build anything. Don't worry about it.' You know, and one day you're gonna have an imperfect life Something's gonna happen and you're gonna be like, oh, this is annoying, this is expensive, this is slow. Uh, and then you'll be an entrepreneur because you'll have it, you'll build it. And then, you know, you'll learn how to code. Uh, you'll learn how to code when you need to learn how to code. I mean, learning the code, by the way, is not enjoy— it's not intrinsically a thing that we, like, humans love to do, right? Like, it's not like you see, you go out there and it's just like people are like learning to code. It's like You wanted, you really wanted something and the only way to get that thing was through learning JavaScript syntax, you know? Yeah. You wanted a web— Yeah.
I remember like in high school I was, there was zero ChatGPT back then, right? And then I was a, I was like super into just trying to build something, but then my only blocker would be like, how, how can I learn faster? You know, I would like, even like on the plane, I would download those offline apps just to teach you how to like code in a certain language so I can gain more knowledge about, oh, what I can build. I, I view this sort of like a tool belt, right? Uh, like collecting tools to use. And now Cursor is just like one of the tools on my tool belt, and it's just like a speedup.
Yeah, it's like a tool that gives you access to more tools, so it's like a super tool. And yeah, like you Yeah. And I, there's like this, I mean, what I would love to see is more generalists, you know, people who don't think about, oh, I need to get like really deep, like get a PhD in TypeScript or web app development. Cause those things are not that hard now. And, you know, there's so many levels of abstraction. You can outsource stuff. There's open source, there's Vercel, whatever. But actually just getting more and more horizontal and that I think unlocks like the really powerful ideas anyway, right? Like the way you have ideas like Cursor is you have some design sensibility that came from somewhere and then some engineering sensibility that came from somewhere and some product sense from watch, you know, some reading some Paul Graham essays over here and like listening to this over here and like doing acid, whatever, whatever it is. Like whatever your life experience is, I think just adding more to it, right? Just like stuffing your prompt, right? Like stuffing as much context into the prompt and then just say like, do something cool. I mean, I think that's part— partly, uh, a good exercise for humans to do every once in a while, right? It's just— I always sit in front of your computer.
I think, I think my, my take on that is like, I, I think Cursor is like the bridge to like from, from not knowing the coding to like code, code quickly, build something quickly. And I also see how like some people say— this is my response, like, when people say, oh, I really enjoy, uh, sort of like building out an API and like making sure that things are great and if things work in unison. Like, I also get that. Like, I think Voxelize, if we look at the, the whole Voxelize codebase, it's, it's like also pretty, pretty huge. Like, if you look at like packages and there's core, and there's— obviously it's not good— the core, and there's like, it's like really a lot of code. And at the end of the day, I still think in that case then you can use, uh, you can just like come up with the big picture and then work with the AI to like do it faster, you know. At the end of the day, you're still trying to get to your goal of like a beautiful codebase, and that's totally doable, right? It's not like AI is gonna like purposely put on, you know what, just give it a little Easter egg bug right there.
Yeah, yeah, I have seen that comment where they're like, what are you gonna do when you wake up and you have a bunch of spaghetti code full of bugs?
And it's like, I think then, then that, that like my honest response to that would be just be like, maybe you should learn how to— maybe it's just you're not that familiar with how to prompt. Yes, all right. Yeah, and then exactly, uh, because it's a tool, like, it's, it's not like a, like a malware that's trying to break your computer.
Yeah, it doesn't have a, an agenda necessarily. It's gonna kind of just do what you wanted to do.
Yeah, I think like, yeah, even just bugs, you can use ChatGPT to like find bugs for you, right? Yeah, make sure that it's not as clear.
And I think that's Totally do. Yeah. The other thing is like you still have humans in the loop, right? Like I think some people are like, oh, this can't do everything. It's like, yeah, but it can do like 40% of my job and then I can actually invest 100% of my energy in the 60%. And then actually that 60% is much better quality than the 60% otherwise would've been. Like I spend more time crafting like nice quirky tweets for the Gumroad account than I used to because before, it's like I just take the screenshot, be like, ah, we launched the feature, and I go back to like building stuff. But if building stuff is now, you know, takes a tenth of the time, then I might spend like an extra 10 minutes like trying to come up with like, you know, talking to Claude and trying to come up with some puns and jokes and whatever. And I noticed like the, the, you know, my, I don't know, Gumroad gets like 200 likes per tweet if I invest that effort. Uh, so it's, it's sort of, it's, it's, it's noticeable.
It's super usable. AI allows people to focus more on the problems that actually matter. I think that's how I feel.
Yeah, exactly. The creative problem. I think some people think the problem that matters is a minutia. They actually don't care about the general abstraction and they only want to write CSS. Like what they really like it, like it's sort of like the problem that inspires them is kind of like a video game. Like it's not real, but it, that's what they like doing. Like they specifically like that sort of playing, you know, CSS, you know?
I think that's, that's, that's totally fine. Then, then they will probably benefit a lot from CursorTap, like the, the— yeah, they'll have a good time.
I feel like, yeah, I think that's right. I think there's gonna be different personality types, different kinds of engineers. Ears. And ideally, the AI knows that and can sort of provide all the different tooling. You know, the different— like, people prefer chatting and typing everything themselves once they know what to do, fine, and then tabbing the rest, great. But I love— I want to do Composer for everything. Like, that's my goal. I want to— I don't want to write a single line of code ever again.
I like a hybrid between the two. So yeah.
Yeah, go back and forth. Yeah, and at the end of the day, like, I'm not even a real engineer. I'm a— I, I, I, I own a business that requires engineering, and I, you know, I enjoyed building the product more than any other part of the business. But at the end of the day, I'm trying to act— I'm trying to operate on a higher level anyway, which is like, I'm only coding because I have to. Like, code is required as a function of shipping mode. If I could just spend all of my time in Figma or like, you know, Chrome or whatever, then that would be cool. But yeah, you know, it's just a bit— just about solving the problem and, you know, using the tools.
Just do whatever interests you. I think the most important thing is just do whatever interests you and just get the other parts done. That's the takeaway I have.
Yeah, yeah, 100%. Awesome. Cool. Well, thanks for doing this. I think it was really helpful. I think people enjoyed it. Yeah. And are you gonna go to the office now?
Yep, I'm gonna go back. Nice. Do a little bit more work. Yeah. Awesome. All right, this has been really— it's been really, really fun. Uh, if anybody in the chat has, uh, any, any problems, just you can shoot me a message.
I'll reply. Yeah, let me, uh, put your handle on, on, uh, in the chat so people have it. And yeah, it was, it was, it was awesome. Good night. Good night. Catch you later.
All right, see you.
Bye. All right everybody, that was pretty awesome. Anyone else have any Q&A? We have technically another 43 minutes to get to 3 hours, but I've been in the office since like 8:30 AM, so I'm almost at 12 hours. Pretty crazy. It's funny because I don't like working, I say, but, uh I find myself at the office at 9. Oh, hey, Sahil. Sorry, uh, how's it going?
First of all, thanks a lot for, uh, hosting those sessions. Uh, it's my first time. You're welcome. Unfortunately missed the first few, but this was, uh, you know, hey, they're recorded, so I highly recommend. I've been following the YouTube links. So, uh, this was— I feel lucky that, uh, today was my first day because Ian joined and I got to see how Cursor works. I guess my question would be, what's the best time to, I guess, ask a non-Cursor-related question, if that's okay?
Yeah, I mean, I would try to reframe it as a Cursor question. I'm sure you can, or we can ask Claude to do that. But as long as you're comfortable with being on stream and recorded, you can ask it now.
Of course, of course. Basically, we've also been building a company in the anti-work philosophy. Once you shared the public board meeting, it was really, I guess, interesting to see such an eloquent way to describe. I know it's pretty popular these days to be like, there's something you don't want to do and we are helping you to only focus on what you like to do and Cursor is basically that philosophy as well. Yeah, totally. Some quick thoughts, if you don't mind, on what we're building. I mean, building Gumroad for a while, it pretty resonates, I think. Is that okay? Yeah, if you have different agenda.
No, let's do it. Sounds good.
Yep, yep, I'll go for it. So basically what we're building is called Perceptus. I guess a shameless plug here, I'll throw in the chat, but what we are doing is we want to help small or mid-sized consulting firms grow without, you know, hiring tons of people.
And the way we start doing that is, um, we can share my screen, by the way, so people can see.
Yeah, of course. Totally, totally.
Thank you. Oh yeah, give me one second. Oops. All right, cool. People should see my screen. Yeah.
Oh yes, you see the, the wonderful video happening in the background. Well, that's Framer. Anyway, so what we are doing is we are helping smaller mid-sized consulting firms grow. The way we achieve that is we help them create McKinsey-grade proposals and get back to every single client of them in 24 hours with McKinsey-grade proposal using AI, of course. So the way it works, they would sign up for us and make a request, basically the same way they would make a request to their back office or to their associates. They would just like type, hey, I just met Sahil, I'm a specialist in, you know, Cursor, let's say, and I want to get his team up to speed with Cursor and set up the environment. And he would be like, sure, and he just needs to send you a proposal. Before you can start the engagement. And the chance of landing a deal really drops by 90% if you don't get back to the client that week. And where we help is we deliver that proposal to you in McKinsey-grade quality in 24 hours. That has been our value proposition. And like, in general, our big vision was to help professional services scale because We think it's a vital part of the society, but really tough to, you know, enjoy it and achieve a big impact without becoming a corporation. I'll be happy to hear if you have any thoughts or feedback on what I just said. I think it pretty resonates with Gumroad, but maybe more in like an official consulting-ish way, while Gumroad is definitely more for independent creators.
Yeah, I mean, I think, I think it's, it's great. I mean, I think the problem you're going to run into is that all this stuff is going to be free and productized and like just built into AI. So like you won't even need to use any tools, right? Where you'll ever— and anyone will just be able to go on to their iPhone and, you know, in 5 years from now, let's say, and say— and this is kind of part of the anti-work kind of like philosophy that I've been trying to like wrap my head around, um, which is like Basically anything to do with software is going to cost no money. And the reason is software is free. Software is just light particles, like in order, electrons and 0, 1, 0, 1, whatever. And so inevitably all of this stuff, just like Economics 101, all profits tend to zero. So I think that The really interesting thing about the software business is it's freaking brutal, right? Because if you sell a cup of coffee, you can sell that cup of coffee, right? But if you're selling a piece of software, you are effectively taking light and trying to monetize it. Like, that's super hard. And you can, because there are opportunities to do it, but only because certain people can and certain people cannot. And so over time, as AI propagates, basically it means Everybody will be able to do something. What is McKinsey? What is really McKinsey? The sort of pithy sort of take is that McKinsey is a really smart person, basically.
Yep. Totally. Someone who sells expertise.
Yep. If you're a family business that does textiles in Pakistan and you don't have anyone around you who is an insanely smart person about business, what do you do? You know, you need someone, you need help, and so you go to McKinsey basically, right? That's like their entire function is just being really smart, uh, and so that will completely tend to zero basically because, well, all of a sudden AI means there is a really smart person next to them, right? Um, zero cost. So with zero cost, which basically means that like almost all of the value— if you think about like What are examples of that? Basically, people still pay for stuff that is almost, that is near them, but then they still drive to pay more money for something else, right? And it's often brand, right, is a big one. So I think you have to spend more and more time on brand, right? I think McKinsey is a brand, right? More than anything. I think the Olympics is a brand. Right? Like, you go watch anyone play sports, uh, and then what is a brand? Like, what— like, what— what— like, to get a little bit metaphysical about it, a brand is, is basically knowledge that something is in other people's heads, right? To me, that's what brand really is. And so the goal becomes not necessarily like building a product that solves a problem, because that will not be differentiated. In any short order. It'll actually— it's actually just about putting your idea in every— as many people's heads as possible, right? So for example, like this class that I'm teaching, Coding with Cursor, I wanted to be like the sort of reference pointer of like, if you're thinking about coding with cursor or learning coding with cursor, how to code with cursor, or coding with AI, or any of these things, I wanted to be like associated with that, you know, in a sort of actual embeddings. But, you know, and that's basically my measurement is just like how many people have watched any of these videos, how long have they watched them, you know? And my competition is Stanford, basically. Like when I was a kid, I learned iOS development via Stanford CS193P. Yep. And I did the math and a Stanford course is about 8,500 watch hours of content. You know, the 200 students, 12 weeks, 4 hours a week, whatever the math is, something like that. And so now that's my metric is to get to 8,500 watch hours. And effectively that's how Stanford built a brand. Like Stanford built a brand because it's old and they did 8,500 watch hours in whenever, I don't know how old Stanford is, but let's check. How old is Stanford? I think something 200 years, 300 years. Yeah, 138 years. 138 years. Uh, so it's not even that old, to be honest, right? Compared to Harvard, it's not. It's like, I think like a lot of those universities are like 100 years older than Stanford. Uh, late 1700s. Um, but it's that 8,500 watch hours led to, you know, 1,600, you know, 16,000 watch hours. To, you know, $40,000 to $100,000. And now when Stanford does a commencement speech, right, like when Steve Jobs— Steve Jobs commencement speech YouTube, let's see, this is one of the best things ever, by the way, if people haven't watched it. Easily 10 million views. Okay, well, we'll do 44 million views, right? And this is something that like every And to be honest, sometimes I see these numbers, I think they're tiny. Cause I'm like, only 44 million people like have seen this. Like every, every single person I know has watched this because like, you can't really participate in the tech industry without like having seen this video, you know? Yup. You realize the tech industry is very small. So anyway, this is all like a roundabout way of basically being like, you know, like the brand, like trying to build the brand, which is then just goes back to what you're doing in the beginning, which is just solving the problem, selling the service, you know, providing value, right? Basically, like, actually just being really helpful. Uh, and yeah, so I don't know, I don't know exactly what your question was, to be honest, but, uh, but yeah, I mean, I was just curious how you think of, like, professional services, um, and your work and how all that really plays out in the art. Yeah. Um, yeah. And then I think, I think like the anti-work stuff, I can, let me show, I can show something. Um, uh, yeah, let me share my, my screen more. Um, okay. Yeah, I think, I, I think a ton about this, uh, cuz you know, we have 31 people and, and many of them, even though they haven't told me so, are probably like, am I gonna have a job in like 3 months? Like Sahil's tweeting some crazy shit. Like, what's going on? Uh, but I mean, the truth is they, they will if they want one, basically. Like, they have to earn it, you know. Uh, they can't be— uh, we actually have a value which has been true for a long time. Uh, so these are cultural values, and we have this one. Uh, our jobs, you know, our jobs change constantly every 3 months, right? So like every quarter. Like, you, you could not be doing the same thing you were doing 3 months ago, right? Like, you're not a dishwasher doing dishes every day. You're a creative person. And the beauty of software is it runs when you're asleep. So in theory, like, your job is to literally do your job— make the computer do your job while you're asleep. So in theory, every 3 months you're out of a job because your job is now automated, because you just— that's what you just did. So you're constantly having a big market that just automates. Yeah, 100%. You're running away. There's like this Mario Party game where you're running away from a boulder or something like that. And I often think of this image when I— let me see if I can find it. Mario Party. And it's a— it's just such a real problem that I think about, which is it's really kind of like a game of musical chairs where you're running away and you're just trying to be not the slowest person. You're just trying to— you can't— here, I'll show you. Running of the Bulb. I think this is part of it. Maybe I could be wrong, but let me share this part and then go back to the other thing, present something else.
By the way, I love the zero tolerance policy. I was just reading on your—
yeah, I— at the end of the day, we do have more tolerance, but it's important to say we don't so that people know, you know, people take it seriously. But, uh, yeah, so, you know, imagine you're just like running, you know, you're 4 players, you're running away, blah blah blah blah blah, and The way I think about it is that the speed— AI is just like the speed going up, right? Like Tetris, like it just gets harder and harder and harder because like every job becomes more dynamic, more creative, you know? And so as long as you're willing to move a little faster, be more creative, you know, upskill is the sort of political term for it, but like effectively, you know, upskill, you'll have a job, right? Because As Ian said, you're more valuable than you've ever been. So like, how could you— if you're, if you're now able to do 3 times the amount of work, then how could you not have a job? Like, you're literally 3 times more productive, right? It's like, it's getting like an A+ and then getting fired. Like, doesn't make a lot of sense. However, I think the dynamic people aren't aware of is like, well, what happens if there's just like no value left to provide the company? Like, there is— it doesn't matter how, how fast I can write code if like No one is using our product, for example, right? Or something like that. And so that I think is the big thing I'm thinking about, which is that's inevitably going to happen. Like eventually, maybe, I don't know, maybe I'm wrong, but like what happens when Gumroad's perfect, Flex House's perfect? This is why we're starting to build other products, by the way. It's like, we're like, oh shit. We're like, we're basically gonna inbox zero Gumroad soon because we're basically gonna build all of the things that need to exist. Cause it's a website. There's like bounds to what you can really do. This is the downside of brand is you can't really escape it. Oh yeah, this is my new update. If people wanna be scared, they can read this one, but let's see if I can find this one. But yeah, this is kind of how I think about the anti-work philosophy, which is, okay, what do you do in this situation? Well, one, I think you need a reframing of what are we all about? It's not just about making a bunch of money. And so anti-work kind of has this like triple meaning. So the, you know, the most obvious one is like, what, what is, you know, what are we trying to do here? Which is just like save people time, right? Like, you know, that kind of what you said, right? Like help people do what they really want to do, less of what they really don't want to do. So that's kind of like the obvious one. But then there's like two other things that I think are kind of interesting. One is this like equity and dividends piece, which is at the end of the day, Why am I not scared? Like, I'm walking around super freaking excited, right? And like, so is Ian, and so are a lot of people on Twitter. But then there's a lot of people who are like, uh-oh, like, what's going on? This is not good. What's going on? Like, I don't like this. And the reason is basically you can divide it up into two groups of people, right? One group owns equity in businesses that are going to be valuable in this future, and one group does not. And if you don't, you're scared because you don't yet have the house, right? Like you're pending the home ownership, you're right. And that's scary as hell. But if you have a house, you're like, oh, as long as I pay my property taxes, I'm fine. Right? That sort of thing. Like you go from like one extreme of being scared to like one extreme of like basically becoming an imbecile all of a sudden, right? Like that's just kind of what happens. So anyway, the solution is, in my view, is basically the team gets to earn equity in the business. So if they're scared, let's say that like their job is going to be automated. They're able to create $200,000 worth of value, but next year they're going to be able to create only, let's say, let's say zero, just simplify things. Well, then what they can do is say, hey, well, I'm going to take half my, my salary in cash and half my salary in future earnings of the company, because that's the rational thing to do in that situation. Uh, and we have people, you know, doing that. It's not going to happen that quickly. It's going to take more time and, and stuff like that because I think the thing that a lot of people don't think about is just like people have agency, right? So it's like, for example, like we're moving from, you know, CSS to Tailwind. That means a lot of jobs associated with CSS are gone because the designers can now just write the design in code. So like, what do all the frontend engineers do? Well, the stuff we discussed in Slack today was like, oh cool, now we can invest more time in like, maybe we should migrate off of AWS and do more like co-located server stuff. We could save like 20 grand a month doing that. And these are people who have no clue, by the way, how to do that, right? They're just really smart. They're software engineers who know how to write code. And there's examples in the past of people having done this transition, right? Which is really all you need to know to have confidence that you can also do that, right? And by the way, if we can't do it, guess what? We can hire someone who can, right? Like, there's not like We can't— we don't just give up, right? And so that's what I find is like people have this sort of like first degree of like, oh shit, I'm screwed if I don't do anything. Yes, you are screwed. But also you could wake up tomorrow and say, oh, I'm just gonna learn Tailwind and oh, this is actually great. I can ship more features. And Sahil's happy. Cause I'm shipping 10 times more. If you're like, hey, I refuse. I don't like the way the world is going. I like writing CSS. Then I would say awesome. You can stay here, but I can pay you much less than I'm currently paying you, frankly. It's just not valuable to the business. You can still get equity, you can still get dividends. I still like you. I still love you as a person. I still think you're freaking amazing. Just like, I don't know, I can meet someone who rides a horse and be like, "That's amazing." But— I'm still gonna ride. Yeah. Yeah. Like, I don't know. It's like watching the Olympics. There's like a bunch of sports. Cool. You know, like awesome. But that's not really jobs for most people. But then anyway, and then, so that's kind of like the second part. And then the third part, which is really, and this is like, it's kind of like a, maybe a flaw. It's like a character flaw of mine, but it's kind of like the thing that I can't get away from. And it's the thing that makes you like a crazy person who raises a bunch of VC at a young age and wants to change the world. And like, it's an ego, whatever, whatever you want to talk about it. But I can't help but try to like come up with a bigger vision for what I want to do. Maybe I just need to, because otherwise I'm like, what the fuck am I doing with my time? Why am I in the office at 9:00 PM? Like I could be hanging out, you know? So yeah, exactly. And so I tried to come up with this, this kind of system of thinking, which is, it just happens to be that in physics, work has a definition and work is basically how much energy it takes to do something, right? So if you want to move 100 pounds, 1 mile, you can just effectively multiply those two things. And it's going to, you know, for example, if you want to move it 5 miles, it's 5 times more effort basically. Right. And that's what work is. Work is just energy. And so that's what I say here. And then, you know, bad work is sort of like friction, right? Basically like friction and heat, right? Like things that kind of just like produce entropy without producing any value. And if you think about things like Gumroad and Flexile and software generally, what is the true value of software, right? The true value of software is like For example, this class, let's like be super meta about this. What is the value of YouTube, of this class? If you think about what you would've had to do 150 years ago, you would've had to like apply to Stanford, gotten into Stanford, gotten on a plane to go to Stanford, like ate food every single day you were at Stanford, you know, like commuted to Stanford. Like think about how much work, think about how much force times distance that requires. Yep. Right. And then, and then think about climate change. And those are the same. Like, why, like, what, what is the— why is the climate a problem? Regardless of your position on it, it has something to do with there's a lot of humans doing a lot of stuff, right? Like, it doesn't matter, cows or cars or whatever. At the end of the day, we have 8 billion Think about how large that number is. 8 billion humans is a lot of people, and they're flying planes and driving cars and doing all this stuff. And so if Gumroad and all of the software, frankly, all of the software industry, if all we do is basically reduce work, reduce unnecessary labor and work, then we can make a big dent in effectively preventing climate change or not preventing it, but slowing it down or whatever else. Uh, but more importantly, and this is kind of where I get kind of strange, uh, but at the end of the day, if you're like, you know, sort of taking a physics class, you kind of know that like global warming is inevitable because what ends up happening is that the sun eats the Earth and then everything turns into a big ball of fire and there's something called the heat death of the universe. So it's like one day long in the future, everything ends, like you just can't avoid it. Because entropy, because entropy basically leads to the death of the universe. And yeah, there's lots of ways of solving this problem. Mostly people theorize religious and philosophical takes. You can say we're in a simulation, so somehow we, whatever. But my framing is, well, if we can reduce entropy by reducing work, then maybe we can save humanity. It's a bit pithy because it's a bit of a— I do believe it truly, but I also understand it's a bit of a ludicrous— it's unfalsifiable. There's no way to prove any of this stuff. We're going to be dead a long time before this happens. But I like the idea of AI, of software generally continuing a trend that's been happening for a long time, which is just trying to reduce entropy. It's like, for example, you don't have to print paper, you can email, right? What is email? It's literally mail, right? So all it does is take the work associated with sending someone mail and make it cheaper, less work, right? Uh, AI is kind of the same thing because you imagine all of this CO2 created in someone becoming smart, right? Like 25 years of feeding a human being, taking them to soccer practice, all of this stuff just so you can effectively ask a human some questions about the law. Yeah, exactly. I mean, that's crazy. And so the amount of energy we're going to save by basically— actually, we have one super smart person and we can all ask that one super smart person all the questions, and because it doesn't use— it's not a carbon-based life form, it doesn't produce CO2. So this— all of the intelligence is effectively carbon neutral. Then you can actually get to a place where you can have infinite amounts of intelligence with no cost in terms of climate or energy or whatever. And then that intelligence, which has no cost to it, equals no entropy to creating more intelligence can actually solve all the problems in the universe and prevent the heat death of the universe, which I in my head think of as AI preventing the collapse. There's infinitely strong, figures out how to do that in some whatever sci-fi. I read whatever, some sci-fi book and whatever informed me. So I think the thing that I don't know, a CEO has to do at the end of the day is, and everyone has to, every human has to do this, is you have to kind of like put yourself in a larger thing, right? You have to be part of a family or be part of a community or be part of a war or something. And that's just what we need to do. Otherwise, guess what I'm gonna do tomorrow? Like fucking nothing, frankly. You know, like I don't know. I see it in everyone I know. Like, I don't know. I don't want to ruin it for people, but when you get rich and famous, I'm not famous, but rich and whatever, slightly famous on one industry, and at least you don't have to deal with the banalities of life. Well, guess what you have to deal with? Your brain. Your brain can't leave you, and then you're stuck thinking about it all the time. And then guess why we got an office? Because I wanted to do something. You end up having to rationalize basically your entire existence. Sense, uh, without the constraints of like, oh, I just need to get money, or I just need to help this person, or I just need it, you know. It's like you have, you have like more, uh, more time to think in a way. So anyway, that's, that's kind of how I think about it. And I think, I do think it's helpful because I do think like at the end of the day, like if you're, if you're struggling, a lot of people are struggling, how do I use AI? Like it's just like save money, save energy, save time. And those things feel very soulless in a way. Because that is what software is, soulless, right? Like, you can use software to make your movie, but the movie is a physical experience in a theater with other people, and you go out to dinner before, and you go out for drinks after. That's what makes the— you know, you go to the Olympics, you watch it with your friends, and you, you know, you fly to Paris. It's the stuff around what the software enables that is what life is— gets most people excited., right? A few people are weirdos and get truly excited by just like building software, uh, but that's not most people, right? And so I don't know, I think it's just helpful to like think of, just be like, okay, where do I fit in the, in the broader picture? Uh, and you know, like where does Peter Lovell sit? Like what, why the hell are we building photo AI? Like why, what's the point, right? Like I think it can be, it can be just so easy to be like, oh, it's like stupid, it's a grift, it's this or whatever. He wants to make money. It's like, and that's all of those, I don't know, who cares? That's all fine reasoning. But to me, I want to come up with like a, I want a team. I want people to get excited. I want to like work on something together. And I like the idea of like, well, you know, imagine all of the cameras that don't get, have to get made in a factory. And this is like a sort of a global mission that we can all participate in. And honestly, one of the most disappointing things about software software, in my opinion, is that it, it ruins a lot of social life because you can learn from your home, so you don't go out, you know, you don't go to college, you don't meet people, you don't commute, you don't have the interesting encounters, and you're not going to because everyone's going to make those decisions to do that thing. Uh, so how do you, you know, how do you like reinvigorate like working in the for industry as AI automates more and more and more of it. I think it's about this global thing that we're in, which is like, it turns out that Earth, at least when I've done the research, the Earth is going to get 4 degrees hotter, 2 to 4 degrees hotter, I think, by the end of the century. So it's like not as crazy as like someone who thinks that Earth is going to be on fire anytime soon. You know, it's like the sea levels will rise like 6 inches or something, right? Like it's not zero, but it's It's not crazy. It's somewhere in the middle, turns out. But eventually, we're gonna be able to stop it and then it's gonna go back. And yeah, so that's kinda how I sort of try to, you know, at the end of the day, Gumroad and Antiwork and all these things are, we're kind of post-success at this point. Like we, you know, we can make some money. We can like, and so you have to kind of invent meaning. And that becomes the challenge in a way, which I think is interesting. It almost gets very meta in those AI, like, is AI going to have these same issues and have to invent meaning for itself, or will it not? I often think, will AI be the first happy form of life? Because every form of life before AI has to comprehend its own death in a way. And maybe AI doesn't have to worry about those things. It's truly enlightened. In a fashion. So yeah, I don't know. And then there's just the functional aspect of it, which is like having an umbrella company allows us to basically use the Gumroad brand to help the other projects and vice versa. But I do think these are really important. I mean, a lot of people talk about work and what happens when no one needs to work anymore and post— what does that look like? And I honestly don't think it looks that different than the world we live in today. People will still watch sports, you know. People will still go to the bar, you know. If they want to go to the bar, someone will have to serve them drinks, you know. People want to be— someone said that, someone, someone mentioned, I can forget the context, but they said like people want to be taken care of, you know. And that's true. I want to be taken care of. I like, I like, you know, I loved being a little baby, you know. It's— I hate being an adult, dude. It sucks. I hate being an adult. I like being cared for and that's why I like to go out to a restaurant and then someone gives me a nice plate and cleans, it feels so good. And so if people like that, then they will continue that, right? They make the choices. So anyway, I'm going on a long rant, but that's what brand is anyway, right? Because otherwise brand is not, hey, this is my business, check it out, right? That's not going to really work. You have to kind of come up with some like, you know, we're the crazy ones, right? Or like Nike, just do it, right? Or everyone's an athlete. Like, to me, that becomes like the— and if, you know, for example, if you're a designer, you should now become a brand designer, right? Like, that's kind of like the takeaway because like the truth is like if you're a product engineer, you're a product designer, you're not really a designer. You're not really an artist. You're just fulfilling business objectives. The artist at Gumroad is the one who says it's called Gumroad, or it's pink, or it's this or that. It's like these big sweeping visual sort of statements. And then the product design, I think it's gonna be actually really great that basically I think we'll have PMs at some point. PMs will actually be able to do really good design because the designs right now, we hire designers to do all the PMing because the PMs do mediocre design work and then the designers have to do a better job of just— I agree with that. I'm just like, okay, then I'll just hire designers to do product management basically. But if AI is so good that actually the PM can now have like a magic wand and like, no matter what they produce, it looks super awesome, then all of a sudden I can have like a PM at the company, you know? And then, so I think sort of brand, like I think of it like design is over here, like this is the shipping pipeline. And like, you know, it's like idea, brand, design, you know, a product of which is design and engine, and like systems, DevOps. And I think sort of like this gets squeezed out where like the brand, the designers have to go more to the idea and brand side, and then the engineers have to go more into the systems and DevOps side, right? So for example, all the engineers will do at Gumroad will be like basically making it easier for other people to write code, whether it's humans or AI, and all the designers will do will be making components and design systems and brands that everyone else can use. So everyone almost becomes like a little bit of a, like a, just helps other people do their job in a way, right? For everyone. For everyone. And that's what I do as CEO. I just wanna get the company to a place where I have 30 people doing what I get to do, which is coming up with ideas. Like I tweeted, like, you know, I want a company full of levels.io, you know? And that was basically just like aspirational because I'm not gonna be able to hire him, but, uh, but more I wanna create a tech stack and a company culture and a recruiting process and funnel and philosophy that allows people like him who to be so productive that that's what they'd rather do that. Cause that to me is like the one pursuit.
Yeah. So anyway, double click quickly on that, like super insightful. Thank you for sharing this. Um, it kind of, Leads me to thought, like, what's the— it almost feels a little hopeless to build a business that somehow is tied to intelligence because in the next 5 years the big model will be that business and many other businesses in that compound model.
Is that fair? Yeah. Yeah, I think it's reasonable, but I just think it's not something you can— unless you want to go sell tomatoes. There's not much you can do about that. You know, I mean, I think about it with Gumroad, to be honest, because I'm like, I really thought Gumroad would not exist today because I'm like, no one is going to need it. Like, everything is on YouTube, everything's on Twitter. Now you have AI and Claude and whatever. And I'm like, why would anyone like pay money for like a— and the answer is what I said. They want to— is brand, community, speed, time, you know. Save time, save money, whatever. I don't really know. I mean, every day, thousands of people pay for products on Gumroad and it's amazing. And I hope most of the ratings are 5 stars, so I think they like it. But it's kind of like work. Everyone thinks they're the last generation to work. And then I'm like, next generation's gonna work. Work. I don't know what they're gonna do, but like somehow, you know, like for example, I personally think like space is going to become a really big deal. And think about how many jobs there exist in the space tourism industry, like 100, I don't know. I think there'll be 5 million jobs in that industry, which is like effectively like San Francisco has 800,000 people in it. So like 5 to 6 San Francisco's worth of people will be in a new industry that doesn't yet exist because space travel will go from like millions of dollars to hundreds of thousands of dollars or less, right? And so like basically humans will continue to want more. Basically human, like the insatiable appetite. Like if you could give every human a planet, humans would do it, like, right? Like if God just showed up and said, hey, everyone gets like a, like their own planet, uh, and like everyone gets like a warp gate that like allows you to like teleport to, you know, other people's planets. It'd be like, cool, sign me up, you know. Well, if— yeah, then, then guess what? Work's gonna continue because someone's gonna have to design the planets and name the planets and come up with the brands for each planet, you know, the system for the warp gates and the maintenance and all. Like, there's still gonna be— and maybe, I don't know, someone says, oh, like, true AGI will exist and like humans will just pale in comparison I just don't buy it, really. I really don't. I just don't— I don't think it— I don't believe in, in, in free will. I don't believe in AIs all of a sudden just doing stuff, you know. Like, I think, I think it's like you have a really sharp sword, like you're still gonna have to say, like, go, you know, cut that tree down, you know. Like, I don't believe in, like, the paperclip problem of, like, oh, AI is just gonna, like, make everyone into a paperclip because we misprogrammed around it. Like, I just— and maybe that's just my optimism, I don't know, uh, but I personally think, like, you know, we're not, we're not headed in that. Like, I, I personally think that's, like, just, like, that's too optimistic in a way. Like, you're overestimating the, the possibility in a way. Like, it's like, I think of it like a really good— like, the way I tell the team, uh, about AI is like, or at least 2 months ago, and I think everyone got it, but at that point, even I wanted to, like, really not push it too hard, and I just said It's just like copy paste. That's it. Everyone uses it. No one thinks it's that amazing, but it is revolutionary, right? And like, you can't function without copy paste, but that's kind of how I think of AI is like, AI will look back and it won't even be that big of a deal. It'll be like copy paste. But at the time, copy paste was crazy, you know? Um, it'll just be one, like, like Ian said, there'll just be one cool tool in our massive tool belt. And it'll be kind of crazy, honestly, but just like I think cars and phones, every generation thought that was like the technology, it was over, you know, like this was the final technology. Cars, you could just drive hundreds of miles and go anywhere, there's no traffic. Uh, and then phones, and you're like, whoa, what the— and then now AI, it's crazy. And you know, like Maybe we're at the end, I don't know, maybe I'm wrong, but you know, I feel like there's always something else. It's just hard to come up with that something else. That's hard, right? Like, that's the— if you could do that, that kind of defeats the point. So coming up with the next token, the next thing in the blockchain, right? Like, you have to— it's a lot of math involved. So, um, yeah, anyway, um, there's some questions, so let me go through these questions. Thank you, Sahil Lavingia.
That was super interesting.
Yeah, you're welcome. Thanks for asking your question. John says, in a prior session, you mentioned having non-programmers at Gumroad write code using Cursor is easier because Gumroad has robust tests. Have you experimented with using Cursor to write tests? Yes. Yeah. I mean, I would not tell a human to write a single test. I don't think anyone at Gumroad writes tests anymore, frankly. Test should be completely written by AI because it's so brain dead. Like, because all you're doing is basically saying, hey, I mean, maybe I can even show you an example. Maybe see, I don't have an example on my own, but maybe I can pick up someone else's. Yeah, I mean, this is probably a good one. So let me, let me do this one. All right, so this is the feature. Basically, this is like, uh, for Flexile, by the way, if people don't know, flexile.com. Oh wait, don't go to— want to make sure I don't show anyone's data. Oh my God, why is it doing that? I just want to go to the website. Yeah, there you go. Cool. Yeah. So, you know, it's a tool to basically like hire and pay people simply. And so there's some equity stuff built in. This is all Tailwind, by the way. We got rid of this. So this was built by a designer. All of this was built by a designer. All that, everything. Oh, oh yeah. You can't do equity split because Stripe doesn't have equity splits. Yeah. So yeah, all that was built by a designer. Uh, pretty cool. Tailwind. We don't use Webflow anymore because it's actually faster to just do Tailwind now because of Cursor. But going back to what I was saying, this is, uh, basically an email you get if we paid out a dividend for some reason it fails. If you think about it, like there's not that much code, right? I mean, basically it's the method that to get the data about, you know, like the, the payment. Uh, it's the place where you actually have to queue out that, you email, and then it's the email itself, right? So this is actually pretty simple, uh, but if you think, if you look at it and think about how much code this is, not that much code, right? Like, it's like 50 lines or less of code, but this whole PR is 1,200 lines. So almost 95%, uh, of it is, uh, is tests. These are all tests. These are all tests. And my guess is this was written by AI. This was maybe, I would have to look at the other stuff, but probably this was written by AI. And maybe this was also, actually no, this is probably, maybe, I don't know. This probably wasn't, but maybe is. So actually I think the human should only be doing like the actual building of the feature because that's like the product management part. You're actually deciding what you want to build. And then basically what you do is you just go into Cursor and you just copy all this, right? Or you use Composer or whatever, you copy it, uh, and then you just go to this file and you just say generate me a new test for this, for the dividend payment failed re-enter bank details method. And then it probably generated this because what are you doing? You're just, you're just testing the the, you know, all these, you're just testing all these lines of code, right? So it's very deterministic. If you want more, you just copy this, you do one more, but X or but Y or whatever. And then you still have QA, so another engineer is still going to review it. But yeah, humans, humans, like no one writes, enjoys writing tests. And, you know, a big part of AI is like, do what, do what's fun. So like, if you enjoy, and luckily, I think the creative stuff is generally what's most fun. And if someone really enjoys writing tests, then they have to get a new job at a different company where they get to do that. But at Gumroad, it's not gonna happen. So yeah. What about open sourcing Gumroad? Do you think it will reduce revenue, like someone cloning it? Honestly, it's my theory on brand is that it'll actually help. Our brand will grow because it'll be cool and more people will talk about it. Uh, so yeah, I mean, I hope someone does clone it and honestly calls it Silk Road or something funny and, you know, makes it 0%. And, you know, I want, I want a crypto fork that's free or whatever. I want, I want like, uh, you know, I don't know, different localization language. I don't know, I, I think I'm excited, honestly. I think it'd be fun. So yeah. So yeah, anyway, I think that was everything. That was 3 hours. We did it, everybody. Can't believe it. That was 4. This is the last one. But I do have a surprise for everybody, which is we're not done. We're gonna do more. Connor is gonna come back from Gumroad. So we're gonna do session 5 in 2 weeks. I'm gonna— I'm traveling for a bit, but I'll be back. So we're gonna do another one. So that'll be session 5. And then basically anyone interesting I see on X that's gonna learn about, you know, that's learning about coding with Cursor, 'cause it's still early days, I'll just DM them and say, hey, do you wanna come on stream? So there's a, yeah. And then if anyone has recommendations or ideas or whatever, just reply to them and just tag, you should be on Sahil's livestream soon or whatever. We'll get them to do it because honestly, like, they love doing it. They love— I mean, you know, it's amazing because they're just doing their job right now, right? They just get to do their job, and then I get to ask them some questions. And so I think it's a win-win for everybody. So I'm excited. I think we'll get some cool people. And hopefully what this means for the world is more people who can build things, solve problems. And I honestly, I'm just so excited because like thousands and thousands of people every day literally are learning how to become like what would have been considered 2 years ago a 10x engineer. Like someone who would— if you somehow had access to this tooling 2 years ago and you shipped, people would be like the whole like memes of overemployed, you know, people who had multiple jobs. That would totally be possible. It wasn't really possible back then. I think it was mostly just a meme, but now it's actually possible. I mean, like, look, like check this out. I mean, this is— I unfortunately didn't get to do my own coding, but, uh, next, next I'll do that too another time. Uh, but like, check out how many PRs I opened. We're migrating Tailwind, so it's not that many, but to be honest, I'm just bottlenecked by my own energy. I mean, I did this all in like 2 hours. Uh, but I could do the entire— I could do 50. I like— it would have been incomprehensible how much work it would have, how much time it would have taken that, uh, you know. So anyway, hey everybody, thanks for tuning in and see you in a couple weeks, hopefully. Catch you later. Bye.










