TLDW logo

Ryo Lu - Designing the future of Cursor

By Dive Club 🤿

Summary

## Key takeaways - **Unifying Cursor's Agents**: Before, Cursor had five different concepts like tab, chat, and composer, all built separately with different names and key bindings, which confused users. Ryo merged them into one unified agent concept, defaulting everyone to it, which simplified the mental model and drove growth since February. [06:15], [07:02] - **Systems Thinking in Design**: Ryo's process involves deeply understanding the entire system by consuming user feedback, bug reports, and code to identify better models, simplifying without removing features by unifying concepts like reducing five to one while serving users from manual control to full automation. [08:17], [09:01] - **Designing Around Agents**: Managing multiple agents involves planning tasks with dependencies, executing them sequentially or in parallel, reviewing changes, and merging them, which Ryo realized boils down to a universal to-do list primitive accessible outside the IDE for better collaboration between humans and AI. [19:27], [23:36] - **Handling User Feedback**: Ryo absorbs all feedback from Twitter, Slack, and reports like a model training on data to build intuition and priorities, focusing on the underlying intent and direction rather than specific solutions, dynamically filtering noise based on company needs, resources, and timelines. [26:23], [28:17] - **Fluid AI Interfaces**: Future interfaces must adapt dynamically to each person's thinking and context, avoiding static mocks that water down magic; instead, designers create containers and primitives that AI configures per user, like reorienting Cursor's layout based on preferences without arbitrary chaos. [34:19], [40:09] - **Durable Designer Skills**: In an AI world, designers excel by interpreting the world at high and low levels, clarifying concepts, and bridging mental models across roles to build cohesive software, emphasizing how things break apart and tie back together over rigid specializations. [52:21], [54:16]

Topics Covered

  • How does AI transform design prototyping?
  • Why unify Cursor's five agents into one?
  • Can to-do lists manage multiple AI agents?
  • Will interfaces personalize per user dynamically?

Full Transcript

I don't want the tool to be ah we built like a cursor for designers.

It's just cursor. It's the same agent.

Cursor might change how it feels depending on who you are.

What types of things are you thinking about as a designer with personalization being the end goal that you're trying to cross that chasm?

The ideal interface is different for every single person. The things we design as designers, they just kind of go up one level. Instead of you are designing exactly how this piece of UI will look, you are actually designing a container.

Coming up with the right set of blocks for AI to wield for each user dynamically probably is more important now than at any point ever in designing digital products.

I'm trying to poke at the boundaries of is this thing possible?

Because we're building software and the code is the material.

You have no limitations.

You can do whatever.

Welcome to Dive Club. My name is Rid and this is where designers never stop learning.

This week's episode is with Rio Lou, who you might have heard on an earlier episode back when we were talking about early Notion and systems design.

But since then, Rio's joined as the head of design at Cursor, which is easily one of the most influential companies in all of tech right now.

So, we're going to get an inside look at how design operates at Cursor and including all of Rio's crazy AI experiments.

So, without further ado, let's dive in.

So, Cursor people first reached out like August last year. That was before the agent existed.

The Cursor product trajectory, they started with the tab.

It's like auto completion for code.

It's like a much better GitHub copilot.

Then we did the the chat like early last year and then in the chat you can like ask cursor about the codebase questions and it'll answer but it won't do much for you.

And then in July they added the composer.

So the composer is kind of like now the the chat can actually write code for you and then you can modify code.

So they reached out to me back then.

We talked a little bit.

I thought oh cool. I still thought like cursor back then is like a tool mostly for like coders.

It is still but it has changed so much since I thought oh I'm just still going to do my notion theme cuz I want to make something for everyone.

And then last year around November we were doing planning at notion uh like planning this like multi-year project that I was working on for a long time.

And then the plan happened to be like we're gonna do this like for second half of this year. And I was so angry because I wanted to do it like maybe since I joined notion.

I first went to Vzero.

I made a little prototype.

Uh it's like an Nex.js React Tailwind CSS app of like like the future notion.

And then I played like couple rounds there and I was like stuck. I want to do more but then I can't. So I just downloaded the app. I got cursor, open it up.

I used the agent. It took a lot of time to find where the agent is and then I was hooked. I did that for like 3 days and then I I built this whole prototype of like the future notion like in my head exactly what I want.

I built like a menu where you can like turn it turn like every single new feature like there's like a feature flag menu off off off and then you can see the whole app change.

It has like real data.

It has like like a cool thing is like I built like a 3D globe view but the idea is like in notion you know we have like board table galleries but you could have your own like custom views.

Maybe they're written by humans.

Maybe they're, you know, generated by AI who uses the same concepts, same data model.

That completely changed me.

Making software before it was like a really long process.

You might need to kind of start like, you know, by yourself. Maybe you can make some like little tools and stuff.

It's fun. But in order for you to make something bigger, you need to first assemble a team. And in this team, there's like so many different people doing different things. You need to figure out how to like tie them together.

You need to align people, make plans versus I have an idea.

I'll draw some sketches. I'll maybe verbally describe it to the agent.

Maybe I'll take a picture of like a nap nap napkin sketch of this like menu structure that I wanted.

And then it'll be like just a rectangle box line line divider line line line.

And then I'll tell the agent like the items that I want in the menu.

And then boom, done. That's it.

And then it's that, but like for every single little thing.

And that means you can just keep going at a much faster rate to where you want your thing to be.

And as you do it, you're not acting on some other artifact or representations of the software.

Before people had to write docs like PRD, they had to like make plans in like linear make some tasks.

They have to like draw some pixels in Figma, try to stitch everything with like a process.

Versus now it's almost like sculpting.

You get something, then you poke at it.

Maybe get rid of certain parts.

Maybe you re-rangle certain parts.

Maybe you say, "Ah, do it again, again, and again, do it five times. Pick the right one.

" It changes completely. Yeah.

And then the cursor people reached out again.

And a lot had changed at that point.

Yeah. Like right after I made the prototype, after like 3 days and I'm like, "Oh [ __ ] I need to go and jam you all.

" And then I I stayed there for like 2 days.

And then that was like the first project I shipped at cursor was what exactly?

It was like unifying all the cursor concepts into one thing.

So before cursor had the tab command K which is like a inline editing agent thing.

The chat which is like a agent that only talks to you but doesn't do anything.

The composer which is an agent that talks to you with some code.

and the cursor composer agent which is a mode on the composer that basically like automates the head.

So the cursor had these five different concepts, five different things.

They're all built separately. They're all named differently.

Each of them have different key bindings.

And all I did was I said all of these things are the same thing.

They're all agents. Then we merge all of them into one concept. Now we are defaulting everyone to use the agent.

Before it was like people were stuck.

People didn't know we had the agent.

So that's why I think it's probably the biggest reason we took off since February.

Well, I'm glad that I started using cursor then after you had already made that change.

You weren't able to find it.

Yeah, I'm like looking back using in March.

I talked to so many people.

I'm like curs is so great. It's so cool.

And then they're like, "Oh, I've been using cursor for like year, like months, and then I don't have this. How do you do it?

" Wow.

For like senior engineers that I talked to, let's go a little bit deeper there then because I read a tweet that you had from earlier this year where you talked about Mhm.

basically just like tips for designing tools in the age of AI. And one of the line items was the importance of thinking in systems, not features.

So back up for a second and maybe at more of a principal level talk about what you were even doing in your own mind to arrive at some of those seemingly obvious changes that you made in order to simplify the concepts and mental models behind cursor.

Mhm. Yeah. I think my general process is I need to understand the whole system.

I need to know every bit of it as much as possible.

I will consume information both from say the outside world, maybe it's from the users, maybe it's from like bug reports, feedback, maybe as internal people, but also what it is act like in actuality in the code.

Then you come up with maybe like better models of doing things.

Maybe you simplify things.

You don't get rid of things, but you kind of unify things. Meaning like the things that people were doing, things that people are using, they're still there, but now they're say reorganized into something that's a little simpler.

Instead of like five concepts, you have just one.

And it's almost like you build layers of the same thing.

For most people, they will use the default agent mode on cursor. They don't have to change anything.

It will just, you know, in the ideal state just work.

But it's almost like we want to serve everyone like from the most experienced coders who want full manual control to people who are more like vibes. They just let the agent do everything.

And then there's like almost like in between a lot of different little configurations and like patterns and behaviors.

You want to serve all of them, but you want to give people like ideally, you know, in this spectrum the the the right point.

you might get it wrong then you build like mechanisms for people to say move to this side or move to this side progressively like you don't want to nudge people like completely say ah from now on agent will be the default everyone will start using that and then I don't give you a way out and then I remove everything else then you're like ah [ __ ] well where is the thing that I had I have no like continuity I can't picture how you got you know from today to this new place. I can't.

It's more like instead of five discrete little things, you just make the circle big.

It's now one thing. But then there are still ways for people to do the five discrete things.

But maybe it's like instead of just five things, now there's end things.

Nowadays, a lot of people are saying that you got to become a design engineer.

But I don't think that's true because paper is giving you a lot of the benefits of code without sacrificing the design experience.

You could still make a mess and explore like crazy in an interface that feels like a streamlined version of Figma, but the canvas itself is rendered in code, not vector.

That means developers can simply rightclick, copy as React, and then ship your designs exactly as you design them.

No more lost in translation.

And soon you'll even be able to import code components directly onto the design canvas.

So you don't have to deal with duplicate sources of truth anymore.

But it's a pretty big deal and just another reason why I'm all in on paper as the next great design tool. So if you want to be one of the first to access Paper, head to dive.

comclub/paper to claim your spot.

My favorite animation tool, Jitter, just dropped a big time release. You can now draw your own shapes with their all-new pen tool and animate them with fluid shape to shape transitions.

But it's a huge unlock for motion design and jitter and a great way to create animations that are truly oneofa-kind. So if you're still sleeping, it's time to wake up.

Just head to dive.

comclub/jitter to try it out today. That's ji t.

Now on to the episode. So in a sense you're kind of taking a tool that at least when you joined was you know pretty much the ICP was developers and now you are creating something that in theory can support designers all types of different builders.

Yes.

Does your model then require the default version of the product to be the simplest form that it can take in order to allow for those types of people or do you actually allow the vibe coder to move laterally towards simplicity?

Okay, talk about that a little bit then.

Yeah, I think the idea is right now everyone come into cursor, they see three buttons and a lot of people don't understand what they mean.

There's like open project. You need to create like a folder on your file system with the code.

There is a clone repo.

What the [ __ ] is a repo? There is open SSH or something.

What's SSH? Like no, like nobody knows outside the programming like little world. But like conceptually the tool itself or or even like the the practice of making software like all the people around building like a piece of software maybe you're a designer maybe you're a pro like a PM maybe you're like a data person everything we're doing you know at the end they're just code that gets written we're kind of influencing what code gets written we're part of this game like you know building software what is the right shape of things to build how to build it.

Then it's almost like, you know, once this AI is able to help us translate those into code.

It's more like a collaborative thing.

It's like a human with AI thing.

It's a team thing. It's not just, you know, AI replacing the creators.

It's more like there will be people who will be almost like the AI covers the things that they do less or even like it lets them do way more than what they could before.

Like a 1x engineer can become like a 10x engineer. A 10x engineer becomes like a thousandx engineer.

A designer becomes like a 10x engineer even.

Maybe you started from just vibe coding.

Then you got a little curious.

what is this? Then you start learning.

It's like React, Nex.js, tell CSS and then you start building more things and then the things get better and then it's like I don't want the tool to be ah we built like a cursor for designers.

We built a cursor for I don't know PMs. It's just cursor. It's the same agent.

Cursor might change how it feels depending on who you are.

Okay, then let's pull on that strand a little bit more because still to this day you open up cursor, you know, it feels like an IDE.

There's a familiarity to it that you all have been able to benefit from and yet now you kind of have these two different forces pulling on what the product is.

You have the rise of the vibe coders and people who have no idea what an idea even is supposed to look like.

And then you also have this increasingly agentic world where more and more things are happening in parallel and perhaps much of the future of software creation is more about strategically putting humans in the loop rather than having humans write code.

So talk to me a little bit about that tension between the familiarity of an IDE and also maintaining a system that allows you to scale for a world where cursor for X might just be cursor and you can kind of do anything from your computer.

Yeah. The IDE is just one form of cursor and we started there because that is the like we pick not not even me it's like maybe I might go and people they pick VS code because it is the most popular code editor coders know what it is now you deeply fuse it with AI and all the latest things you ship new tools that really you know fits with that maybe we started from this like manual coding workflow and you start kind of building on top of it gradually. It it kind of makes sense if you look at the trajectory again like you start from manually writing code to auto completion of code to now I can edit this part of code to now I can ask the the whole file the whole code base to now ah this thing can actually do stuff make like make tool calls make modifications search on its own do stuff like in the in one thread maybe three parallel threads in the foreground That's kind of like the tabs that we have. And now with background agent, you can do like n things at once in simultaneously, maybe parallel, maybe in sequence.

It's kind of like a gradual process, right?

But cursor even today is not stuck in the IDE anymore.

Like we ship the the Slack integration, there's the web agent, there's like it works on the phone, it works in any browser. Then you can almost feel feel like it's just like different forms of the same thing, different people or like when you're in parts of the workflow, you might prefer different forms. Say the coders, the most manual people, they still like type.

They love the tab thing more than the the agents, but there's like people everywhere on the spectrum.

There could be like people at some point they might not even use cursor the IDE they might just use the web agent they might not even see code they might be just planning things on a really high level maybe with some comb board but it's still cursor it's still the same thing maybe you go back to your computer you open up cursor app everything's still there like all you need to do is boop then you can switch between different branches you can merge them all you can try different things. You can start them anywhere, pick them up and like in the middle and then finish it off on the computer.

Really depends on who you are and what you're doing. I want to get into how you work specifically, but before we get there, I can't not ask for your thoughts on where this is all headed in terms of just what the future of software creation even looks like given these realities that you're laying out where you might not even see code and you can access cursor from anywhere and have any number of agents working on your behalf.

You're obviously thinking about these futures as much as anybody. So what are some of the things that are in your mind right now?

In order for this to work, you need to solve some pretty hard like deep AI technical problems. Maybe it's with like modeling, maybe it's like building like better systems to kind of support all of this.

And then there is like if cursor is different for every single person, for every single thing, then what is it?

Again, we go back to the system part like what are the concepts that never changes that will kind of support all of this?

What are the form factors that people would prefer? What is the right default for me to give to say everyone or specific group groups of people?

What are the groups of people we care about?

Where do we start? And then from there you can kind of see where things go.

Are there specific design challenges that you've spent a lot of time wrestling with as you move more towards simultaneous agents and lists and like talk to me about that part of the process a little bit. Mhm.

I spent probably this month mostly thinking about this problem.

It's like how do you both like spin up multiple agents and manage them, view what's going on, and then once they're done, what to do with them? How do they work?

How do you like say plan things ahead?

Most people will still like do one thing at a time, but some people might want to plan a lot of things ahead. Some of them might be executed like sequentially.

Maybe they have dependencies between each other.

Some of them might be like paralyzable.

So like you have 10 bugs that I want to fix. Just fix them all and see what happens. And then there's this whole flow of like you start with some tasks that are planned.

You're do doing them. Maybe you're not doing them.

The agent is doing them, but you kind of is responsible.

And then once they're done, you need to kind of review what what are the changes. You need to decide whether I want to keep parts of the change or not. you need to decide how to merge them back and you know ship them.

Then I was like, "Oh [ __ ] it's to-do list all over again." I've done this so many times like and we're back.

Every single time we're back to the to-do list like for the agent, for the humans to-do list in a list view, in a grid view, in a column.

Yeah. How about we make it a canban board and we're back to the [ __ ] same thing.

The only difference is uh these things might be done by the agent. That's it.

It's so simple.

How quickly did you arrive at there then?

Because you said you were working on this for a month. Like talk to me about how wide that spectrum of explorations was.

What we wanted was it's almost like maybe like we can get around it or like you can do something else. Um say it's almost like maybe the chats each of them become almost like a task.

Maybe it's like a onetoone thing. But then what we realized was like just people use the thing so differently. Some people they have this giant long running chat that they do everything.

Maybe they have like a chat just for specific kinds of edits or areas of the codebase and then our preferred method is still like you should just make a new chat for every single task that you want to do.

Yeah. Which I'm sure was really tempting too because that is the simplification of privileges, right? like from the systems thinker that is the idea like if everyone were doing that then every chat is a task right then you don't need another concept it's almost like you're kind of organizing the chats around but then it's almost like h some people want to do like five things in one chat some people just want to do one then we still need a thing to kind of help the agent even you know agents have like a limited context window and they were kind of stuffing all the file context plus the chat history, what it did, everything in that window.

As you go longer, it forgets then it's kind of like, you know, sometimes the model is like really great for the first few few times and then boom, it gets dumber over time.

We it also needs a thing to keep track of what is a highle things it needs to do where is it which item is it thinking about right now how does it relate to other things what is coming up like the agents also needs that to do better things on a longer time span or doing more things I feel like the the the more interesting part is it's not to-do list just for the agent or like just for one chat but it's almost like the whole thing. Like imagine you can break up a piece of software the entire software development process into just a bunch of tasks and they are kind of you know pecked to the prompts like to the chats then you know because this thing this concept is so universal the interface doesn't have to be complex anybody who have seen like a list view can start doing these things and that's why we kind of built these things outside of the IDE you can access it like in cursor.com/ aents.

Yeah.

Boom. You see a list view of agents.

You click around and then you see what they do.

You can see the chat if you don't want to look at the code and then there's like a button. Boom. Merge.

Done.

That makes sense to me why it would be a valuable primitive because it's such a nice on-ramp for people who actually have no interest in entering an IDE.

Still want to see what's happening with a project.

That is what's happening in the real world right now. when people plan things and make software the Jira boards are like linear you know like people do that it's the same thing but if you fuse it more with AI with the agents make it more collaborative they're working on the code like the same code base same awareness of how things work what's going on and what's being planned then the agents can do better the humans can also do better I want to take one step back and kind of just set the stage a little bit which arguably I should have done 20 minutes ago, but it just got very interesting very quickly.

So, I want to learn a little bit more about how design, which is, you know, effectively you, how you operate at this company and what the role looks like, how you're even figuring out what to work on.

Um, talk to me a little bit about, you know, maybe even just your week to week as the person designing cursor.

Every week I'll come up with things I want to do and explore. say like it's just specific problems. I say like this week is like making our pricing clearer, doing more on the background agent web mobile launch, cleaning that up, making things better.

But at the same time, I try to just gather a lot of information from everywhere so that I keep an awareness of what's going on and like how people perceive cursor. I try to just do projects on my own.

That's how we dug food the thing and also how I kind of get intuition of like where the the limits of the AI are where where our problems are and then you just play you build maybe it's like you know we build cursor with cursor and also I build like baby cursor with cursor that end up in cursor and I make real that's for fun but also I'm trying to poke at the boundaries of is this thing possible is Is it easy?

Is it like how to do it for real as right now?

I don't even add new features.

I just improve the things that I did or the agents did. I try to refactor systems. I try to like make better ones and I learn. And also I I can know uh maybe 03 is like better at this versus like Gemini.

And then I carry that knowledge back to work and then we fix the tool.

we make it better.

It just keeps going.

I want to get into the personal projects thing, but I want to double click on something you said where you talked about just gathering information and I want to know where you're deriving signal versus what you can choose to ignore because there are a lot of people that are giving you feedback right now.

Like I went back and looked at your screenshot of the original mobile designs and there were 772 comments which is ridiculous.

So what how do you even deal with that?

Yeah, I just look at everything in on Twitter in in Slack, all the like user reports and feedback. I just try to like simmer them in. It's like training a model.

It's like you're just feeding more data, you're building your intuition.

Then, you know, the more you see these things, your priorities get better, your sense gets better.

Okay. So then if we were reverse engineering the system prompt that you were then using as the razor to figure out what feedback to act on versus what to say no that doesn't make sense.

Mhm.

How have you evolved that system prompt to understand what feedback to ignore because it doesn't make strategic sense.

I will say this is like for most things in isolation little decisions they don't really matter.

But then when you kind of put all of these little things together, they all matter where like say the direction matters, the concepts matters, the idea matters more than say how you do it.

I try to get a sense of what the person really wants, why they told me this, then say ah your solution, I don't care.

Sometimes I ignore those two.

It's like cuz they are really not important.

Even for myself, they're not important.

then I won't spend too much time on it.

Like the more you look at these things, the the easier you just kind of naturally process these.

It's almost like you build your own like processor filtering out noise and then building intuition also like it's it changes.

It's like a dynamic thing.

Maybe like this week people are saying uh XYZ is like better, XYZ is bad. it changes.

And also there's competing timelines at play more than ever where in my experience you get feature requests that make a lot of sense. But to, you know, tack the overused analogy, it's like it's all about making faster horses, you know, and it's difficult to know when to abide by some of those requests versus to say, you know what, actually, like we're focused on a totally different future that we're trying to create.

Yeah. Yeah. take everything but you set the priorities and they change.

It's more like a dynamic ordering thing.

It's not just like the outside too.

It's like there there's like company stuff, there's say like resource technical limitations, there's the present, there's the future, there's the you, there's the engineers, there's the designers, there's everyone, there's more manual control versus more automation.

It's really hard if you try to pick size cuz you get stuck a lot.

It's much easier to just look at everything and then you figure out maybe for now we do this but maybe later we do that.

Let's talk a little bit about your personal process.

You're doing all these explorations.

It sounds like there's a lot of autonomy in terms of what you're exploring and the nature of your experiments. So talk to us a bit about when are you using cursor in your own practice and is there any correlation between cursor versus other tools as it relates to where you're at in the fidelity of the idea in your own mind even?

Yeah, because we're building software and the code is the material cursor right now at least it's still the best place to do that like to interact with the code and then do everything around it.

You have no limitations. You can do whatever.

And as you use it, as your code base gets more complex, cursor has more tools to kind of cover all of those.

It scales from like a single thing to like a more complex big thing.

If you look at people like what they're doing, there are people who are just writing docs in cursor.

Maybe they're like doing some marketing research, doing some report. It's like doing all sorts of things because it's like code is it's like the lowest level primitive.

It's not even the lowest say like it's not assembly or like machine code.

It is at least for now the layer where we can do almost everything. If you start from that like from that layer and you build a system around how to interact with like any code base and solve a lot of like hard AI software engineering problems so that the agent can make more complex software check its own errors get better as you use it then it's much easier to build upper layers because you kind of eliminated a lot of problems that say like a live coder would face say like instead of them seeing a error they cannot fix the error is just not there anymore or maybe it's like they they will see some it's like a simpler alternative interface that fits them better that is not the sidebar of files editor editor editor chat it can be anything all right I'm going to put a pin in that I want to go a little bit deeper because put me into the part of your expirations before you had arrived D at the to-do as the primitive for these you know the n number of agents.

Where were those explorations happening then?

Were you writing in docs? Were you using cursor to spin up UIs? Was it something else?

I just use whatever medium that fits the problem.

I do a lot of walks around the office and I'm just on my phone with notion and I'm just typing ideas and like a list bullet list or whatever.

I'll just walk and I'll just write.

I'll come up with like maybe they're more conceptual and then maybe I go back.

Maybe there's like a visual problem that I need to play with. I need like 2D space.

I need exact pixel placement and I need to like quickly iterate between different layouts and stuff because the current tools don't allow you to do that with real code or like with AI.

So, I still use Figma for that. So, like it's super hard to prototype or mock up in Figma, but it's so easy to do it in code.

Like for all of those I just use cursor build build it out see how it feels.

One example is the like the stop and Q interaction that we're going to ship today or like tomorrow or something that started just from like a prototype in baby cursor. I showed it to people.

people were like, "Oh, cool." And then we built it. And then we're doing more like on the multi- aent stuff.

Also use like prototypes for that cuz it's just so much easier, especially when you're say doing these like AI interactions because yeah, the input, the output, the context, the the response, what's in it, they all matter.

You just can't fake them.

And you use the verb feel it.

I mean, that's exactly it's the only thing that matters for stopping a queue.

It's the only thing that matters. And I was even having a conversation with someone in a a comment thread that I probably shouldn't have been in, but they were just like, I don't understand like why would you need to do code?

And you're like, man, if you are working on a product that has consistent AI output, there's anything even remotely close to a chat.

It's impossible to move the needle in Figma. It's impossible.

Yep. Yep.

I just feel like interfaces will become just way more dynamic. it will become almost like the ideal interface is different for every single person.

All right, let's talk about it then because you had a tweet that I really liked where you talked about fluidity of future AI interfaces. So share some of your thinking there and maybe we can use that as a launching pad and see where it takes us.

Yeah, it's almost like you just can't design a thing with mocks anymore.

Meaning like they're just static picture of one state, one ideal state that you think every single human will understand.

Like that is just impossible.

We as designers, we can try to like let's simplify everything, dump dump it down, make sure that this is like the most universal thing people can understand and then maybe you [ __ ] up your whole product because you watered it down like it doesn't do the magic that some people wanted anymore.

Maybe not good to say, but it's almost like the Mac OS redesign from liquid glass.

It's like you kind of force people onto this like grid, onto this pattern, onto this system that doesn't make sense for that context or is not optimized for say cursors like mouse cursors versus like tap or vision, whatever.

Like the interfaces were designed differently for a reason.

Like I iPhone buttons are like 44 pixels tall versus say like on max is like I don't know 28.

But every single person like thinks differently, talks differently.

They have different preferred methods of interacting with the world where other people or the thing they're thinking about or the things they're doing.

I work with a lot of engineers.

Even the engineers are so different.

Some engineers are already like fully in the agent world, but some of them are still like typing code manually. Um, some of them purely use the keyboard.

So like you know all the Vim users or like Emacs, but also there are a lot of people just click. Like if you look at Twitter, I saw a tweet from yesterday like one of the most crack coders I know, Jared, who works on like at Bun, he said, "Get a desktop the app.

" That's the best way to see this.

Oh, wow. I didn't know that was legal to say as an engineer.

Yeah. That's crazy.

I feel so much better about myself.

Yeah. Yeah. Yeah. So, it's like I don't want to impose my preference onto people.

I want to satisfy all of them.

Ideally, we might want to cut some parts of it, but ideally like most people when they come in, they can feel like uh this thing is for them. But then it's like in order for you to do that, it means the interface will change and it will be like people can use it in a million ways.

Then you need to kind of design like a low-level architecture where you know you can fit all these different configurations and customizations.

How much do you want to offer to different people?

What what are the different defaults people get? I'm a big believer in the power of video to explain my thinking as a designer. So when it's time to give feedback, I'll drop a Loom link in Slack and another link to a Figma prototype and then feedback will be scattered everywhere and I mean it's a mess.

So I'm building the product that I've always wanted to exist and it's called Inflight.

You can kind of think of it like an Async Crit. It's an easy way to share a video walkthrough along with an interactive prototype or whatever you're designing. And then AI interviews the people on your team to get you the feedback that you need and organizes everything for you in a beautiful insights page. So right now I'm only giving access to Dive Club listeners.

So if you want to be one of the first to use inflight, head to dive.

comclub/inflight to claim your spot. I don't remember when it was, maybe a while back, but you talked about what has to happen to a product to make the jump toward different phases of scale.

And you basically talked about how if you get to the point where everyone has to use the product, you lose a little bit of soul.

Yeah.

So, it sounds like personalization is the antidote in your mind to that.

and a lot of potentially maybe what the models are making possible allows us to achieve that level of soul and craft while reaching you know a billion people kind of thing what needs to happen to get there like as the person in you know some shape or form steering the ship like how close are we what types of things are you thinking about as a designer with personalization being the end goal that you're trying to cross that chasm yeah we haven't even started yet on this one.

As I said, like when you open up cursor, the three buttons, the things we design as designers, they just kind of go up one level. Instead of you designing exactly how this piece of UI will look, the order of buttons where they are placed, you are actually designing a container. These are the patterns in my whole system and then they translate between each other.

So like in cursor you know we have like a little input when you select text you command K there's like a little input and then there's like a chat on the side there the chat on the side can also be opened as a full editor then it becomes like a full window there is the same thing maybe like in the background agent in on the website on on mobile all of them conceptually they are the same things but maybe you give them different forms depending on you know where you are doing the thing. what are the most essential patterns and ideas in this whole thing and then all of their possible configurations.

Is that a finite list then? Like as the designer of this future state of cursor, are you coming up with here are all of the primitives?

They can be combined probably in in it's probably just a standard factorial at that point in that future when you think about the ceiling for personalization.

Is there room for dynamically generated output or UIs or combinations from an AI?

Like how much does that is a factor in how you see this going? It's possible, but I don't think it's like arbitrary generating UI that say even the creators of the tool cannot control or cannot predict is a good thing. It just creates more chaos.

Yeah.

But say if you come into cursor instead of seeing the three buttons, maybe based on what we know about you, what kind of projects you work on, maybe you told us some of your preferences and then the AI can kind of reconfigure the entire cursor for you. Maybe it flips it upside down.

Maybe all you see is like this.

I don't know, like a canvas where you can draw stuff and then boom, your your idea instead of like a I don't know like a rectangle thing turns into like a real component you can play with.

Or maybe like a pure coder, you come into cursor.

All you see is like terminals.

Why not, right? But then you're still using cursor.

It's just through like a different form.

you're still touching all the same low-level primitives and there's not a lot of them.

There's actually very few of them. And I think especially for AI, if you build too many abstractions now, you're going to get [ __ ] because a lot of them will not make sense.

But there are certain things that won't ever change.

It's a good way of looking at it.

What a perfect background coming from notion, you know, because it's like how many of the tools that we use in the future will have AI playing a large role in the form and the shape that it takes for any individual person and just even the amount of context that we'll be able to extract from each individual user is like 100x with models behind the scenes.

And so coming up with the right set of blocks for AI to wield for each user dynamically probably is more important now than at any point ever in designing digital products.

Yeah. But I would say like the forms that we interact with they they haven't changed much and they don't to-do list that much.

Yeah. Different ways people process information could be visual, could be like a list, could be like a card, could be like a table, could be anything.

But it really depends on what you're doing, who you are.

All right. Well, I can't end this call without giving you an opportunity to talk about Ro because people are uh, you know, completely in love with it on Twitter for every reason. I It's really fun.

I was even playing around with it before this call and doing all the chats and iPod and everything. And you spoke to the value of building your own operating system as an exercise in dog fooding.

But like there's got to be a little bit more of a deeper motivation and where's the inspiration come from?

Why do you spend time doing this and making your own mini slacks at 3:00 a.m.

basically?

Yeah. So, how this thing started was like pure accident. I built the first app in there uh the soundboard app.

And if you open it, it's like there's some pre-recorded sounds of me making noises.

I built those.

Are you?

Yeah.

There's I didn't know that. Yeah, this was like me making noises and then I did this because like I was leaving notion and I want like my team to have my voices uh in meetings.

It started as like a react chat towin CSS app like very generic. It was like functionally correct.

Looks very ugly and I I just said make it more like retro Mac OS and then I think it pulled some random like pixely font from Google.

still very ugly, but you can get a sense of what this going to do.

And then I was like, put it in a window.

And then it put in a really bad crappy window.

And then I said, make a menu bar.

And it made a menu bar. Then it was like, why the [ __ ] does this thing only have one app? It looks like an OS, but it only has one app. And I built the second app, the Internet Explorer app.

It started just from it's just like a browser.

It looks like a browser with a bar, but all it is is just an input and an iframe and I called it an app.

But then when I did that, it's almost like I asked the agent and with the agent, we kind of redesigned the whole OS architecture like how do I handle multiple apps?

How do I, you know, have multiple windows?

There's like window foregrounding, backgrounding.

There's like, you know, which one's active, which one's not, dragging them around, resizing the windows, managing all the app states so that they're like stored the same way, putting it in in local storage so that when you close this website and open it again, all the states are still, you know, remaining.

And then I was like, let's add a text editor cuz I I was making notion.

So, I made a text editor and then it has like slash commands and stuff. And then I'm like, hm, what if the chat can write into the text editor? So, I did that.

No plans, pure vibes.

You think it's just that you're quick to act on ideas? Like, I was asking myself that before this call started cuz I was going through Twitter, right? I I made a post and so many people commented, asking questions, and a lot of them were trying to dig at like, you know, what's the inspiration for EOS?

And I'm like, you know, so many of the people listening, it's not that you're that much more creative than all these people.

It's like what's the difference, you know, and and my hunch and you can, you know, confirm or deny is that there's probably not a lot of time for you between idea and that first output and then it just lets it unravel from there.

Yeah. One of the reasons I joined cursor is I want the gap between have an idea and it becoming reality getting that closer to zero. And with cursor I can do that.

Like literally I can do that.

It's almost like now I can do way more than like it's almost like any single person was capable of before even as an engineer.

I wrote most of the real code I don't know like most of it in like one or two months. Right now it's like 130k lines of code.

Wo but and I asked like I think I asked Chad GPT like how long it would take for like a normal engineering team to build it.

has like month or years where like tens of people or like 20 is just me by myself on the side vibe coding just random ideas.

So we're hiring right now for inflight and this afternoon we were talking with an engineer and we're kind of just working through the strategy of what's the core team that we want to have for the next year and cursor has fundamentally changed that equation for us because we have two designers which means we have two front-end engineers you know like the types of engineers that you even need to hire change when you don't need someone to be super front-end savvy because I can just finish whatever feature we're working on. It's amazing.

I think that will just happen for more people and then the over specialization that we had over the last 10 years or so just completely does not make sense anymore.

It's almost like everyone if you know how to interact with the AI.

It's almost like releving the field a little bit. meaning like I see a lot of say 17 year olds vibe coding with AI doing way crazier things than say some engineer at like big tech doing 10 lines of code a day or you know all these people right now they're playing with AI on the edge they keep poking at it they know what it is maybe they did it within like a pretty short time span because the tools are also like getting really fast but they're like pretty ahead versus if you are still thinking maybe we need to do like I don't know weekly plans standoffs meetings certain rooms eat my lunch do nothing it's going to be bad for you good luck we talked about the role that cursor plays in more of the ideation experimentation phase but can you talk a little bit about how you collaborate with engineers at cursor while building cursor and how often are you contributing production is that something that's happened when does it And what does that part of the process look like?

Yeah. One example is not even like for myself.

So we we have another designer, his name is Ricky. He was also from Notion.

He's like a really big like design system guy. Like he loves making componentry stuff in Figma.

All the color tokens, styles, components, nested components, all the different states and stuff.

He joined and then he started there, you know, kind of like old habits like just clean up everything, mock them up, make them like visually perfect, which I think is really important too, but it's almost like a thing that you only do once.

So he did that and then we started like rearchitecting and redesigning all of our setting pages, like all the settings and the dashboard. So he did that in Figma for like maybe like two weeks and I was like, "What are you doing?

like let's just like try vibe coding it.

What do the engineers think about this?

The question, you know, they love it.

Yeah.

Yeah.

They see us more like part of them now.

Explain that.

I started building things without knowing the distinctions between a designer, engineer, a PM, whatever.

I just made stuff myself. I designed the thing in my mind. I coded it. And then I became a designer. And I just felt this whole thing doesn't make sense.

Meaning like the designers are the people who draw pictures and the the pixel states and then the engineers need to like say okay great given these pictures now you kind of design the whole architecture every piece of it and build the whole thing.

It doesn't make sense.

It's like this is the same problem same puzzle different size of the puzzle different layers of abstraction of the same thing.

If you slice it like this, it will end up in a weird thing when it could be something way better. It's a good segue back to before me, there were no designers at Cursor because people just built for themselves. They designed for themselves.

And I think it's great.

It's like that's how cursor got here because we built the best AI tool for programmers.

I think we have a really good team and then we're almost building the most cracked AI workflow that involves all the manual you know coding but it's like that is just the start but as you expand to more people you need to make the system you know accommodate more ways of doing things different visualizations different abstractions that's what I was going to say what your story speaks to the value of the designer right like since you have a bunch of people building for themselves but it was the designer required to come in untangle complexity and create a solution that could scale to more people outside of themselves.

Exactly. It's like we have so many great engineers, but they're kind of clueless in some way, too. It's like they they build the most hard part of the whole problem, but they forget to build the doors or they forget to like make the paths flow into the same thing.

Like instead of building five things, maybe we should just build one thing.

It's just one thing that have like n or like a million different ways to see it and then I think that is what I think say designers or even like software architects will be doing like you're just kind of designing the the the boundaries of things how the concepts work together and instead of doing that layer by layer like before meaning you have to start with the I don't know the strategy you write a giant doc share it And then get some PMs to write more specific like requirements and tasks.

Split the tasks. Do some long planning session.

Split the task to the engineers.

Let them do each of them like coding monkeys.

Instead of all that, we're just builders. We have ideas.

We want to build the best thing together.

Maybe I'm more artsy. Maybe I do more visuals.

Maybe you think about the data model more or like the ML stuff.

I actually don't know much about ML stuff, but you're kind of completing this whole puzzle together and the roles, the titles just don't matter anymore when these people, all of the people involved get to write code.

We talked about the systems thinking piece.

Mhm.

Aside from that, in a world where everyone can write and contribute ideas in code, what are the other really durable skills that you think define what a designer brings to the table in that world?

Right. I think it's really about like if you pulled all the way up like the most high level, it's really just how you interpreted the world, how you view the things around you, the concepts that you're working with. Cuz you know, like we're all different. Some people are more like maybe they're like really good at some really deep detail but maybe less on the high level. Some people are more like really good at high level stuff but maybe they're not as crafty.

Some people maybe are like really good at like low-level code but then when they build UI they just want to throw buttons everywhere and then confuse the [ __ ] out of people. But it's like all we're doing at the end results in beautiful quality software that works.

That is, you know, the ideal state of all the like the sum of all these people where they want to get to. And then it's almost like before cursor, these people had to rely on like really archaic ways to communicate and to align and to work together.

And then I think the problem is actually this is like each of these roles, each of these specializations, they think differently in their own almost like a mental palace.

It's like we talk in I don't know v visual hierarchy typography spacing colors.

The engineers talk in like I don't know some backend stuff. Um but you know it's all the same thing at at the end like the back end is generating some message that you need to display in the UI.

It will be communicated through pixels.

Maybe at some point we'll get to like brain computer interface.

But you know what doesn't change is how you build the thing like how you think about it.

How you break it up?

How do you tie them back together with people and AI and you know the code themselves?

What you want the thing to be?

Some people think uh building like a single purposefully built thing that only does one thing is great.

I don't think like that. Then you have different preferences, different ways of doing things and then those might be what makes the difference.

We've covered a lot of ground and I decided to outsource my final question to Rio. Yes. And I I was talking with the virtual you earlier and I was asking and my prompt was basically uh you know what is the most interesting question that I can ask to end this conversation and what is it?

What's something that you believe about the future of HCI that sounds a bit insane but you still believe it's true.

the interface will just become like how you think and I think it will just get closer to you meaning like maybe we don't operate from like proxy devices maybe it's even closer so like I'm a visual thinker I'll still see my like canvas stuff but then maybe they're floating in my mind instead of like on a screen yeah that's a trippy future have you seen the new like neural link like presentation like they can already like with like I think a thousand electrodes is draw stuff in your vision field.

Yeah, it's crazy.

I mean, it's hard not to just be like, what?

The whole definition of what we think of as a designer in that world is just what does it mean? You know, how much carries over? It's crazy.

There's still someone coming up with the concepts, how you call things, even what are Yeah.

The importance of language.

Oh my gosh, you're right. It's like that is actually like a big part of my job now is like clarifying concepts and ideas that are supposed to be the same into like their simplest form that doesn't change.

Well, Rio, this has been amazing.

Thank you for hanging out and geeking out on all of the things in your brain.

It's been really really fun to see how you work and I I'm even more appreciative that you took this role than I was at the beginning of this knowing now the impact that you have had on this product.

It's really been a joy to watch both as a a user and a observer.

Excited to keep following you on Twitter man.

Thank you.

Before I let you go, I want to take just one minute to run you through my favorite products because I'm constantly asked what's in my stack. Framer is how I build websites. Genway is how I do research.

Granola is how I take notes during crit.

Jitter is how I animate my designs.

Lovable is how I build my ideas in code.

Mobin is how I find design inspiration.

Paper is how I design like a creative.

And Raycast is my shortcut every step of the way. Now, I've hand selected these companies so that I can do these episodes full-time. So, by far the number one way to support the show is to check them out. You can find the full list at dive.comclub/partners.

Loading...

Loading video analysis...