Fanta docs

How Fanta works and what it can do

A source-grounded map of Fanta's editor, design system, source files, agents, media, motion, handoff, and current limits.

Public Alpha workflow

Fanta 1.0.0 Public Alpha is available for Apple Silicon Macs through the official download page. The signed Build45 package passed Apple notarization, stapling, Gatekeeper, tested installation, save/reopen, and same-build replacement checks. An anonymous public download matched the accepted installer checksum. The launch overview and three captioned public workflows were reviewed on that signed app. The installation guide records the exact package and acceptance scope. Use the demos and ten-minute exercise and agent quickstart.

The inventory below follows current main; the accepted signed Build45 app is bound to earlier source 57d86330. Later changes to MCP inspection, rendering, and large-project handling are documented from source and are not part of that accepted installer. The release recordings validate bounded workflows rather than every source-listed capability. Automatic updates remain disabled.

Fanta is a design editor whose working document is a project folder. You can create a design on the canvas, inspect and edit its .fnx and managed JSON source, ask an agent to work on the open design, and review the saved files in Git. This map follows fanta-edit main at e143440a as of October 19, 2026. It describes implemented source paths and states native acceptance separately.

The core loop

StepWhat happensGo deeper
Create or importNew Design scaffolds a project. Opening a .fig attempts to create an editable native project beside the import; the original .fig is not the working copy. The importer warns about known flattened or omitted structures; supported Boolean operations keep editable operands.First project, Figma import
DesignCanvas tools, the inspector, Variables, and Motion mode change the live document. Pages and layers organize it.Editor, Inspector
Save as sourceAutosave writes page and component .fnx, document metadata, variables, motion, and assets to the project folder. Save As can create another native project copy.Project layout, .fnx
Edit sourceCode lets you edit the active page or component .fnx and paired JSON, validating before it saves and reloads the canvas. External editors can change other supported project files; Fanta validates those on reload. Embedded Find searches the active FNX or JSON buffer; Discard draft affects the selected buffer. Source Save and a canvas-driven source refresh preserve text Undo. A dirty Code buffer temporarily locks canvas edits while accepted properties of one selected layer remain readable.Design as source
ReviewIn non-Store builds, Fanta initializes Git for a new project when available and when it is not already inside a repository. Review Changes and Commit… expose file changes when a repository is present. Store feature builds skip automatic Git setup.Version control
Share outputExport the active page or selected layers from the inspector as PNG, JPEG, SVG, or PDF. Dev mode supports inspection and page-bound handoff marks.Export, Dev mode

What is in a project?

A native project has a fanta.json manifest, pages/<slug>/page.fnx, reusable component source in components/<slug>/master.fnx (or components/<set>/<variant>/master.fnx for a variant set in layout v5), document state under doc/, and an assets/ tree. doc/asset_library.json records named media even before placement; doc/motion.json holds authored motion data. New projects seed AGENTS.md, a project-local fanta.md design specification, and FNX helper files without replacing a customized specification. exports/ and previews are output paths, not the source of truth. Project structure and source rules →

Structural canvas saves retain authored FNX attributes on surviving nodes and source comments when supported. A deletion or type change that would silently lose source-only data can make Save refuse the change with a preservation error. Saved files remain intact, but the live canvas edit may remain until Undo; edit FNX directly to remove that data intentionally. Source preservation →

On direct-download macOS, a fresh .fig import stages a complete sibling project before publishing it; if that first publication fails, the parsed design stays open for a save retry. Existing project saves use the transaction journal, and unchanged generated design files are not rewritten. A received project with project-local settings or executable Git configuration can open in Restricted Mode until you review and trust it. The signed Build45 app checks .zed settings; current source checks .fanta. Import → · Project format →

Edit by hand

Canvas and organization

  • Select, marquee, pan, zoom, resize, rotate, nudge, duplicate, group, frame, and ungroup layers. Snapping uses the grid and edges or centers in the active page or opened component subtree; a different page does not attract the drag. A Select gesture cancels its pending move if its mouse press is lost. Scale selected content proportionally; the inspector also exposes rotate, flip, align, distribute, and Tidy up for eligible selections. Duplicating a component or complete variant set carries its definitions and internal links. Same-document Paste reuses live definitions, or restores captured definitions with new IDs if the originals were removed. Cut, Delete, and Duplicate respect layer locks; Paste validates component dependencies before applying a change. Canvas tools →
  • Create and manage pages. The layers panel supports selection, renaming, nesting, order changes, visibility, and locking. Pages and layers →
  • Draw frames and sections, shapes, arrows, text, vector paths, and freehand marks. Edit path geometry, and convert a suitable single vector path into Text on Path. Double-click can edit selected text or vectors, crop an image, drill into a container, or reveal properties, depending on the node. Rounded ancestor clips exclude invisible child artwork from authoring hits. Editable Design Crop shows Ratio, Cancel, and Apply controls; Apply commits a pending crop as one undoable change. Its controls have narrow-canvas insets in Build45 source, though this exact layout lacks a separate installed-app check. Right-click exposes applicable edit, structure, and component actions. Canvas tools →, Vectors and text paths →
  • Paste bitmap images, or use the local picker to place supported raster images and MP4 video. Editable SVG can come from Project Assets or a supported generation result; audio is placed from Project Assets. Canvas copy and paste of design layers can cross pages within one document; a cross-document canvas paste is explicitly rejected. Media and import →
  • Open Assets in the file inspector to reuse stored images, SVG, MP4, or audio across pages. Generated results can be added to the project before placement. Project Assets →

Inspect and style

The inspector includes position, size, rotation, corner properties, opacity, blend, fills, strokes, typography, effects, layout, component controls, interactions, and export settings. The exact controls depend on what is selected. The image and video paint source chooser lists compatible project media and refreshes after asset, layer, Undo/Redo, or project reload changes. Select matching layers finds same-kind descendants on the active page; Sections match Sections rather than ordinary Frames or Groups. An editable TextPath layer offers Edit object for inline text editing. Bound paints and supported node properties display values resolved through the active variable mode. Detach bakes a bound fill’s current color for direct editing. Independent corner values remain separate, and mixed selections show mixed values; some mixed-value edits commit when the gesture ends rather than previewing live. During a dirty source draft, one selected layer’s accepted properties remain readable while writes stay locked. Constraint data persists, but constraint controls are disabled in the default Design inspector. Inspector →

Current source commits a valid focused numeric property draft before Save, Save All, or closing with Save, and rejects an invalid draft without discarding it. Merely focusing a rounded X/Y display preserves its underlying fractional value; typed fractional TextPath X/Y edits follow painted bounds under transformed parents. These paths have bounded tests; the signed Build45 recording is not a general acceptance test for them.

Frames support horizontal, vertical, and grid auto-layout, child sizing, alignment, wrapping, and size constraints. Grid tracks can use fixed, fractional, or content-sized values, and children can be pinned to cells; Figma grid behavior still has gaps, including auto rows and spanning-child sizing. Components and instances support reusable masters, variant sets, properties, and instance values. A project variant set can appear as one frame on the first visible page and has one source folder containing its variants. Instance actions resolve the visible member from the set default, overrides, and active variable modes. Detach preserves supported appearance and refuses combinations it cannot preserve. Variable collections support modes, aliases, typed values, and property bindings. Agents can edit these structures through the live operation surface, including fill and effect stacks, per-side and dashed strokes, constraints, and shapes. Effects beyond drop/inner shadows and layer/background blur remain unsupported. Auto-layout → · Components → · Variables →

Instance text exposed through a component property can use the placed instance’s active variable mode. A direct text-content variable binding stays authoritative and is read-only in instance text editing; change the variable or binding instead. Go to main component uses the currently resolved variant member and pauses scope navigation while source edits are pending. Components and instances →

Prototype, animate, and discuss

Fanta has prototype interactions and preview surfaces. Closing an interaction detail keeps its interaction; Remove deletes it. Motion mode supports clips, tracks, keyframes, playback, typed Current time seeking, and guarded auto-keyframe editing; time comments can anchor feedback to a point in an animation. Prototyping → · Motion →

Canvas comments support pins, replies, mentions, attachments, and resolution. Comments and page-bound measurements or developer annotations are saved with project metadata. They are project-local, not live multiplayer comments. Comments and surfaces → · Dev mode →

Dev inspection

Dev mode switches to a read-only inspection session for art and Code source. It offers layer inspection, measurements, annotations, and Saved Code for handoff. Measurements and annotations remain editable page marks. The Readiness control is currently unavailable. Dev mode →

Work with agents

External agents. Fanta's local MCP server is enabled by default and can be turned off in Settings. With a design open and the server running, the fanta --mcp-stdio bridge connects clients such as Claude Code and Codex to the focused design. The committed server registers 13 tools:

ToolPurpose
get_editor_stateFocused page or component, selection, bounds, and placement hints. Its component preview is capped at 100; component_count and more_components signal when to page the design system.
get_guidelinesDesign guidance and the project's fanta.md context.
get_design_systemComponent properties, variants, variable collections, modes, values, and bindings. One offset/limit independently pages components, sets, and variables (default 100, maximum 200); follow each more_* flag.
prepare_design_assetOpen an image or SVG generation draft for user review; it does not submit generation.
batch_getRead nodes and geometry; page large results with offset and limit. A page listing may traverse at most 1,000 nodes and each response is capped at 256 KiB. Choose summary, projected style, or raw detail (raw requires exact IDs).
batch_designStream 43 typed creation, layout, styling, variable, and component operations. Content edits form one undoable batch; selection- or viewport-only batches create no content undo step. Optional activity identifies the editing agent.
get_screenshotInspect a rendered page or node, optionally at a Motion clip playhead.
read_fnx_sourceRead a bounded slice of a project's source.
validate_fnx_sourceValidate a complete FNX or supported project JSON candidate without writing it.
import_imageStore an image from a path, HTTP(S) URL, or encoded source in Project Assets.
list_commentsRead comment threads on a page.
reply_commentReply to a thread and optionally resolve it.
report_agent_activityShow a named agent's current page, node, source file, or workspace focus in the local app.

The connection command copied by the running app includes its executable and instance data directory. Activity reports can follow an agent across the Canvas, Variables, and Code workspaces; idle reports expire. They are not cross-agent locks or networked collaboration. Connection guide → · Tool reference →

In-app agent. The docked Agent Panel can inspect and edit the canvas through native design tools. It has review and planning modes, design comments, project image import, and activity reporting paths. A completed Plan can offer Apply plan, which switches to Write and sends the plan for implementation. In current source, a native Agent turn stops after 64 model requests, including continuations and agent-managed retries, while completed work remains; this is not a credit limit and is not claimed as an installed Build45 check. The separate Build editor mode uses a signed-in v2 agent to turn a brief into tasks, preview each canvas result, and let you Accept, Retry, Skip, or Stop; optional automatic acceptance is available. Native specialist agents can share the lead chat's reference images with supported models. The managed provider reads chat models and credit estimates from a signed-in catalog; other providers can be configured. Its evaluate_with_jev tool requests typed decisions from the hosted service when signed in. The generation workspace can hand a draft design request to the panel for review before sending. Agents and AI →

Generation workspace. Signed-in users can search the live catalog for image, video, audio, and vector workflows. Recipes and controls depend on the selected model, including video frames, duration, resolution, and audio options where supported. Results can be previewed, saved, reused as source, or added to Project Assets. Saved uncertain submissions can be retried or recovered before starting another job. Placed images become bitmap layers; supported SVG becomes editable vectors; MP4 becomes video; WAV, MP3, and FLAC become audio layers. Public accounts need sign-in and purchased credits for managed generation. Media generation →

Settings and account. Settings manages appearance, canvas panels, source editing, model providers, hosted tools, MCP connections, account, billing, and privacy controls. Billing usage charts use rolling 7, 30, or 90-day UTC windows when the service provides data; boundary calendar days can be partial. New purchases use web Billing. Public accounts have no free AI trial or signup credits; hosted AI requires purchased credits. Existing founder exceptions are restricted on the backend. The hosted MCP connections used by Fanta's in-app agent are separate from the 13-tool local canvas server above. A Mac App Store feature build blocks Fanta from launching local agent, MCP, and terminal processes; remote HTTP MCP connections remain available. Settings and build differences →

Formats and output

Format or outputCurrent behavior
Native project folderEditable, source-backed, and suitable for Git; Save As creates another copy. Layout v5 groups a variant set and its members under one component folder; older v4 projects upgrade on save. Details →
.fnxJSX-like page/component source. Its printer retains finite numeric values, including very small ones, instead of rounding them to zero. Complete candidates can be validated before writing. Syntax and limits →
.figOpens through an importer and attempts a native sibling project. Supported Boolean operands remain editable; known structure losses receive warnings. Import fidelity and write access vary. Details →
Images and local MP4Supported raster images can be pasted or placed through the local picker; it also places MP4 video, which can be trimmed without changing the source file. Details →
.fantA snapshot/container format supported by the format layer; the live editable project is the folder. Details →
PNG, JPEG, SVG, PDFInspector export for a selection or page, with scale, dimensions, and presets where supported. JPEG uses fixed quality 95 and loses transparency; choose PNG when exact pixels or alpha matter. Details →

Current limits

  • The documented alpha target is Apple Silicon macOS. Other platforms have build scaffolding, but are not supported releases. Install notes →
  • Some visible tools and inspector actions remain incomplete. Fanta reports unavailable actions where possible. Grid auto-layout is implemented with the Figma behavior gaps above; effects are limited to drop/inner shadows and layer/background blur, Pass Through has no engine equivalent, and Dev Readiness is unavailable. Editor status →
  • Large .fig imports can be slow and memory intensive. Source reads and node reads have response limits, including a 1,000-node page-listing traversal budget, so agents should page through large documents. Troubleshooting →
  • In non-Store builds, Fanta prefers its bundled Git and falls back to a system git for automatic initialization outside existing repositories. A design still saves if git init fails. Automatic initialization is disabled in the Mac App Store feature build. Version control →
  • A generated result over 128 MiB cannot be added to Project Assets. Placing a bitmap is also limited to 32 MiB, 32 megapixels, and 16,384 px per side; the local MP4 picker has a 100 MiB cap. Audio needs a decodable duration and is placed through Add to project → Assets → Place, not the direct Add to design action. Project Assets →
  • Bounded MP3 placement, Save, Undo/Redo, and cold storage checks pass, but cold Audio preview was absent in the checked project. WAV preview and broader audio recovery remain unverified. Media generation →
  • Source synchronization has conflict handling and save recovery, but an external write to the same path can still race Fanta's check and rename. Fanta keeps the last valid canvas when an external source reload fails and reports the error for repair. Recent changes reduce redundant reloads and preserve unaffected layout geometry, yet large-project Save and some draft-recovery journeys remain under release validation. Keep Git history for important projects. Source editing →
  • Large-page rendering and native responsiveness remain under validation. Current macOS source normally uses Skia Graphite on Metal and falls back to Ganesh if Graphite cannot start. Retained translation is enabled by default; FANTA_RETAINED_TRANSLATION=0 disables it. These renderer changes postdate the signed Build45 installer, and bounded checks do not establish a general native drag latency target.
  • The Public Alpha release is a direct-download Apple Silicon Mac app. Signed Build45 passed notarization, stapling, bounded installation checks, and an anonymous public download checksum check. The reviewed public workflows use that signed app. Clean-account installation and migration from an older version remain unverified; other Mac architectures are outside this release. Automatic updates are disabled. Install notes →
  • Node graph, generic AI artifact, and embed node types render as placeholders. Existing 3D content can survive unrelated edits and saves, but that does not establish a complete 3D editor.
  • Canvas comments and agent cursor presence are local to the open app and project. Real-time multi-user editing and cross-agent locks are not part of the current implementation.
  • The current external MCP surface is the 13 registered tools above. Older references to a :3846 HTTP server, 127 design tools, cargo run -p fanta-app, or save_document describe a different implementation.
  • In current source, app keymap actions use fanta:: and app links use fanta://; the signed Build45 package uses zed:: and zed://. Review custom keymaps and links when a newer installer is available. Shortcuts →

The alpha issue log in fanta-edit records earlier implementation and release observations. Several entries predate the committed features described here. The release capability coverage report records bounded checks and remaining native limits; this map describes implemented source paths. Installation records the released package separately.

On this page