The Design-Code Roundtrip That Isn't — Jonathan Gordon, ReWeaver AI

Read the talk

The Design-Code Roundtrip That Isn’t

Jonathan Gordon tests the promise of lossless movement between design and code, finds drift across five tool setups, and proposes deterministic reconciliation that keeps AI generation inside human-controlled guardrails.

From a talk by Jonathan Gordon

At a glance

Ideas worth remembering

  • A true design–code roundtrip must be bidirectional, lossless, and provenance-preserving; generating similar artifacts on both sides is insufficient.

  • The innerHTML incident shows why fast code generation still requires inspection: plausible output can conceal security or production-readiness problems.

  • Scanning design and code together can expose omissions that visual comparison misses, such as a dynamic element without an ARIA live region.

  • Five tested tool setups lost bindings or failed to carry changes into both representations, demonstrating that one-way generation is not yet a lossless roundtrip.

  • Deterministic guardrails should surround probabilistic generation: apply known fixes, report uncertain findings, and preserve human authority over code, design, and cost.

  • Unwatched drift compounds over time into maintenance work—the “new tech debt”—so reconciliation must happen continuously and before merge.

A roundtrip must preserve more than pixels

Jonathan Gordon, founder of ReWeaver AI, opens with a small piece of AI-assisted improvisation: after display mirroring hid his speaker notes, Claude extracted them from the slide deck. Whether it extracted them correctly was another question. That uncertainty neatly previews the larger problem: a generated result can look useful without proving that it faithfully preserves its source.

A genuine design–code roundtrip has three requirements. It must move in both directions, preserve fidelity, and carry persistent provenance. If a button appears on a design canvas, the system should know which code produced it; if someone changes that button in the design, the corresponding code should change without losing bindings, behavior, tokens, or other meaning.

That standard is higher than generating a clickable mockup or visually similar component. Design and engineering have historically optimized for different outcomes: design carries product intent, branding, and a vision of what the customer should experience, while engineering must satisfy technical requirements and constraints. Gordon’s more than 30 years building developer tools and working across that handoff never produced a perfectly closed loop. Negotiation could get software shipped, but it could not guarantee that intent and implementation remained identical.

Large language models appeared to remove that organizational split. One model could interpret design intent and write code, suggesting that the loop might finally close “at the speed of inference.” The important question, however, was not whether a model could create both artifacts. It was whether repeated movement between them remained lossless.

0:120:41
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

0:12 · section reference included

The `innerHTML` moment ends blind acceptance

Gordon tested that possibility by going all in on vibe coding beginning in April 2025. Cursor told him he was in its top 0.1% of usage—an achievement that prompted the conclusion, “I need to spend more time outside.” Underneath the joke was a sustained experiment: move from design to code, move back from code to design, and see whether the pixel-perfect result survives.

Recording frame at 333 seconds
Recording frame at 333 seconds

The turning point came while generated code streamed past faster than he was reading it. The token innerHTML caught his eye. Because writing untrusted content through that API can create an injection risk, he stopped the agent, asked what it had done, and ordered a revert. The observable change in his workflow mattered more than the individual correction: the code stopped being background output and became an artifact requiring inspection and steering.

Once he began reading again, more issues appeared. The same skepticism then applied to public demonstrations of code-to-canvas workflows. Creating a Figma artboard from a Claude Code prompt looked magical, but successful generation in one direction did not establish a roundtrip. The test had to include the return journey and inspect what disappeared along the way.

3:434:13
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

3:43 · section reference included

“Show Drift” checks both sides of the handoff

The demonstration harness puts AI-generated code on the left and a design canvas on the right. Either side can serve as the starting point, and an LLM-mediated prompt performs the transformation. In the example, a form becomes a design system represented in both a running application and Figma.

Recording frame at 526 seconds
Recording frame at 526 seconds

A design system supplies the shared vocabulary: components, tokens, variables, and styles become the basis for constructing software. The example then changes visibly. A company field and an orange button appear, and both the code and design update. That is enough to demonstrate synchronized generation. It still does not prove that the relationship can survive another trip backward.

The Show Drift action changes the question from “Did both sides update?” to “Where do they now disagree or fall short?” ReWeaver scans the code and design together and groups findings across dimensions including design quality, code quality, performance, and design tokens. This treats the rendered result and its implementation as two representations to reconcile, rather than trusting either one as complete.

Accessibility provides the concrete failure. The scan finds a dynamic element without an ARIA live region, which means a screen reader will not announce its update to a blind user. ReWeaver offers a fix; after it is applied, the red issue disappears while another blue issue remains. The sequence is inspectable: generation produces an apparently working interface, the scanner detects an omitted accessibility behavior, the user authorizes a correction, and the finding changes state without pretending every other issue is solved.

What relationship does this make visible? The diagram shows why a visual match alone cannot close the loop: both representations must feed a common reconciliation step, and a human must decide what happens to each finding.

How it fits togetherFrom synchronized artifacts to a human-approved correction

One representation of the interface and its behavior.

Code and design are scanned together. Findings can be fixed only after an explicit decision, and unresolved findings remain visible.

7:277:58
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

7:27 · section reference included

Five tool setups still lose information

Testing five bidirectional tool setups did not produce a complete code–design–code roundtrip. The failures were lossy in different ways: bindings disappeared, or a change survived in the design while the corresponding code did not. These outcomes leave open the possibility that future tools will improve, but they show why a successful one-way demo cannot establish persistent fidelity.

Recording frame at 792 seconds
Recording frame at 792 seconds

The proposed remedy comes from conventional developer tooling. Compilers, parsers, and abstract syntax trees provide repeatable structure: the same input can be checked against the same rules. Put a probabilistic model before, inside, or after that process and identical outcomes are no longer guaranteed. Deterministic guardrails therefore surround rather than replace AI, checking its artifacts for known mismatches after generation.

Three kinds of drift emerge from this model:

  • Representation drift: code and design no longer describe the same component, token, binding, or state.
  • Production drift: generated code works nominally but omits qualities such as accessibility, performance, or governance.
  • Temporal drift: small unobserved changes accumulate over repeated iterations until the codebase carries a new form of technical debt.

A separate experiment ran 12 iterations over a codebase with a sufficiently complex interface, comparing pure model-led output with output checked and corrected through deterministic guardrails. Gordon reports that pure model output began around 30% fidelity and degraded, while guarded iterations held up better; he also reserves the final stretch for human judgment. The talk does not define the fidelity calculation, show the underlying series, or explain how the stated percentages relate, so it supports the direction of the reported result rather than a measurable effect size.

This changes the unit of concern. Drift in one generation is a review finding. Drift over six months becomes accumulated maintenance work—“the new tech debt.” The danger is not merely that one model response varies, but that variation keeps entering a codebase faster than people notice and reconcile it.

11:1611:46
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

11:16 · section reference included

Human in control, not merely in the loop

The target system is fully bidirectional and lossless: edits travel both ways, all relevant surfaces remain intact, and provenance identifies where each element came from. If a button in Figma originated from a particular line of code, changing the button should preserve that relationship rather than silently creating two independent artifacts.

Recording frame at 909 seconds
Recording frame at 909 seconds

Deterministic reconciliation then follows an accept-or-refuse rule. When the system knows a valid correction, it can propose that fix. When it knows only that something is wrong, it should report the issue and leave the resolution to a person. Refusal is valuable because uncertainty remains explicit instead of being converted into another plausible approximation.

ReWeaver is described as using a fully local LLM at its core, with optional connections to external models, and as adding no extra token cost in its default configuration. More important than model placement is the control model: the person retains authority over cost, code, and design. Generated changes remain visible, reversible, and ignorable.

That is a stronger role than being summoned only when an agent encounters trouble. “Human in the loop” can still leave the agent directing the process. “Human in control” makes automation subordinate to explicit decisions about what should change and what should ship. Gordon jokingly names the desired result “winny wig”: what you need is what you get.

14:4615:16
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

14:46 · section reference included

Catch drift before anything merges

ReWeaver organizes its checks into nine top-level dimensions of software quality and production readiness. The talk names three in detail. Design consistency checks whether a codebase and its design system still agree. Accessibility gets its own dimension rather than being folded into generic code quality. AI code governance records and controls generated changes as code moves quickly through the system.

The product’s authority remains deliberately bounded. ReWeaver does not independently decide to rewrite the repository. When a user selects Apply the fix, it writes the proposed change visibly; the user can undo it, ignore it, or leave the finding unresolved. The goal is a closed loop that catches drift before merge without turning detection into unreviewed autonomy.

The public playground accepts AI-generated code and returns scan results. Gordon also describes a challenge based on PDR, or production drift ratio, with beta access offered for code scoring below 0.30. The recording does not explain the formula for PDR, so the score is best treated as a product-specific diagnostic rather than a general code-quality metric.

The durable lesson is not that AI should leave the workflow. Generation stays. What changes is the surrounding discipline: inspect both design and code, preserve provenance, use deterministic checks for properties that can be checked, refuse uncertain automatic repairs, and keep the person who owns the product in control of the final change.

16:2016:50
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

16:20 · section reference included

Resources

From the talk

Read the complete timestamped transcript
  1. 0:01

    [music]

  2. 0:12

    Hello everyone. I'm Jonathan Gordon. I'm

  3. 0:16

    a founder of Reweaver AAI, a new

  4. 0:18

    company, you know, on the scene, let's

  5. 0:20

    say. I want to share one thing with all

  6. 0:21

    of you that was really fascinating. So,

  7. 0:23

    I I plugged in my laptop and I realized

  8. 0:27

    I had to mirror. So, I no longer have my

  9. 0:29

    speaker notes. So, I went into Claude

  10. 0:31

    and I said, "Can you extract my speaker

  11. 0:33

    notes from my slide deck, please?" And I

  12. 0:35

    had my speaker notes now.

  13. 0:38

    I love AI.

  14. 0:41

    The suspense was killing me. I was

  15. 0:43

    talking to Claude

  16. 0:45

    now. Who knows if it got it right. I

  17. 0:46

    don't know. Whatever. Um, so I also

  18. 0:49

    realized that my title slide buried the

  19. 0:50

    lead. I shouldn't have put it up. Um,

  20. 0:53

    but nonetheless, let's play with this.

  21. 0:56

    So, uh, yeah, my name is Jonathan. Um,

  22. 0:59

    I'm here to talk to you about the design

  23. 1:00

    code roundtrip that isn't.

  24. 1:04

    And I guess probably the best thing to

  25. 1:06

    do first is to explain what I think a

  26. 1:09

    design code roundtrip should be. Um the

  27. 1:13

    design code roundtrip is a full loop

  28. 1:17

    between design and engineering in both

  29. 1:21

    directions without any loss of fidelity

  30. 1:26

    and with a persistent provenence. So it

  31. 1:28

    knows exactly where everything came

  32. 1:30

    from. You know that perfect dream world

  33. 1:33

    that we live in where there is no drift

  34. 1:37

    in between the gaps of design and code.

  35. 1:42

    Um, today's tools, design is amazing.

  36. 1:45

    It's incredible. It's magic. It's I ask

  37. 1:47

    for something, I get it. It's clickable.

  38. 1:49

    It's interactive. It's amazing to me.

  39. 1:52

    But nobody really looks at the code

  40. 1:54

    anymore, it seems. And so, I kind of

  41. 1:57

    want to go there. I want to go into that

  42. 1:58

    space.

  43. 2:00

    Whoops. Of course, I have to get my

  44. 2:02

    mouse to the right location. There we

  45. 2:04

    go. Um, a little bit about me.

  46. 2:07

    past 30 plus years um I've been building

  47. 2:10

    and designing coding tools developer

  48. 2:13

    tools idees at these companies um so

  49. 2:18

    I've spent a lot of time with as a

  50. 2:20

    designer I've spent a lot of time with

  51. 2:22

    design and engineering teams trying to

  52. 2:24

    understand

  53. 2:26

    how do we do that handoff well how do we

  54. 2:28

    hand off from design to code how do we

  55. 2:31

    get what we wanted to be delivered to

  56. 2:33

    the customer um it was never a perfect

  57. 2:36

    science We never got it. We never found

  58. 2:39

    that magic sauce that just made

  59. 2:42

    everything come together where intent

  60. 2:45

    matched the outcome.

  61. 2:47

    Um, but I developed techniques. I

  62. 2:50

    negotiated with engineers. I brought

  63. 2:52

    them out for drinks. I made them my

  64. 2:53

    friends. Um, I got things delivered to

  65. 2:57

    customers.

  66. 2:58

    But the the loop was never closed. Um,

  67. 3:01

    and it's because our outcomes diverged.

  68. 3:04

    engineering had one set of requirements,

  69. 3:07

    technical constraints, design had a

  70. 3:09

    vision for the future, a new rebranding,

  71. 3:11

    whatever. So, this has existed, you

  72. 3:14

    know, dare I say, for decades.

  73. 3:16

    Um, then along comes AI

  74. 3:21

    and LLM and prompting ourself into a

  75. 3:24

    fully running application. In a sense,

  76. 3:28

    now we have one intelligence that

  77. 3:30

    understands design intent and the same

  78. 3:33

    intel in intelligence can write code. So

  79. 3:37

    I thought to myself, oh my god, I think

  80. 3:39

    we might be able to close this loop. At

  81. 3:42

    the speed of inference, we could close

  82. 3:43

    this loop. And so I was curious. Um, I'm

  83. 3:48

    curious by nature. So I went all in.

  84. 3:52

    That's my GitHub before vibe coding

  85. 3:55

    happened on the left on on my left on

  86. 3:58

    your whatever. Um then after so I think

  87. 4:03

    everybody probably gets a sense of what

  88. 4:05

    my life was like from April 2025. And if

  89. 4:08

    you want to scroll till today it's it's

  90. 4:11

    even more so. Um, I got this email from

  91. 4:14

    cursor one day that said I was in the

  92. 4:16

    top 0.1%

  93. 4:18

    of usage of cursor

  94. 4:21

    and I thought to myself, I need to spend

  95. 4:23

    more time outside.

  96. 4:28

    Then there was a bill. Um,

  97. 4:31

    but at the time it was the $20 deal and

  98. 4:33

    I kind of, you know, monitored, but

  99. 4:35

    every now and again I'd pay for a little

  100. 4:37

    bit more, get another hit. Um,

  101. 4:41

    and this was my life vibe coding from

  102. 4:44

    that point in April

  103. 4:46

    until today. Um, I'm trying to figure

  104. 4:50

    out can I go from design to code? Can I

  105. 4:52

    go from code to design? Can I build a

  106. 4:54

    tool to go from design to code and code

  107. 4:56

    to design a full round trip without any

  108. 5:00

    loss of fidelity? That pixel perfect

  109. 5:02

    dream that we have. Um, I remember

  110. 5:06

    vividly uh one day I was, you know, just

  111. 5:10

    hammering away at the keyboard, just

  112. 5:12

    vibing my way. I was really feeling the

  113. 5:14

    vibe. And, uh, this wall of text was

  114. 5:18

    coming by and I was completely ignoring

  115. 5:19

    it and code was being written, just

  116. 5:22

    watching that come by. And I remember

  117. 5:25

    seeing a statement that was an inner

  118. 5:27

    HTML statement.

  119. 5:29

    And I remember from way back when that

  120. 5:33

    inter HTML was a security vulnerability

  121. 5:35

    that people can actually inject into in

  122. 5:37

    HTML and I stopped it. I said, "Wait a

  123. 5:40

    minute, wait a minute." to my LM, "Wait

  124. 5:42

    a minute, what did you just do?" And it

  125. 5:45

    explained to me what it did and it was

  126. 5:46

    very proud of itself. And and I said,

  127. 5:49

    "Revert that. Do this instead." Blah

  128. 5:50

    blah. And I got into this mode of like,

  129. 5:53

    "Oh, maybe I need to steer this thing a

  130. 5:55

    little bit better. Maybe I can't just go

  131. 5:56

    blindly in. Maybe I need to look at the

  132. 5:58

    code now.

  133. 6:00

    And I've looked at a lot of code in my

  134. 6:01

    life. So I went ahead and went in and

  135. 6:03

    looked at the code and I Whoops. I'm

  136. 6:07

    sorry. I clicked too ahead and I found I

  137. 6:10

    found issues. And so I went a little bit

  138. 6:12

    deeper

  139. 6:14

    when the industry started to tell me

  140. 6:17

    that they had solved the round trip

  141. 6:20

    that you could go a true roundtrip

  142. 6:23

    workflow. You could roundtrip between

  143. 6:25

    code and canvas. I think folks in the

  144. 6:27

    room might remember back in February,

  145. 6:29

    no slam on anthropic or Figma, there was

  146. 6:33

    this demo that showed going from cloud

  147. 6:36

    code into Figma. And it was magic. It

  148. 6:39

    was incredible. I couldn't believe you

  149. 6:40

    could build a Figma artboard from a

  150. 6:43

    prompt in Cloud Code. And then I had to

  151. 6:46

    go deeper and I had to look deeper in

  152. 6:47

    the same way that I looked at vibe

  153. 6:49

    coding. Like, is this real? Is the hype

  154. 6:50

    real? So I went deeper and then more

  155. 6:53

    announcements were made all the way up

  156. 6:55

    until last week when Figma config

  157. 6:57

    announced that code is now material.

  158. 7:00

    Does that mean there is no even handoff

  159. 7:03

    that exists anymore? Um so I'm

  160. 7:06

    monitoring trying to keep up. Things are

  161. 7:08

    happening at warp speed.

  162. 7:11

    But they said the roundtrip was solved

  163. 7:13

    and I started messing around and

  164. 7:16

    realized it wasn't. And so I want to

  165. 7:18

    share with all of you

  166. 7:21

    a harness that I built. Whoops. Oh, wait

  167. 7:24

    a minute. Local host, where are you?

  168. 7:27

    Local host,

  169. 7:29

    come back to me, local host. Okay.

  170. 7:33

    I don't know what I don't know what just

  171. 7:34

    happened there. And now I'm afraid to

  172. 7:36

    restart this. Um, okay. I think we're I

  173. 7:38

    think we're okay. Um, I created this

  174. 7:40

    harness. And what this harness is is on.

  175. 7:44

    I'm going to say left. I hope everybody

  176. 7:46

    is that your left. It is your left.

  177. 7:48

    Okay, good. [laughter]

  178. 7:50

    On your left is code that was generated

  179. 7:52

    by AI. This is this is all real what

  180. 7:54

    you're seeing here. Generated by AI and

  181. 7:58

    on your right is a design. Be it a

  182. 8:02

    canvas that that I created in Figma, be

  183. 8:04

    it something I created in Sketch. It's

  184. 8:06

    not really relevant what the sources are

  185. 8:09

    here, but the reality is I'm trying to

  186. 8:11

    illustrate a round trip. And so a round

  187. 8:14

    trip you know starts with code or starts

  188. 8:16

    with design and it has a prompt

  189. 8:18

    associated with it. So some some LLM I

  190. 8:22

    call off and I say in this instance I

  191. 8:24

    want to take this form and I want to

  192. 8:26

    build a design system from it. So there

  193. 8:27

    there are tools that do this that can

  194. 8:29

    extract code and build design systems

  195. 8:31

    from graphical canvases. And so I can do

  196. 8:35

    that. And it updated the code and

  197. 8:38

    created some styles. And it also

  198. 8:40

    actually created um a design system that

  199. 8:43

    works in runtime here. So this is like a

  200. 8:45

    a real app that got built that is also

  201. 8:48

    living in Figma. So there's a link up

  202. 8:50

    here. I won't go there, but trust me, so

  203. 8:53

    we can say stable. If I click that link,

  204. 8:55

    it would go to Figma and show me the

  205. 8:56

    full-blown design system that was built.

  206. 8:58

    And a design system for those that don't

  207. 9:00

    know is composed of components and

  208. 9:03

    tokens and variables and styles that all

  209. 9:07

    are used as a basis for building

  210. 9:09

    software from. So code and design

  211. 9:11

    together, you know, really work well

  212. 9:13

    when there's a design system and there's

  213. 9:15

    a code base that understands it. Now

  214. 9:18

    move back and forth. You throw something

  215. 9:20

    over here and you say, "Okay, I want to

  216. 9:21

    build an orange button." And I've added

  217. 9:24

    a company field and an orange button.

  218. 9:26

    The code is updated. The design is

  219. 9:27

    updated. This is awesome. Could I go

  220. 9:30

    back? Maybe. Um, but I have a button up

  221. 9:33

    here called show drift.

  222. 9:35

    So, show drift is rewaver AI working

  223. 9:39

    right now. And this is real rewaver code

  224. 9:42

    for the first time introduced to the

  225. 9:44

    public ever. And if I click show drift,

  226. 9:48

    I'll see a list of issues that got

  227. 9:49

    generated from both the code and the

  228. 9:52

    design at the same time. There are

  229. 9:55

    across several different dimensions that

  230. 9:57

    you can see here. Design quality, code

  231. 9:59

    quality, performance, design tokens,

  232. 10:02

    etc. One of the ones of note that I find

  233. 10:05

    really important from my perspective is

  234. 10:07

    at Microsoft I worked on accessibility

  235. 10:11

    and I learned a lot about what it means

  236. 10:12

    to build an accessible software system.

  237. 10:15

    And I I want to be honest with all of

  238. 10:17

    you. I was very frustrated when I first

  239. 10:18

    saw LMS come out and they generated code

  240. 10:20

    that was inaccessible period out of the

  241. 10:22

    box. I thought what models weren't

  242. 10:25

    trained on accessibility.

  243. 10:27

    Um, and I was reminded 20 years ago when

  244. 10:31

    you know engineers needed to be trained

  245. 10:32

    on accessibility. So here we are again

  246. 10:34

    now training LLMs instead of engineers

  247. 10:37

    on accessibility.

  248. 10:39

    So found issues. Um, here's an issue

  249. 10:42

    where

  250. 10:44

    has no Arya live region. So it won't be

  251. 10:47

    announced by screen reader. A blind user

  252. 10:49

    using this won't get an announcement

  253. 10:50

    about this element. So Rewaver found

  254. 10:53

    that and Rewaver says it can fix it and

  255. 10:57

    Rewaver fixed it. Now the red went away,

  256. 10:58

    but there's also a blue issue here as

  257. 11:00

    well. Um so Rewaver stacks up issues and

  258. 11:04

    you know basically scans scans the code

  259. 11:06

    and scans the design and produces u

  260. 11:10

    guard rails to a sense but also a way to

  261. 11:12

    fix the code and make it better.

  262. 11:16

    So I did that across multiple dimensions

  263. 11:18

    um you know with the intention of seeing

  264. 11:21

    if anybody had solved the drown the the

  265. 11:23

    roundtrip problem

  266. 11:25

    and it didn't go well. Uh I never got

  267. 11:29

    really the full round trip. So I really

  268. 11:31

    tried hopefully this slide tells you I

  269. 11:33

    tried five different tool setups trying

  270. 11:36

    to do code design code roundtrip both

  271. 11:39

    directions birectional

  272. 11:41

    lots of lossy issues uh you know

  273. 11:45

    bindings were lost um design change

  274. 11:48

    survived but code didn't

  275. 11:50

    I'm not going to say we're not going to

  276. 11:52

    get there um but even if we do get there

  277. 11:55

    and we're able to do this I wonder if

  278. 11:58

    we'll get fully there And maybe we need

  279. 12:01

    tools like Reweaver. I shouldn't say

  280. 12:03

    maybe, we do need tools like Reweaver to

  281. 12:06

    help us understand the drift.

  282. 12:10

    So that whole experience for me really

  283. 12:12

    highlighted something from my past. Um I

  284. 12:15

    had I had built a lot of software

  285. 12:16

    development tools, designed and built

  286. 12:18

    software development tools and developer

  287. 12:21

    tools in their nature are deterministic.

  288. 12:24

    You write code, you compile it, you get

  289. 12:26

    an SA a it it'll every time you run that

  290. 12:29

    code, you'll get the same result. When

  291. 12:31

    you put AI in the middle of that or in

  292. 12:33

    the front of that or the end of that,

  293. 12:35

    you're not going to necessarily get the

  294. 12:37

    same outcomes. Now, there are tools that

  295. 12:40

    will help you understand, rewaver being

  296. 12:41

    one of them, that there's a mismatch.

  297. 12:43

    There's drift there and we need to be

  298. 12:46

    aware of drift. Drift lurks in the dark.

  299. 12:50

    You need to look at the code. You need

  300. 12:51

    to find the drift. You need to fix the

  301. 12:52

    drift. And you do that with

  302. 12:54

    deterministic guardrails around the AI.

  303. 12:57

    The AI is still there. So I ran another

  304. 13:00

    experiment, 12 iterations on a codebase

  305. 13:03

    with complex enough UI to it. And I did

  306. 13:06

    one where it was just pure AIE, just LLM

  307. 13:09

    all the way. And it degraded a little.

  308. 13:11

    It degraded a little bit, but it started

  309. 13:14

    at 30% quality, 30% fidelity, 30%, you

  310. 13:18

    know, true pixel perfection.

  311. 13:20

    And then I put it on top of

  312. 13:22

    deterministic guardrails where we found

  313. 13:24

    the issues, we fixed the issues. You

  314. 13:27

    can't get to a hundred because that 10%

  315. 13:30

    is human judgment, human

  316. 13:33

    decision-making. So the human is still

  317. 13:35

    there in this equation.

  318. 13:38

    Um,

  319. 13:40

    so what is it today? Uh, today I I would

  320. 13:44

    call it we're locked into AI. And that's

  321. 13:46

    okay. We'll go there. We'll embrace

  322. 13:47

    that. But we're locked into AI for

  323. 13:50

    design to code. We're locked into AI for

  324. 13:52

    code to design, looping, chat bots, what

  325. 13:55

    we call span the chain workflows where

  326. 13:57

    you jumping across tools. And there's

  327. 13:59

    always token costs to be aware of, of

  328. 14:01

    course. So in this world, the agents are

  329. 14:04

    in control and the humans in the loop.

  330. 14:06

    I'd like to propose something else.

  331. 14:08

    Before I do, there are three blind spots

  332. 14:10

    we need to be aware of. One is the model

  333. 14:12

    itself. It's going to you can ask it

  334. 14:14

    questions. It'll give you answers, but

  335. 14:16

    it's nondeterministic. It's

  336. 14:18

    probabilistic.

  337. 14:19

    There will be drift in the moment when

  338. 14:21

    you're writing code. Drift will surface,

  339. 14:23

    but drift over time is the pain that

  340. 14:26

    you'll be experiencing for the next six

  341. 14:28

    months because drift over time is the

  342. 14:31

    new tech debt and it's going to pile

  343. 14:34

    itself

  344. 14:36

    gloriously over your codebase. Um, we

  345. 14:40

    want to do something about it. So here's

  346. 14:44

    where we think it isn't meaning what it

  347. 14:47

    could be what it should be fully

  348. 14:50

    birectional

  349. 14:51

    edit both ways lossless all surfaces

  350. 14:54

    preserved so if you go from code to

  351. 14:56

    design and design to code nothing's

  352. 14:58

    breaking weirdly for you provenence is

  353. 15:00

    carried where did this start from what

  354. 15:03

    line of code wrote this button

  355. 15:07

    I see this button in Figma I want to

  356. 15:09

    change it I need to change that code or

  357. 15:11

    Somebody needs to change that code. We

  358. 15:14

    have to control the drift. It's

  359. 15:16

    deterministic reconciliation at its

  360. 15:18

    core. So with deterministic guardrails,

  361. 15:21

    and I'm happy to talk after if folks are

  362. 15:24

    interested in what I mean by that,

  363. 15:26

    accept or refuse. So if they know

  364. 15:30

    there's a fix, they will fix it. If they

  365. 15:32

    don't know there's a fix, they will tell

  366. 15:34

    you there's an issue, but you need to

  367. 15:36

    fix it.

  368. 15:38

    And with Ruby Weaver, there's zero extra

  369. 15:40

    token costs. So, we're fully local LLM,

  370. 15:44

    but if you want to open up Claude or

  371. 15:46

    whatever and connect to us, you can. But

  372. 15:48

    at its core, and our core principle is

  373. 15:50

    the human is in control always. In

  374. 15:54

    control of cost, in control of code, in

  375. 15:56

    control of design, because that's what

  376. 15:58

    we've been doing for decades.

  377. 16:01

    We've been in control. We don't need to

  378. 16:03

    lose control. And I'm not saying loop

  379. 16:05

    isn't good, but human in control is I

  380. 16:07

    think a little more aspirational

  381. 16:10

    because at the end of the day, what you

  382. 16:12

    need is actually what you get. I call it

  383. 16:16

    winnywig. Can I use that winny wig?

  384. 16:20

    So what are we building at its core?

  385. 16:22

    What we're building are nine dimensions

  386. 16:25

    of deterministic guardrails.

  387. 16:28

    Inside of this is a lot of stuff, but

  388. 16:30

    these are our top level um software

  389. 16:33

    quality, software production readiness

  390. 16:35

    dimensions. Design consistency being

  391. 16:38

    core. Of course, when you have a design

  392. 16:40

    system and the code isn't consistent

  393. 16:41

    with it and vice versa, we need to fix

  394. 16:44

    that. So, there's a lot of design

  395. 16:45

    consistency

  396. 16:47

    um work that's going into the the

  397. 16:49

    foundation. Accessibility is its own

  398. 16:52

    dimension. um maybe selfish of me but I

  399. 16:55

    think it's core

  400. 16:57

    uh AI code generation too or AI code

  401. 17:00

    sorry governance AI code generation

  402. 17:02

    governance is another really critical

  403. 17:04

    piece because the code is just flying

  404. 17:06

    through the system and we need to govern

  405. 17:08

    that code now we're not going to change

  406. 17:10

    the code rewaver actually doesn't write

  407. 17:12

    code you write code reweaver will do

  408. 17:16

    what you want it to do so if you say

  409. 17:18

    apply the fix it'll write the code for

  410. 17:20

    you can see the code being written You

  411. 17:22

    can say never mind undo. You can ignore

  412. 17:25

    it. So at the end of the day, catch what

  413. 17:27

    drifts in a closed loop before anything

  414. 17:30

    merges. That's the goal.

  415. 17:33

    You can try it out with your own code

  416. 17:34

    today. Right now, you can go to reweaver

  417. 17:37

    AIPplayground

  418. 17:38

    and we built kind of a similar harness

  419. 17:40

    to what I built there where you can put

  420. 17:42

    your AI generated code on the left on

  421. 17:45

    the left. You can scan it and get your

  422. 17:48

    results for that code. There's also a

  423. 17:51

    fun little challenge on that page. If

  424. 17:53

    you can get AI to generate code that

  425. 17:56

    gives you a score lower than30

  426. 17:59

    PDR,

  427. 18:01

    which is production drift ratio, will

  428. 18:03

    get you a frontline seat on the beta,

  429. 18:06

    but you'll also get yourself showcased

  430. 18:08

    at the bottom on the crawl. So, give it

  431. 18:10

    a shot. Take a look. Um, meanwhile, I'm

  432. 18:14

    looking for people to join our beta.

  433. 18:15

    We're going to basically blast out mid

  434. 18:18

    July hopefully.

  435. 18:20

    Um so would love for you to join if

  436. 18:22

    you're interested um to make the product

  437. 18:24

    better to sanity check us. Um basically

  438. 18:28

    that's it and you can also reach me

  439. 18:31

    online or outside happy to talk more.

  440. 18:34

    Thank you.