Open-source project
storytold/figcraft avatar
storytold/figcraft

FigCraft: a Rust-native interface design and prototyping tool

FigCraft: interface design and prototyping; an open-source, clean-room reimplementation of collaborative design workflows in pure Rust

3,212 stars1,281 forksRustApache-2.0

At a glance

What is it?
FigCraft is an early-alpha, open-source interface design application built as a clean-room reimplementation of collaborative design workflows in Rust. It targets designers and developers who want offline files, components, variables, prototypes and agent access without a web view.
Who is it for?
FigCraft suits designers and developers who need an offline-first Rust application and are willing to work with an early-alpha tool. It is less suitable for teams that require confirmed production compatibility with every Figma workflow.
Can I use it commercially?
Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository received new commits within the last day.
What is it written in?
Mainly Rust, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.

Editorial analysis

FigCraft targets local interface design workflows

FigCraft addresses interface design for people who want to create screens, reusable components and interactive flows without depending on a hosted editor or Electron application. The README describes it as an open-source, clean-room reimplementation of Figma, rebuilt in pure Rust. That description places it in the same product category as collaborative design tools, but the implementation approach is different: the repository is organized around Rust crates for geometry, color, documents, layout, text, path operations, rendering, SVG, PDF, formatting, collaboration, UI and MCP.

The intended users are designers, illustrators, developers, musicians and game makers who need a visual workspace for interface work. The project does not present itself as a general-purpose programming IDE or as a replacement for implementation frameworks. Its documented capabilities include frames, auto layout, components and variants, vector networks, styles, variables and prototypes. It also supports Dev Mode features such as annotations and generated React code.

The central product choice is local ownership of files. According to the README, documents are plain `.figcraft` archives stored on the user's disk. FigCraft states that it needs no account and sends nothing away unless the user shares a file. That is a meaningful distinction for design assets that contain unreleased interface work, although the README does not describe an online collaboration service or a hosted sync workflow.

A persistent Rust document engine backs the interface

FigCraft uses a native Rust engine and a persistent document model. The README says that edits touch only what changed, and it gives creating a node in a 20,000-node file as an example. It also states that the application has no Electron layer and no web view. The repository layout supports that description: separate workspace crates cover document state, geometry, color, layout, text, rendering and file formats, while `apps/` contains the application targets and `crates/figcraft-mcp` exists as an internal dependency.

The architecture is command-centered. Every menu item, tool and drag is described as a command, allowing the same engine to be used through the interface, a CLI, a JSON control channel or an MCP server. This is more useful than treating the graphical interface as the only product boundary. A developer could automate design operations through one of these interfaces, although the visible README excerpt does not document a complete API schema, authentication model or deployment guide for the MCP server.

The rendering and format layers also explain why the project is broader than a visual mockup editor. The workspace includes `figcraft-render`, `figcraft-svg`, `figcraft-pdf`, `figcraft-format`, `figcraft-pathops` and `figcraft-text`. The README documents import and export for SVG, PNG, JPG, WebP and PDF, plus best-effort opening of `.fig` files and designs exported as public REST API file JSON. These names show the intended processing pipeline, but they do not prove that every export preserves every Figma feature.

Components, variables and prototypes map to editor surfaces

FigCraft's documented feature set follows the structure of a modern interface design workflow. The Ridgeline example shows component sets, variant properties and an Assets panel with live thumbnails for items such as Button, Difficulty, Search field, Toggle and icon components. A selected Button component set is described as a three-by-three grid containing Style and State variant properties. This indicates that components are treated as reusable assets with organized variant dimensions rather than merely copied groups of layers.

Variables are presented as a design-system mechanism. The Ridgeline app example uses Light and Dark modes from one set of colour variables, and the Design panel binds a fill to a surface colour variable. The repository includes separate example files for the app, design system, onboarding flow and studio dashboard. These files give engineers a way to inspect representative documents, but the README excerpt does not explain whether they can be edited safely as templates or how to create a new document from them.

Prototyping is represented through connections, transitions, back actions and a flow. The onboarding example links buttons such as Get started, Continue, Allow location and Not now to later screens, with the Prototype panel describing an On click, Navigate to interaction. Dev Mode adds development annotations, ready-for-dev status and generated React code where component properties become props. The existence of these surfaces is clear from the examples, but the README does not document browser preview behavior, multiplayer presence, version history or conflict handling.

Getting started requires the project distribution

The README directs readers to the FigCraft page at `https://getartcraft.com/apps/figcraft` for project information and links to the ArtCraft site. The visible excerpt does not provide installation commands, a package manager name, a download package, a system prerequisite list or a step-by-step first-run procedure. The repository includes `.cargo/`, `packaging/`, `.github/` and workspace configuration, but those entries are not installation instructions that can safely be turned into commands.

For a first real use, the documented starting point is therefore the project page, followed by obtaining FigCraft through the distribution described there. Once the application is available, the repository's example directory provides several documents to inspect: `examples/ridgeline-app.figcraft`, `examples/ridgeline-design-system.figcraft`, `examples/ridgeline-onboarding.figcraft`, `examples/glass-and-vectors.figcraft` and `examples/ridgeline-studio-dashboard.figcraft`. The README excerpt does not say how to open them from a command line or whether they are bundled with every release, so no installation or invocation command can be confirmed from the repository.

The workspace file identifies Rust 1.95 as `rust-version`, uses edition 2024 and declares workspace version `0.6.0`. It includes `apps/`, `crates/` and `xtask` as members, but it does not state that building from source is the supported user installation path. The absence of a documented build command is a limitation for this review, not evidence that the project cannot be built.

Offline files and alpha status define the trade-offs

FigCraft's offline-first model is its clearest differentiator from a browser-based design editor. Files remain local as `.figcraft` archives, and the README says that SVG, PNG, JPG, WebP and PDF can be imported or exported. Best-effort `.fig` support can help with existing assets, but best effort should be read literally. The documentation does not claim lossless migration, and it does not enumerate which Figma properties, effects, fonts, constraints or plugin behaviors may be lost.

A related tradeoff is feature maturity. The README badge labels FigCraft as early alpha. The recent release list shows v0.6.0, v0.5.1 and v0.5.0 in October 2026, which indicates recent release activity, but release frequency is not a claim that every feature is production-ready. The visible README does not document a migration guide, compatibility matrix, rollback procedure or release notes for upgrading between these versions.

The license is `MIT OR Apache-2.0`, matching the license identifiers in the workspace metadata. That gives users a choice between the two stated license terms, subject to their obligations. It does not settle compatibility with proprietary Figma files or third-party design assets. Teams should check the actual `LICENSE-MIT`, `LICENSE-APACHE`, `NOTICE` and `ATTRIBUTION.md` files for the terms that apply to their distribution and bundled resources.

FigCraft differs from a hosted Figma workflow

The closest alternative described by the project is Figma itself, because FigCraft is explicitly framed as a clean-room reimplementation of collaborative design workflows. The difference in approach is architectural and operational. The README does not detail Figma's workflow, but it contrasts FigCraft's local, native architecture with a clean-room reimplementation by documenting local `.figcraft` files, an offline-first command engine and no web view. This does not mean that the two products provide identical behavior. The README specifically qualifies `.fig` opening as best effort and does not document account-based collaboration in FigCraft.

The choice therefore depends on workflow priorities. A team that depends on existing Figma libraries, complex plugin integrations, organization administration or a mature shared editing model may prefer the hosted alternative. A designer or developer who values local files, Rust internals and automation through a CLI, JSON control channel or MCP server may find FigCraft more aligned with that setup. The repository exposes `figcraft-collab` and `figcraft-collab-net` as crates, but the visible README does not explain whether they constitute a production-ready collaborative service.

Maintenance is recent, while upgrade details remain undocumented

The repository is not archived, and the last push was on 2026-10-15. Recent releases include FigCraft v0.6.0 on 2026-10-14, v0.5.1 on 2026-10-12 and v0.5.0 on 2026-10-12. Those dates show recent project activity. They do not establish the stability of each feature or guarantee compatibility between releases.

Upgrade cost is a concern for anyone using `.figcraft` files, Rust workspace code or automation built around the command interfaces. The visible README does not document file format migration guarantees, a supported upgrade path, rollback steps or a compatibility matrix for older documents. The workspace version is `0.6.0`, while the early-alpha label remains in the README. Projects that depend on exact export behavior or external integrations should inspect each release's own notes before changing versions.

Editorial conclusion

FigCraft suits designers and developers who need an offline-first Rust application and are willing to work with an early-alpha tool. It is less suitable for teams that require confirmed production compatibility with every Figma workflow. Verify first whether your existing .fig files, design system structures, prototype links and export needs are supported by the current v0.6.0 release and the documentation for the specific feature.

Frequently asked questions

What is FigCraft used for?

FigCraft is used for interface design and prototyping, including frames, auto layout, components and variants, vector networks, styles, variables and prototype connections. The README presents it as a native, offline Rust application.

Can FigCraft open Figma .fig files?

The README says that `.fig` files open on a best-effort basis. It also says that designs exported as public REST API file JSON can be opened, but the excerpt does not document which features are preserved during either import path.

Does FigCraft work offline and without an account?

According to the README, files are local `.figcraft` archives, no account is required and nothing leaves the computer unless the user shares a file. The repository also contains collaboration crates, but the visible excerpt does not describe a hosted account workflow.

How does FigCraft support developers and agents?

The README says that menu items, tools and drags are commands, allowing the engine to run through the UI, CLI, JSON control channel or MCP server. Dev Mode also provides annotations and generated React code where component properties become props.

Is FigCraft an early-alpha release?

Yes. The README labels the project early alpha. The repository workspace metadata identifies version `0.6.0`, while the release list includes v0.6.0, v0.5.1 and v0.5.0.

Official sources

  1. License: Apache-2.0
  2. Project website
  3. README
  4. Releases
  5. storytold/figcraft on GitHub
Community

Where developers are discussing it

Posts on Hacker News, dev.to and Lobsters that link to this repository, found by our scan of those communities. 1 in the last 30 days; newest first.

Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/storytold-figcraft.svg)](https://hysenlabs.com/projects/storytold-figcraft)

Was this useful?