This week I got a chance to try out Subframe. It’s a new design tool that is slightly hard to position within the category of design tools.
Subframe follows the logic of Subform (RIP) where you are not working on a free canvas, but all your designs are “auto layout” by default.
A tool like Framer — that leans towards auto layout all the things — still allows you to draw something freely and then put it in a stack when you like; allowing for sort of a Figma-like freedom when exploring ideas (minus the proper vector tools).
In Subframe you don’t have that “creative freedom”, rather you are constrained to changing layouts by either editing them in a sort of “insert component in an already existing stack”-kind of way or by prompting them with AI.
The benefit of this style of working is that designs are essentially constrained to the “system”, which then allows for an immediate code export. In the spectrum of creativity vs system design, Subframe sits squarely in the system design logic.
In the current version, the base system itself does not seem that manipulatable (relying on a bunch of base ShadCN/Tailwind like components like many AI code generators).
What I would find interesting towards the future is to be able to manipulate the base system in a manner that’s more flexible. In my projects I have a lot of custom needs.
Another thought I have is that if code conversion is immediate, but you then change something in the code, like adding a new component, how do you ever backport it back to the design app?
Within design systems, for years, we’ve been looking for sources of truth.
There is the design tokens logic (often overcomplexified by consultants); there is the problem of syncing design to code; and there is the problem of working at scale. On the corporate level you usually end up with a tome of guidelines (think Shopify, IBM…) that is sometimes helpful and sometimes wildly inflexible.
Would Subframe help solve this problem by having an immediate bridge between design and coding work? The paradigms the founder are working on are at the verg least extremely interesting explorations into this problem statement, and I am looking forward to follow its further development.