Originally published on no-code.supply.
TL;DR
- I used to call myself a Figma expert. I still use it at my day job, but I don't design every state and every variant there anymore.
- Figma has its own AI now. It works, but it feels slow and much weaker than Claude working in Figma through an MCP.
- Figma was never the source of truth. Code is. Variants are simpler in code than in a design tool, where one button can grow to 1,100 variants.
- I learned CSS properly so I could build anything I designed. It was all boxes anyway. Now the web expects shaders and three.js, and I don't want to learn all that.
- And I don't have to. I'm no longer limited by my own abilities. Websites, apps, games, video ads: I describe it, an agent builds it.
- My path there: ChatGPT and copy-paste, then Cursor, then Claude Code in the terminal, then MCPs for everything. Today the agent is Claude Opus 5.5.
- Knowing how to code made the switch quicker for me. But if you've never coded, go straight to the agent and start building.
A bit of background
I'm Lauri Lännenmäki, a design engineer. I've spent fifteen years designing and building for the web, most of it somewhere between Figma, Framer and code.
I started using Figma when it came out. I had my own business back then, so nothing was stopping me from jumping over from Sketch. Over time I fell in love with it, mostly because of what it let me do: build design systems that developers actually implemented.
I knew the shortcuts, I built the component libraries, I set up the variables, the properties and the variants. If you'd asked me back then, I'd have said I was a Figma expert, and I'd have meant it.
This post is about why that changed. It's an opinion, not a review. Let's dig in!
I still use Figma, just differently
Let me be fair first. I still work in Figma. At my 9–5, if a client has design files somewhere, they're in Figma.
I just use it differently now. I don't design every state and every variant in Figma anymore. If I have to, I start there, and then I move to code.
Figma has its own agent now too. It has fixed things and made changes to my components when I didn't have the time, on the kind of tasks I knew would annoy me. It works. But, I dunno. It feels slow, and it feels much weaker than Claude working in Figma through an MCP. (More on MCPs below.)
The careful way feels slow now
You can use Figma in a lot of ways. You can rapid-fire everything, or you can take your time: name every layer, and set up all the variables, properties and variants properly.
I'm the second kind. And today, that work feels slow and a bit stupid, because I know all of it has to be done again in code. In code, I can just prompt what I want, and the variables, properties and variants are simply there.
So it's not that Figma got worse. The way I work moved somewhere else.
Figma was never the source of truth
Here's something I've believed for a long time, even back when I lived in Figma: designs should really be built in code. That's where they end up anyway.
Figma is a hi-fi picture of what a product could be. It's not the source of truth. It never has been, and it never will be.
I learned that the hard way. Once I started building my design systems myself, I quickly noticed I was keeping Figma up to date with the code, not the other way around. The code was the real thing. The Figma file was the copy I had to keep in sync.
The button with 1,100 variants
Variants show this best. And the usual offender is the button.
Give a button icons, sizes, states, colours and shapes, and it quickly turns into a sea of variants. I've worked on one that has 1,100 variants in Figma. Try editing that, and your MacBook starts to sound like it's about to take off.
In code, the same button is a handful of props:
<Button size="lg" variant="ghost" shape="pill" icon={<Arrow />}>
Read more
</Button>
You read it top to bottom and you know exactly what it does. In a design tool, you get booleans that hide a layer, text properties that swap a string, and nested instances with their own overrides. It works, but it never felt quite right to me. It's code dressed up as a canvas.
So the move to code didn't feel like a loss. It felt like dropping the translation layer.
It was all boxes. Was.
I'm not a designer who can't code. I know how to code to a certain degree, and I used to be really good at CSS. I learned it on purpose, because I wanted to be able to build anything I designed. No handing a file over and hoping it comes back looking right.
And for a long time that was enough, because the web was all boxes. Flexbox, grid, a few transitions, and you could build pretty much anything that came out of a design tool.
That's not what people expect from a landing page or a marketing site anymore. Now it's shaders, WebGL, three.js, things that bend and refract and react to the cursor.
I'd never be able to build a three.js site by hand. No way. I wouldn't even try, because I wouldn't want to ship anything shitty. It's a whole other craft, and I'd rather spend my time on the ideas.
And now I don't have to
This is the part that still feels a bit unreal.
I envision something, I put it in a prompt, and the agent makes it happen. Then I get to sit back and marvel at the outcome.
Many of my own templates have effects I don't know how to build. Aurel has a raymarched WebGL serum drop in its hero that bulges toward your cursor. Tidewater opens with WebGL caustics, like light on the sea floor. I didn't write those shaders. I asked for an effect, and the agent decided how to build it. I never had to say "use WebGL" or explain how a shader works. Usually all I need to do is ask.
And it's not just websites. Here's some of what I've made with AI:
- the first version of my Framer plugin, with nothing but ChatGPT
- two iOS apps (not published)
- thegoatdebate.io
- TikTok video ads
- a 3D shooting game, and a 2D one
For most of my career, what I could make was capped by what I could build myself. That cap is gone, and I still find that super fascinating.
My job didn't disappear. It moved. I still decide what something should look like, how it should feel, and whether it's good enough. I just don't need to know how to write a fragment shader to get there.
How I got here
It didn't happen overnight. Looking back, every step felt like a big leap at the time.
1. Chatting with ChatGPT
In the beginning I just chatted with ChatGPT. Then I started coding with it. The workflow was copy and paste: describe the problem, copy the answer into my editor, run it, copy the error back, repeat. Clunky, but it worked. That's how the first version of my Framer plugin got built.
2. Cursor
Then I moved to Cursor, and that felt like a giant leap forward. The AI was inside the editor, it could see my files, and it could make the change itself. No more ferrying code between two windows.
3. Claude Code in the terminal
Then I moved to Claude Code, in the terminal. And pretty quickly it started to feel very cool to not look at the code at all. Sometimes I still do, but mostly I don't. I describe the outcome, the agent does the work, and I review what it made: the page, the behaviour, the result. Not the diff.
4. MCPs
Then came MCPs, and I was mind-blown all over again.
An MCP (Model Context Protocol) server connects the agent to another tool, so it can read from it and act in it directly. One of my first was Figma Console MCP. I used it to debug and map out a massive design system I help build for a Finnish company.
For example, I had the agent find every gap and padding that used a hardcoded value and switch it to a variable. Then the same for colours. Doing that by hand means clicking through hundreds of components one layer at a time. I probably saved hundreds of hours of manual, annoying work with that one MCP.
Which is a little ironic for a post about leaving Figma: some of the most useful Figma work I've done lately, I did without clicking around in it myself.
5. An MCP or API for everything
Now I have an MCP or an API for pretty much everything I use:
- Jira and Linear for tickets
- GitHub for code
- Polar and Stripe for payments
- Supabase for databases
- Figma, Framer, Paper and MagicPath for design
- Google Search Console for search
The agent doesn't just write code anymore. It works across the same tools I do.
Why Claude Opus 5.5
I like trying things out. Besides ChatGPT and Cursor, I've used tools like Higgsfield for images and video, and ElevenLabs for voice. But for building, my agent is Claude Opus 5.5, running in Claude Code.
Opus 5.5 is just a beast. It understands me.
I'm on a Max plan, and I've learned to make it last for both my 9–5 and my own projects on the side. And I'd pick Claude anyway, because to me Anthropic always feels one step ahead of everyone else.
It helped that I could already code
I'll be honest about one thing: I had a head start.
I knew how to code, and I already knew my way around Node, git and the terminal long before AI showed up. So when the tools moved from a chat window to an editor to the terminal, I didn't have to learn a whole new world at each step. I was already living in it.
For a designer who has never coded, the same transition probably takes longer and feels less natural. You're learning the agent and the environment it runs in at the same time.
But that's no reason to wait. My advice: go straight to the agent and just build things. When you feel like you're onto something and you want some version control, ask for help. Learn the basics of git, and ask the agent to teach you. You don't have to get fancy with it.
Everybody is a builder now
For most of my career, designers were limited by others. You designed something, and then you waited for a developer to build it, and hoped it came back looking right.
That's over. Designers are no longer limited by developers. Everybody is a builder now.
And "build" doesn't just mean websites anymore. If you can describe it, you can make it:
- Websites, landing pages and marketing sites
- Web apps, dashboards and internal tools
- iOS and Android apps
- Plugins for Framer and Figma, and browser extensions
- Code components and whole design systems
- 3D scenes, shaders and generative art
- Motion design, launch videos and video ads
- Games, in 2D and 3D
- Images, illustrations and brand assets
- Music, sound effects and voice-overs
- Physical products you design in 3D and send straight to a 3D printer
- Automations and scripts for the boring parts of your job
- Your own business: the shop, the checkout, the emails, the analytics
Ten years ago, each of those was its own career. Now it's a prompt away. You still need taste, and you still need to know what good looks like. But the skills that used to stand between an idea and the finished thing are no longer the bottleneck. Your ideas are.
Wrap-up
The distance between an idea and a working website just got very short, and for me that distance used to be most of the work. But I don't think design tools are dead.
For me, a design canvas is still the best place to see the big picture. Claude can make magnificent visual presentations of the bigger picture when I need one, but an endless canvas is useful as hell.
Same with the small stuff. Making a little tweak by hand in a canvas tool still beats trying to prompt my way to one exact detail. Although sending the agent a screenshot of the exact spot does the trick almost every time.
What I'm waiting for is the next step: just talking to my computer and seeing things happen in (almost) real time, pretty much like in the GPT-6 Astra launch video. That would be sick.
If you read this far, thank you! 🙏
And if you want to see what this way of working produces, the templates are here. Every one of them was built this way.
Top comments (0)