The Design-Code Roundtrip That Isn't — Jonathan Gordon, ReWeaver AI
AAI Engineer
Computing/SoftwareSmall Business/Startups
Transcript
00:00:00Hello everyone. I'm Jonathan Gordon. I'm a founder of ReWeaver AI, a new company,
00:00:18new on the scene, let's say. I want to share one thing with all of you that was really
00:00:22fascinating. So I plugged in my laptop and I realized I had to mirror, so I no longer
00:00:28had my speaker notes. So I went into Claude and I said can you extract my speaker notes
00:00:33from my slide deck please? And I had my speaker notes now. I love AI. The suspense was killing
00:00:42me. I was talking to Claude. Now who knows if it got it right. I don't know. Whatever.
00:00:48So I also realized that my title slide buried the lead. I shouldn't have put it up. But
00:00:53nonetheless, let's play with this. So yeah, my name's Jonathan. I'm here to talk to you
00:00:59about the design code round trip that isn't. And I guess probably the best thing to do first
00:01:06is to explain what I think a design code round trip should be. A design code round trip is a
00:01:15full loop between design and engineering in both directions without any loss of fidelity and with a
00:01:26persistent provenance so it knows exactly where everything came from. You know, that perfect dream
00:01:32world that we live in where there is no drift in between the gaps of design and code. Today's tools,
00:01:44design is amazing. It's incredible. It's magic. I asked for something. I get it. It's clickable. It's
00:01:49interactive. It's amazing to me. But nobody really looks at the code anymore, it seems. And so I kind of want to go there. I want to go into that space. Whoops. Of course, I have to get my mouse to this.
00:01:54There we go. A little bit about me. Past 30 plus years, I've been building and designing coding tools, developer tools, IDEs at these companies. So I've spent a lot of time with, as a designer, I've spent a lot of time with design and engineering teams,
00:02:02trying to understand how do we do that handoff well. How do we do that handoff well? How do we handoff from design to code? How do we get what we wanted?
00:02:14How do we do that handoff well? How do we handoff from design to code? How do we get what we wanted? How do we do that handoff well? How do we do that handoff well? How do we do that handoff well? How do we handoff from design to code? How do we get what we wanted?
00:02:30How do we get what we wanted to be delivered to the customer? It was never a perfect science. We never got it. We never found that magic sauce that just made everything come together, where intent matched the outcome.
00:02:48But I developed techniques. I negotiated with engineers. I brought them out for drinks. I made them my friends. I got things delivered to customers.
00:02:58But the loop was never closed. And it's because our outcomes diverged. Engineering had one set of requirements, technical constraints. Design had a vision for the future, a new rebranding, whatever. So this has existed, you know, dare I say, for decades.
00:03:15And then along comes AI. And LLM and prompting ourself into a fully running application. In a sense, now we have one intelligence that understands design intent. And the same intelligence can write code. So I thought to myself, oh my god, I think we might be able to close this loop. At the speed of inference, we could close this loop.
00:03:43And so I was curious. And so I was curious. I'm curious by nature. So I went all in. That's my GitHub before Vibe coding happened. On the left. On my left. On your whatever. Then after. So I think everybody probably gets a sense of what my life was like from April 2025. And if you want to scroll till today, it's even more so.
00:04:11I got this email from Cursor one day that said I was in the top 0.1% of usage of Cursor. And I thought to myself, I need to spend more time outside.
00:04:27Then there was a bill. But at the time, it was the $20 deal. And I kind of, you know, monitored. But every now and again, I'd pay for a little bit more. Get another hit.
00:04:39And this was my life, Vibe coding. From that point in April until today. I'm trying to figure out, can I go from design to code? Can I go from code to design? Can I build a tool to go from design to code and code to design?
00:04:57Can I go from design to design a full round trip without any loss of fidelity? That pixel perfect dream that we have.
00:05:05I remember vividly, one day I was, you know, just hammering away at the keyboard, just vibing my way. I was really feeling the vibe.
00:05:15And this wall of text was coming by. And I was completely ignoring it. And code was being written. Just watching that come by. And I remember seeing a statement that was an inner HTML statement.
00:05:29And I remember from way back when that inner HTML was a security vulnerability that people can actually inject into inner HTML. And I stopped it.
00:05:39And I said, wait a minute, wait a minute, wait a minute, what did you just do? And it explained to me what it did. And it was very proud of itself. And I said, revert that, do this instead, blah, blah.
00:05:51And I got into this mode of like, oh, maybe I need to steer this thing a little bit better. Maybe I can't just go blindly in. Maybe I need to look at the code now.
00:05:59And I've looked at a lot of code in my life. So I went ahead and went in and looked at the code. And I, whoops, I'm sorry, clicked two ahead.
00:06:08And I found, I found issues. And so I went a little bit deeper when the industry started to tell me that they had solved the round trip.
00:06:19That you could go a true round trip workflow. You could round trip between code and canvas. I think folks in the room might remember back in February, no slam on Anthropic or Figma.
00:06:32There was this demo that showed going from cloud code into Figma. And it was magic. It was incredible. I couldn't believe you could build a Figma artboard from a prompt in cloud code.
00:06:44And then I had to go deeper. And I had to look deeper. In the same way that I looked at vibe coding. Like, is this real? Is the hype real?
00:06:51So I went deeper and then more announcements were made. All the way up until last week when FigmaConfig announced that code is now material.
00:06:59Does that mean there is no even handoff that exists anymore? So I'm monitoring, trying to keep up. Things are happening at warp speed.
00:07:10But they said the round trip was solved. And I started messing around and realized it wasn't. And so I want to share with all of you a harness that I built.
00:07:21Whoops. Oh, wait a minute. Localhost. Where are you, localhost? Come back to me, localhost. Okay. I don't know what just happened there.
00:07:34And now I'm afraid to restart this. Okay, I think we're okay. I created this harness. And what this harness is, is on -- I'm going to say left. I hope everybody -- is that your left? It is your left. Okay, good.
00:07:48On your left is code that was generated by AI. This is all real, what you're seeing here. Generated by AI. And on your right is a design, be it a canvas that I created in Figma, be it something I created in Sketch.
00:08:05It's not really relevant what the sources are here. But the reality is I'm trying to illustrate a round trip. And so a round trip, you know, starts with code or starts with design.
00:08:16And it has a prompt associated with it. So some LLM, I call off and I say, in this instance, I want to take this form and I want to build a design system from it.
00:08:26So there are tools that do this, that can extract code and build design systems from graphical canvases. And so I can do that. And it updated the code and created some styles. And it also actually created a design system that works in runtime here.
00:08:43So this is like a real app that got built that is also living in Figma. So there's a link up here. I won't go there, but trust me -- so we can say stable -- if I click that link, it would go to Figma and show me the full blown design system that was built.
00:08:58And a design system, for those that don't know, is composed of components and tokens and variables and styles that all are used as a basis for building software from.
00:09:10So code and design together, you know, really work well when there's a design system and there's a code base that understands it.
00:09:16Now, move back and forth, you throw something over here and you say, okay, I want to build an orange button.
00:09:22And I've added a company field and an orange button. The code is updated. The design is updated. This is awesome. Could I go back? Maybe.
00:09:31But I have a button up here called show drift. So show drift is reweaver AI working right now. And this is real reweaver code for the first time introduced to the public ever.
00:09:44And if I click show drift, I'll see a list of issues that got generated from both the code and the design at the same time.
00:09:54There are across several different dimensions that you can see here. Design quality, code quality, performance, design tokens, et cetera.
00:10:02One of the ones of note that I find really important from my perspective is that Microsoft, I worked on accessibility.
00:10:10And I learned a lot about what it means to build an accessible software system.
00:10:14And I want to be honest with all of you, I was very frustrated when I first saw LLMs come out and they generated code that was inaccessible, period, out of the box.
00:10:22I thought, what, models weren't trained on accessibility? And I was reminded 20 years ago when, you know, engineers needed to be trained on accessibility.
00:10:33So here we are again now, training LLMs instead of engineers on accessibility.
00:10:38So, found issues. Here's an issue where has no ARIA live region, so it won't be announced by a screen reader.
00:10:48A blind user using this won't get an announcement about this element.
00:10:51So reweaver found that. And reweaver says it can fix it. And reweaver fixed it.
00:10:57Now the red went away, but there's also a blue issue here as well.
00:11:00So reweaver stacks up issues and, you know, basically scans the code and scans the design.
00:11:07And produces guardrails to a sense, but also a way to fix the code and make it better.
00:11:13So I did that across multiple dimensions, you know, with the intention of seeing if anybody had solved the round trip problem.
00:11:24And it didn't go well. I never got really the full round trip.
00:11:30I really tried, hopefully this slide tells you, I tried five different tool setups.
00:11:36Trying to do code design code round trip, both directions, bi-directional, lots of lossy issues.
00:11:42You know, bindings were lost. Design change survived, but code didn't.
00:11:48I'm not going to say we're not going to get there.
00:11:51But even if we do get there and we're able to do this, I wonder if we'll get fully there.
00:11:59And maybe we need tools like reweaver. I shouldn't say maybe.
00:12:03We do need tools like reweaver to help us understand the drift.
00:12:09So that whole experience for me really highlighted something from my past.
00:12:14I had built a lot of software development tools, designed and built software development tools.
00:12:20And developer tools in their nature are deterministic.
00:12:24You write code, you compile it, you get an AST.
00:12:27Every time you run that code, you'll get the same result.
00:12:30When you put AI in the middle of that, or the front of that, or at the end of that,
00:12:34you're not going to necessarily get the same outcomes.
00:12:37Now, there are tools that will help you understand, reweaver being one of them,
00:12:41that there's a mismatch, there's drift there.
00:12:45And we need to be aware of drift. Drift lurks in the dark.
00:12:49You need to look at the code, you need to find the drift, you need to fix the drift.
00:12:53And you do that with deterministic guardrails around the AI.
00:12:57The AI is still there.
00:12:59So I ran another experiment, 12 iterations on a code base with complex enough UI to it.
00:13:05And I did one where it was just pure AI led, just LLM all the way.
00:13:09And it degraded a little bit, but it started at 30% quality, 30% fidelity, 30% true pixel perfection.
00:13:19And then I put it on top of deterministic guardrails, where we found the issues, we fixed the issues.
00:13:26You can't get to 100 because that 10% is human judgment, human decision making.
00:13:33So the human is still there in this equation.
00:13:37So what is it today?
00:13:41Today, I would call it we're locked into AI.
00:13:45And that's okay, we'll go there, we'll embrace that.
00:13:47But we're locked into AI for design to code, we're locked into AI for code to design, looping, chatbots,
00:13:54what we call span the chain workflows, where you're jumping across tools.
00:13:58And there's always token costs to be aware of, of course.
00:14:01So in this world, the agents are in control and the humans in the loop.
00:14:05I'd like to pose something else.
00:14:07Before I do, there are three blind spots we need to be aware of.
00:14:11One is the model itself.
00:14:12You can ask the questions, it'll give you answers, but it's non-deterministic, it's probabilistic.
00:14:18There will be drift in the moment.
00:14:20When you're writing code, drift will surface.
00:14:22But drift over time is the pain that you'll be experiencing for the next six months.
00:14:28Because drift over time is the new tech debt.
00:14:32And it's going to pile itself gloriously over your code base.
00:14:40We want to do something about it.
00:14:42So here's where we think it isn't, meaning what it could be, what it should be.
00:14:49Fully bi-directional.
00:14:51Edit both ways.
00:14:52Lossless.
00:14:53All surface is preserved.
00:14:54So if you go from code to design and design to code, nothing's breaking weirdly for you.
00:14:59Provenance is carried.
00:15:01Where did this start from?
00:15:02What line of code wrote this button?
00:15:06I see this button in Figma.
00:15:08I want to change it.
00:15:09I need to change that code.
00:15:11Or somebody needs to change that code.
00:15:13We have to control the drift.
00:15:15It's deterministic reconciliation at its core.
00:15:18So with deterministic guardrails, and I'm happy to talk after if folks are interested in what I mean by that.
00:15:25Accept or refuse.
00:15:28So if they know there's a fix, they will fix it.
00:15:31If they don't know there's a fix, they will tell you there's an issue, but you need to fix it.
00:15:38And with Ruby Weaver, there's zero extra token costs.
00:15:41So we're fully local LLM.
00:15:43But if you want to open up Claude or whatever and connect to us, you can.
00:15:48But at its core and our core principle is the human is in control.
00:15:51Always.
00:15:52In control of cost.
00:15:54In control of code.
00:15:55In control of design.
00:15:57Because that's what we've been doing for decades.
00:15:59We've been in control.
00:16:01We don't need to lose control.
00:16:03And I'm not saying loop isn't good.
00:16:05But human in control is, I think, a little more aspirational.
00:16:09Because at the end of the day, what you need is actually what you get.
00:16:14I call it Winnie Wig.
00:16:16Can I use that?
00:16:17Winnie Wig?
00:16:18Winnie Wig.
00:16:19Okay.
00:16:20So, what are we building?
00:16:21At its core, what we're building are nine dimensions of deterministic guardrails.
00:16:27Inside of this is a lot of stuff.
00:16:30But these are our top level software quality, software production readiness dimensions.
00:16:36Design consistency being core, of course.
00:16:39And when you have a design system and the code is inconsistent with it and vice versa, we need
00:16:43to fix that.
00:16:44So, there's a lot of design consistency work that's going into the foundation.
00:16:50Accessibility is its own dimension.
00:16:53Maybe selfish of me, but I think it's core.
00:16:57AI code generation, too.
00:16:59Or AI code, sorry, governance.
00:17:01AI code generation governance is another really critical piece because the code is just flying
00:17:06through the system.
00:17:07And we need to govern that code.
00:17:09Now, we're not going to change the code.
00:17:11Reed Weaver actually doesn't write code.
00:17:13Reed Weaver will do what you want it to do.
00:17:16So, if you say, apply the fix, it'll write the code for you.
00:17:20You can see the code being written.
00:17:22You can say, never mind, undo.
00:17:24You can ignore it.
00:17:25So, at the end of the day, catch what drifts in a closed loop before anything merges.
00:17:30That's the goal.
00:17:32You can try it out with your own code today, right now.
00:17:35You can go to reweaver AI slash playground.
00:17:38And we built kind of a similar harness to what I built there, where you can put your AI generated code on the left, on the left.
00:17:46You can scan it and get your results for that code.
00:17:50There's also a fun little challenge on that page.
00:17:53If you can get AI to generate code that gives you a score lower than .30 PDR, which is production drift ratio, we'll get you a frontline seat on the beta.
00:18:05But you'll also get yourself showcased at the bottom on the crawl.
00:18:09So, give it a shot.
00:18:10Take a look.
00:18:11Meanwhile, I'm looking for people to join our beta.
00:18:14We're gonna basically blast out mid-July, hopefully.
00:18:19So, we'd love for you to join if you're interested, to make the product better, to sanity check us.
00:18:26Basically, that's it.
00:18:28And you can also reach me online or outside.
00:18:32Happy to talk more.
00:18:33Thank you.
00:18:35Thank you.
Community Posts
No posts yet. Be the first to write about this video!
Write about this video