Figma Poster Builder is a Figma desktop plugin for turning structured JSON into native, editable Figma marketing layouts.
Instead of generating HTML and trying to force it into Figma, you ask an LLM for JSON, paste that JSON into the plugin, and the plugin renders real Figma text, shapes, and screenshot-based compositions.
HTML-to-Figma workflows are usually a bad editing experience. Layers become awkward, text is hard to work with, and the output is not well suited for fast marketing iteration.
This plugin takes a different approach:
- ask an LLM for constrained poster JSON
- paste the JSON into the plugin
- render editable Figma layers directly
That means:
- editable text
- editable shapes
- reusable screenshot assets via
imageRef - easier iteration for App Store screenshots, Instagram stories, and similar promotional layouts
- Create a frame with a background fill
- Render native Figma nodes for:
textrectellipselineimage
- Validate JSON before rendering
- Register selected Figma nodes as reusable
imageRefassets - Render screenshot-based layouts without importing HTML
- Figma desktop app
- A Figma design file
Import plugin from manifest... is a desktop-app workflow. This plugin is not meant to be loaded from the browser version of Figma.
- Download or clone this repo.
- Open the Figma desktop app.
- Open any design file.
- In the Mac menu bar, go to
Plugins -> Development -> Import plugin from manifest... - Select
manifest.json - Run
Plugins -> Development -> Figma Poster Builder
There are two main workflows.
Use this for layouts that do not need a product screenshot.
- Open the plugin.
- Ask your LLM for Figma Poster Builder JSON.
- Copy the JSON.
- Paste the JSON into the plugin.
- Click
Render Poster.
Use this for App Store screenshots, Instagram stories, and product marketing creative that includes your app UI.
- Drag your app screenshot into Figma.
- Select the screenshot node.
- In the plugin, type a short asset key like
app_homeorhybrid_dashboard. - Click
Register Selection. - Ask your LLM for Figma Poster Builder JSON that uses that same
imageRef. - Copy the JSON.
- Paste the JSON into the plugin.
- Click
Render Poster.
If the JSON contains an image layer, the imageRef in the JSON must match a registered asset in the plugin.
Example:
- registered asset:
hybrid_dashboard - JSON value:
"imageRef": "hybrid_dashboard"
This is the expected user loop:
- Tell the LLM what kind of marketing asset you want.
- Tell it to output JSON only using the Figma Poster Builder schema.
- If your design includes a screenshot, tell it which
imageRefto use. - Paste the returned JSON into the plugin.
- Render and edit the result in Figma.
Create a Figma Poster Builder JSON for an App Store screenshot for my fitness app.
Use preset app_store_iphone_15_pro_max.
Use imageRef "hybrid_dashboard".
Output JSON only.
Create a Figma Poster Builder JSON for an Instagram story promoting my app.
Use preset instagram_story.
Use imageRef "hybrid_dashboard".
Output JSON only.
If you want to explain the plugin to other people, this is the short version:
- Open Figma desktop.
- Run the plugin.
- If you want to use a screenshot, drag it into Figma, select it, and register it with an
imageRef. - Ask ChatGPT, Claude, Codex, or another LLM to generate Figma Poster Builder JSON.
- Paste the JSON into the plugin.
- Click
Render Poster. - Tweak the final design directly in Figma.
The LLM schema contract lives in codex-poster-prompt.md.
That file describes:
- supported canvas presets
- supported layer types
- field rules
- image layer behavior
- design constraints
manifest.json: Figma plugin manifestcode.js: plugin runtime and embedded UIui.html: original standalone UI prototypecodex-poster-prompt.md: LLM prompt contractdocs/plugin-architecture.md: implementation notessamples/: sample payloads
imagelayers currently clone an existing Figma node; they do not import image files directly- there is no re-render diff/update flow yet
- there is no auto-layout or responsive region system yet
- gradient and richer style support are still limited
- fonts must exist in Figma for text rendering to succeed
If you publish this project, include:
LICENSE- clear setup instructions
- the prompt contract
- a few screenshots or demo GIFs
- sample JSON payloads
MIT is included here for simple reuse.


