Using Cursor + Claude 3.5 Sonnet + Tailwind to ship 20x faster

Sahil Lavingia and others argue that Tailwind CSS paired with Cursor and Claude 3.5 Sonnet lets teams ship 20 times faster. Gumroad's old design system was 8,000 lines of CSS that slowed both humans and AI. Tailwind's utility classes let designers fix visual bugs directly and AI generate code without learning massive style sheets.
Chapters
I find that using Tailwind is the perfect thing for AI because there's a direct correlation between the design system and the code that it needs to generate. It just can grab these code pieces and not have to go check some CSS file. It knows everything in place.
I want to ask people in the chat, how many people are pro versus anti? Just chime in your thoughts on Tailwind. It's a kind of contentious topic. I will also chime in on my thoughts in a bit, but I want to hear what people think.
Yeah. So I, and I was, I was, I come like you, Sahil, like early. I've been around on the internet for freaking decades. And so it was before even like Sass, SCSS existed, like early HTML tables days, whatever. And so had this feeling of needing to use like tried and true stuff, but man, the Tailwind stuff, like it just works so well for this kind of thing either way.
Wow. Is anyone who, and I'm curious. Is anyone anti-Tailwind? Cause literally every single person is pro so far. So I want people, given how contentious of a topic it sometimes is on Twitter, and I will then, so basically no, it seems. So I'll go through my, what I think is happening. Okay. We got an anti. Om, do you want to chime in with why you're anti? Sure. Completely. Yeah. Awesome. Yeah. Maybe it's just my bias as a designer, but I think it feels like WordPress, like it's great for a lot of things until it's not. So I may be in the bleeding edge case where I'm like, I want control over things and it's just more work to then do it the Tailwind way. Awesome. Daniel, do you want to comment as well on your thoughts on that? He basically said building something with extremely fine-grained interactions, you want a sort of a blank state. So I basically up until 5 days ago was like super anti-Tailwind. I like having a design system. I love clean code. I love HTML, H1, header, nav, all that kind of stuff. Unfortunately, that's wrong. It's just the wrong approach and it is wrong. I think it's what's happening now is basically we're upgrading. I think the way to think about Tailwind is it's just replacing CSS. It will be basically in every browser natively, but basically the way CSS, HTML, CSS currently works is you have HTML and then you have all these tags and then you have the CSS file that says how these tags are actually displayed and styled. And that made a lot of sense when we were building brochure websites where you like want to do these big systemic sort of things. But now we live in a world of React components and just general components. At any— always. And so anytime you need to deduplicate, you can just use the component. And then the other thing, and this is like reason in the last 5 days I've changed my mind on this, is because you don't have to write it. If I were to write the Tailwind, or frankly read the Tailwind, it sucks. I hate— the reason I like h1 is because it's short. I don't like div class h1 because it's long. I still prefer the h1, and with Tailwind, because of the class thing, you can actually still use h1. So there's basically no downside on an accessibility whatever, nice rigorous thing. But the reason is Cursor and AI. The reason is there's two, and this is two, two things, and then we'll go back to Josh. Sorry for hijacking for a bit, but basically one, AI already knows Tailwind. So anytime you have your own design system, you have to tell the AI what it is, right? And so Gumroad has a fucking amazing design system, but the problem is it's 8,000 lines of CSS and there's no way around that because the whole point of CSS is cascading style sheets. So Effectively, the whole point is to try to make the whole thing systemic. The problem is systemic means you have to load the entire thing. For example, if you're a designer, you join Gumroad now, you have to learn 7,000 lines of CSS to make a change, right? Which also means any AI has to learn 7,000 lines of CSS to make a change. If you use Helper, helper.ai is one of our new products, and I decided let's try Tailwind on this new thing. I know it's weird and ugly. This is about a year ago. It takes some time to write or whatever. But you can jack it down to some plugins or hide it or whatever. Like it's still worth doing basically because we want to move super fucking fast. We understand it. We lose this consistency of a design system or whatever. But the truth is you don't really lose the design system consistency because the other thing that's happened in the last 6 months is like all these Figma Make designs and Figma design systems. So the truth is if everything's in Tailwind, it takes— all you got to do is copy paste the new design into Cursor and say, update this to look like this. And you're done. Literally, you're done. So there's zero time spent, like, in my view now, and this is the point of technology, new technology, you have to revisit your art priors and biases. We just have to admit that basically Tailwind is just part of the browser. It's just like using anything that— border-radius was not once part of CSS, now it is, right? And before that, we had to have 9 images to like make a rounded button on a navigation. But the fact that I can basically any bug, any visual bug can now be fixed by the designer. They— or me, and this is part of this class, it's like the CEO of the company or anyone in the company knows English, right? It's a requirement to learn English, know English, like work in the business. We expect that from everybody. What that means is as long as you know where to go in the code base, you can just select all, hit edit, and then type the change you want to make, and the change will be made. And I, for example, have written hundreds of lines of Tailwind at this point in the last few days. I still don't know Tailwind. I've never visited the Tailwind docs. I never will. It's irrelevant. It's like, why would I learn binary? I never learned binary to build web applications. Like jQuery, it is as awesome as kind of jQuery is in terms of like how fast you can move if you're willing to just inline some stuff. And we're basically back there again, where I remember back in the day, you could ship super fast with Ruby on Rails in the backend, and then you could just like jQuery your way to some cool interactions. That stopped working with React and all the complexity people started demanding. And design systems, all these things, but like basically we're getting back there and Tailwind is one of the, one of the ways that's happening. I used to be anti-Tailwind as well, but unfortunately it's— or not even unfortunately, actually it's a great thing. And this is to me the best situation because the designer can work only looking at what they care about, which is the presentational elements of the thing. And then the engineers can actually just do HTML. Like they can, they don't even have to have classes. And then the designer just comes in and just updates it to match the design system in Figma. And at some point, a lot of this stuff will be automated with Code Connect and stuff anyway. So. It's gonna be sick.
I agree with everything you just said. Like, I can— the fact that I can interact with this and get the feel for it within minutes completely changes the whole flow.
And this is, by the way, you can embrace— if you have a dam, several dams in a river, you get rid of all of them minus one, you can actually move that much faster. This kind of requires embracing Tailwind for the old— sure, because you can't really take advantage of this stuff If there's still that loop of, oh, now we have to update the CSS and that CSS now can affect every page. And so now we all of a sudden you have to embrace this utility class. You can do it yourself, but even honestly, I was looking at someone in the chat mentioned 37signals recommends designing in the browser, right? So I pulled up DHH's blog post, which he, by the way, wrote in 2023. This is June 2023. He said design for the web without Figma. So he's making a controversial statement. He's saying, hey, you don't actually even need Figma. I think he was correct about that, but the last sentence he says, we don't do the bulk of our design work. So they still use Figma. Of course you can. No one's saying don't do that, but we don't do the bulk. That's all done directly in HTML and CSS as it should be. Right. So actually I would say a year later, you have to rewrite this blog post. It's invalid now. It's truly invalid. I'm happy to go on their podcast and debate it with them directly. We have the exact same philosophy basically on building stuff and I'm trying to like have to relearn this stuff is it's actually just done in HTML. Like literally half of the complexity is CSS. So get rid of that. And I'm going through their code base because you can just view source and they have literally basically done this with their own utility classes, right? They have header class, push-double-ends, align-center, p class, and they've basically tried to solve this problem. They've come to the exact same conclusion Tailwind has. It's the same conclusion, by the way, that Gumroad has. But the problem is they're— they can't take advantage of AI because they're gonna have to load this, their entire CSS and their entire H2. It just can't work. So unfortunately, I think Tailwind's gonna— and by the way, there's zero visual. All Tailwind is doing is mapping CSS attributes like border-radius, margin-top, blah, blah, blah, blah, blah, to— or it can do other stuff too, but that's all I use it for. The idea that Humans commit code is insane. It makes no sense. You should just build, you should just name your feature and start building your feature. And it just syncs with GitHub. And as soon as it's done, you open a PR and someone else looks at it and merges it, right? Like committing code. What the hell? We committed code. We typed gca -m space. Quotation mark, CP. Nobody wanted to type. That's why we just typed fix and CP. But no one actually solved the fucking problem of the commit in the first place. That's basically what's gonna happen. I'm gonna have that exact same conversation when I'm 80 years old. What's gonna change? The way I think about it is that basically every army needs these roles. Generals, soldiers, archers, cavalry. You always have them. Like, they just fulfill different functions. There's like different ratios to like how good they are at certain things. And so like when new technology comes in, like a sniper rifle, you still have cavalry, you still have archers, you still have soldiers, but the sort of ratios between them change a lot. So I think that's what's going to happen is like the ratios are going to shift. In this case, you have like customer support, you have your designers, you have your engineers, right? All of a sudden, maybe you don't need any designers or maybe you need 30,000 designers because they can all code. These are the actual people who compete against each other. If customer support can do design, then maybe we don't need designers, but the designers may do customer support or they might do engineering. So it's a game of musical chairs and everyone has to just fight for our remaining chair. My worst fear, honestly, running Gumroad is like a YC company decides to compete with one of our products, right? Because we can't compete with them. I'm old. I don't have the energy of an 18-year-old kid. I don't need to win as badly, but all of a sudden I feel like I now The ball's back in my court because all of a sudden, if I can— the YC company only has 2 people who can ship 60 hours a week. But if I can turn my entire team into these kinds of people, which I will be able to do, then all of a sudden I have 30 YC founders and they only have 2. So I think there's going to be a— the olds will regain power. This is purely basically Cursor. This is the fact that he's not actually coding, right? He's PMing a software engineer and he knows how to code. As I asked him, I knew I had a guess. Would this be cursor plus quad? And he says both. How did I know? How did I know? What were the chances I got that right? Could have literally, there's a gazillion IDEs. There's a gazillion and I nailed it. You still need to have the fundamentals, but the fundamentals you can learn in middle school, high school. It's like learning addition. You don't have to learn that much to be able to do complex math. He's been writing code since he was 15. And then Trurom, he's a partner at Andreessen Horowitz. This guy probably makes a lot of money. Doesn't need to be coding, probably doesn't like fixing bugs, doesn't like syntax errors and all that crap. And he's shipping again. Without Claude, Cursor, and Copilot, there's no way I can do this again. So imagine you're an 18-year-old, you think you're going to outcompete these people, and then all of a sudden they have— it's like basically imagine everyone is moving from playing tennis in real life to playing a video game called Tennis. All of a sudden, who's the best in the world at that video game? The tennis players who are retired. They could not continue to play tennis. Their body is physically capped out. All of a sudden, they're back in the game. There's robot suits they can wear to play tennis again. And this is why these companies— like, why are Elon Musk companies amazing? It's because he's actually the design engineer. So like, the Elon Musk effect is going to start perpetuating. Like, more and more people will be able to get— take advantage. Just like, the truth is there's very few people who are as content and as many things. Let me just show you guys this video. But this is a video I recorded. This is the first time I basically used Cursor. This is about a month ago. So this is what I first used it for, which is I basically wanted to remove something from the codebase. I selected all the files. I used search on the left to find all the files and it went through, removed from the UI and the codebase, and then it just does its thing, you fast forward a bit. I just hit apply, it makes those changes. I open the PR, it gets merged and deployed. And by the way, deploying is automated already. Merging should be automated. Basically only QA by another engineer needs to happen. So it should be like prompt, button click, button click, in production, right? And no, no Notion, no Figma, like none of that is going to be necessary. For shipping, you can still ideate in Figma. You can still ideate in Notion, but if you're shipping, it's just going to be so much faster if you're willing to commit to just building it in this way. Right. Think about a designer who can go in and do this is going to ship 30,000 times faster than a designer who has to open Figma up. Right. Like the time it takes to set up, to learn a design system in Figma. You already know the design system. You're looking at the app, right? Like you're looking at the app you're designing. Why do you need a design? If you're smart, you can reverse engineer what the design system— like you are looking at the Gotmart design system. You need to open up the design system to know like all of this stuff. No, it's right here. Our design system, or at least the relevant parts. And if it's not here, it's not relevant, is it? So yeah, people worry about Tailwind and oh, what if the consistency and this and that, if it's not able to figure out a design system from this stuff, then like we're not doing a good enough job. Right. The next thing I'm going to do is Remove the deployment process from Gumroad. I'm just gonna get rid of all of the steps and just go back to what it used to be like, which is you just merge to main, it auto-deploys and not like this. People are gonna start shipping like 100 times a day instead of 1 time a day. It's gonna be awesome. So basically how do I ship stuff like 20 times faster? First, inline CSS. Unfortunately, there's no real way around this. Designers need to be able to design and code. And the only way you're gonna be able to make that possible is with inline CSS. So that's gonna happen. So make that a checkbox. Make design. So Figma is gonna launch this. All of a sudden you're only gonna need a single design system, one design system and feature, basically one design system file as I showed you guys. And then, you know, this plus prompt in code, but even this you might not even need because the examples are there. So really this is just like English to generate. Design feature designs in Figma. All of a sudden it's going to be prompts to like generate mockups. So for example, Josh had to go straight to code. One downside of that is you maybe lose some creative thinking. All this creative thinking is like the designer gets to do 30 mockups, like 30 different variations, which is really what I want to see anyways. I just want to pick between a few things. Code Connect is this new Figma feature. It's going to link the two. It's always going to combine these two. So basically you'll have these components for your components and code so that automatically any engineer wants to make a change to a component. I wanted to add shortcut key, right? All of a sudden it would flag and say, hey, you can't do that because it's like type checking, like in Figma, the button doesn't have that. Guess what? Currently you have to tell the designer to make that change, right? Because it's in Figma land. But why? The designer, the engineer knows exactly what to do. The engineer can click the button. It's not that hard for an engineer to learn Figma. I guarantee you that. And so the engineer should actually just go right into Figma, make the design system change, and get QA from the designer on the implementation details, right? So this is gonna basically— Code Connect is freaking awesome and people are sleeping on this. No one knows it exists. And then what does this mean? Every single person does just does customer support. So just like I built Answer with Workflow, which goes from like one ticket answered to 10 or 2. Soon you're going to have answer with GitHub pull request, which is like 200 lines of code merged and then all tickets answered. Because you actually, the reason you have customer support is because you can't ship that fast. But if you could ship that fast, like just ship the feature, you know, we're also going to make it way faster to get onboarded if it takes 10 hours to ship a feature. But if it takes 10 minutes to ship a feature, onboarding should be instant. Design debt is fine, but tech debt, like things that just basically mean you have to educate the AI, just get rid of, right? We have a 6-week trial at Gumroad. That makes no sense anymore with how fast people can ship now. So we're going to change our 6-week trial to probably 10 hours of billable work. And you just have to ship. You get 10 hours. You basically have to ship something and you get to bill for 10 hours of work. And 6 weeks, guess what? You can find out if you get a job at Gumroad in 10 hours. So this is like down from 120 hours because it's 2 times 6 or 20 times 6 weeks, right? So this is 110 hours of your time back if you're not a good fit. Boom. And then finally, shipping. Customer support ticket comes in. We discuss it in Slack, put in Notion, then it goes into Figma, goes into design. Why? Why is it any— why? That's all it needs to be. Why? And arguably, why do we even need GitHub? Why do I even need to open GitHub? Why can't I just have Helper? Why can't I go here and just right-click and change? And it just opens the GitHub PR for another engineer to deal with, right? Like, why do I have to go here? Why can't I just say this? Why can't there be a button that says edit? I hit edit and it, I just say, say what I did. It knows the route. Therefore it knows all the components on the page. So like, why can't I just have a thing and just say, hey, right-click, change font size, make it shorter. Right. I can't because there's a whole fucking design system that you have to learn. But if this is the design system, it's literally just what you're looking at. Then it becomes way easier to just, and CEOs should just basically be able to right-click and be like, And then it just goes. Elon can run 6 companies because frankly, being a CEO is incredibly easy and not time-consuming at all. You're just saying yes or no to stuff. And so as long as you're okay with some wasted effort, which is totally fine because it's wasted effort anyway when you say no to it, I think it's going to be great. I think you're just basically going to ship 10, 20, 30 times more than you were able to before. Tech debt's going to go way down. People are just going to embrace new tooling. But yeah, I think basically Gumroad and like the tool, you'll see it like visit gumroad.com in 6 months. It'll be completely different. It's gonna be pretty cool. What if your reviewer disagrees with the AI output? Yeah, basically you just write back in English, just like an engineer wrote the code, right? You just say, hey, could you do it this way instead? But just, you just say it in English and then it's done. So if you don't want to embrace Tailwind, just don't use it on your stuff. But Tailwind should still exist in the codebase because it's so valuable for people who want to use it to be able to ship that way. Yeah, Gumroad is already here. We've been in this world for a long time in terms of how automated we are. For a long time, it was just me as the only full-time employee. We're doing $20 million in revenue. So like $20 million with one part-time, full-time employee. Pre-AI, like pre any of the stuff I just talked about. So take that scale and 20x it basically, right? Roughly. And 20x, what that means, this, the reason I use 20x is one month is one becomes one day because there's 20 business days in a month, right? So a 20x speed increase basically means let's say it takes you a month to, and it does, right? I think about one week, including back and forth, one week to scope, one week to design, and I'm being optimistic here to be honest, but one week to eng build. And then 1 week to merge, get all the feedback in, whatever, to deploy, right? So right now it takes about a month. A, you know, a major feature you're adding to Gumroad, take a month. Now it should take a prompt or 2, right? 1 hour. I'm gonna be very conservative on this side, so I'm gonna say 1 hour. Think about how much we've been able to do in 3 hours, like what Josh shipped, so much. So 1 hour. To scope, really it's 0.1 hours, 1 hour to design, 1 hour, 1 hour, right? So 4 hours. So 1 month, 4 hours. So like emails in and says, hey, Gumroad should build this feature. I say, cool, we'll have it done in a month, but we can't have it done in a month because we have like other month projects, right? So in 6 months we can do your thing. But if all of a sudden it's 4 hours, one, maybe I should just do it now. I should move it to the top of the queue. Or all these other things take 4 hours. And what I think will happen is we will just get rid of Notion because there won't be anything there because everything we wanna do, we've done. Like our, like literally what remains, like what every single feature we're just gonna ship and these projects will just get feature complete basically. I have ideas for what we wanna do as a company, I think. But yeah, it's pretty crazy.










