Making Figma speak code's language with Olives

Making Figma speak code's language with Olives

I could’ve built a new design tool.
Instead, I’m forcing Figma to speak code’s language - deterministically, through my tool Olives.

Here’s why that’s harder, and why it matters more.

I could have taken the easy path: build a new HTML/CSS design tool. Full control. No constraints.

Why I didn’t: I didn’t want a product, and new tools don’t break ecosystem lock-in - they just create a new walled garden.

The problem isn’t “Figma is bad” (it is,) but rather it’s “design tools own your design system.”

So I had to go the hard path - I needed to make code the canonical source, and allow it to sync to any tool that has an API - including Figma.

This means translating CSS to Figma’s constraints without inference:

  • flex/justify-*/items-* → auto-layout semantics
  • w-*/h-* → fill/hug/fixed with provenance
  • Tailwind tokens → Figma variables with ownership
  • Unsupported classes → preserved with explicit reasons

Now, I could have used AI to infer the structure and generate a good enough approximation, but this was an infrastructure problem.

Infrastructure can’t “sometimes work.” Teams won’t trust it. If the code changes structurally, even if it looks the same, you can’t automate or ship it.

The problem with AI everywhere: people throw it at problems that need determinism.

A design system is infrastructure. Infrastructure must be deterministic.

Why this breaks lock-in

If Olives only worked with “a better tool,” it would just create new lock-in.

By working with Figma (and Penpot, Sketch, anything with an API): Design tools don’t own your system. Code does. Tools become just that - tools, visual renderers.

When switching costs drop to zero, the market has to compete on UX, not lock-in.

Current status

  • Sprint 15: complete (11 shadcn components, deterministic, validated)
  • Sprint 16: full shadcn checkpoint (50+ components, must-pass)

I’m not planning to build a better Figma - there’s other, more passionate individuals working on that.

What I’m aiming to do, and I admit it’s ambitious: I want to make design tools irrelevant to design system ownership.

How many of you felt the pain of being locked in to one design software, unable to move to another because the move was simply too costly?

I want to eliminate that pain.