# How we built a custom permissions DSL at Figma

DevFeed: [How we built a custom permissions DSL at Figma](<https://devfeed.tech/articles/how-we-built-a-custom-permissions-dsl-at-figma-9813.md>)

Original publisher: [Read original article](<https://www.figma.com/blog/how-we-rolled-out-our-own-permissions-dsl-at-figma/>)

Author: Jorge Silva

Published: 2024-03-13T00:00:00Z

Content type: article

Language: en

Sources: [Figma Blog](<https://devfeed.tech/sources/figma-blog.md>)

Topics: [Authorization](<https://devfeed.tech/topics/authorization.md>), [Figma](<https://devfeed.tech/topics/figma.md>), [Back end](<https://devfeed.tech/topics/backend.md>), [Ruby](<https://devfeed.tech/topics/ruby.md>), [Object-relational mapping](<https://devfeed.tech/topics/orm.md>), [cross-platform](<https://devfeed.tech/topics/cross-platform.md>)

Tags: [backend](<https://devfeed.tech/tags/backend.md>), [bugs](<https://devfeed.tech/tags/bugs.md>), [collaboration](<https://devfeed.tech/tags/collaboration.md>), [complexity](<https://devfeed.tech/tags/complexity.md>), [developer](<https://devfeed.tech/tags/developer.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [orm](<https://devfeed.tech/tags/orm.md>), [performance](<https://devfeed.tech/tags/performance.md>), [ruby](<https://devfeed.tech/tags/ruby.md>), [user-experience](<https://devfeed.tech/tags/user-experience.md>), [web](<https://devfeed.tech/tags/web.md>)

## AI overview

Figma describes how it replaced a complex permissions system with a custom permissions domain-specific language, a cross-platform logic engine, and migrated rules. The redesign addressed bugs and project delays while improving performance, accuracy, and developer ergonomics. The article also explains how permissions govern file sharing, roles, links, access levels, passwords, and organizational constraints within Figma's Ruby backend.

## Source excerpt

When our permissions system came apart at the seams, everything came to a halt. This is the story of how we fixed it while improving performance, accuracy, and developer ergonomics.