Search documentation

Search docs pages and sections

Figma Kit
  • Getting started
  • Styles
  • Variables
  • Typeset
  • Theming
  • Components
  • Icons
  • Development
  • Updates
Registry
  • Pro Blocks
  • Templates
  • Themes
Plugin
  • Introduction
  • Generate code
  • Manage variables
  • Typeset
  • Select and install Pro Blocks
  • Security
Agent Skills
  • Agent Skills
  1. Documentation
  2. Security

Menu

HomePreviewPricingRoadmapHelp & Contact

Products

Figma KitPro BlocksAgent SkillsNewFigma PluginTemplates

Resources

Free ThemesTheme GeneratorDocsAcademyBlogIcons

Legal

Licensing AgreementTerms & ConditionsPrivacy PolicyCookies

Components

AccordionAlertAlert DialogAspect RatioAttachmentAvatarBadgeBreadcrumbBubbleButtonButton GroupCalendarCardCarouselChartCheckboxCollapsibleComboboxCommandContext MenuData TableDate PickerDialogDrawerDropdown MenuEmptyFieldFormHover CardIcons - HugeIconsIcons - Lucide IconsIcons - Phosphor IconsIcons - Remix IconIcons - Tabler IconsInputInput GroupInput OTPItemKbdLabelMenubarMessageMessage ScrollerNavigation MenuPaginationPopoverProgressQuestionnaireRadio GroupResizableScroll-areaSelectSeparatorSheetSidebarSkeletonSliderSonnerSpinnerSwitchTableTabsTextareaToastToggleToggle GroupTooltipTypesetTypography

Landing Page Blocks

404 SectionsBannersBento GridsBlog SectionsCTA SectionsComparison SectionsContact SectionsEmpty LP SectionsFAQ SectionsFeature SectionsFootersGallery SectionsHeader SectionsHero SectionsLP NavbarsLanding Page ExamplesLogo SectionsPatternsPricing SectionsRich Text SectionsStats SectionsTeam SectionsTestimonials Sections

Application Blocks

App ShellsApplication ExamplesButtonsCardsDescription ListsEmpty SectionsNavbarsPage HeadersSection FootersSection HeadersSectionsSettingsSign inSign upTable Headers

E-commerce Blocks

CheckoutsExamplesIncentivesOrder Summary SectionsProduct Category SectionsProduct HeadersProduct List FiltersProduct List SectionsSale SectionsShopping CartsStore Navbars

This project is independent and not affiliated with Figma or shadcn/ui.
Copyright © 2026 Matt Wierzbicki

Security

How the Figma to shadcn/ui plugin handles your designs, API keys, and generated code — what is sent, what is stored, and how to report a vulnerability.

Overview

The Figma to shadcn/ui plugin is built so that we never become a custodian of your data. There are no user accounts, your designs are never stored, and your AI API keys are never stored or logged on our servers. This page documents exactly what data moves where, what is retained, and how to report a security issue.

How your data flows

When you generate code or export variables, the plugin sends the following to our backend (figma-to-shadcn.vercel.app, hosted on Vercel):

  • A JSON representation of the frame you selected (layout, text content, style values, and design token names)
  • Your selected options (AI model, component library, framework, output format)
  • Your AI provider API key, used only to authenticate the generation request
  • Your license key (if provided) and your Figma user ID, used for license and free-tier checks

Our backend relays the generation request to the AI provider you selected — Anthropic, OpenAI, Google, or Vercel v0 — authenticated with your own API key. Your designs are processed under your direct relationship with that provider, not through a pooled account.

The plugin makes no other network requests. It does not load third-party fonts, scripts, or analytics, and no tracking services are used.

What we store — and what we never store

Never stored:

  • Your design data — processed in memory only, for the duration of the request
  • Your AI API keys — forwarded to your chosen provider and discarded; they appear in our logs only as a present/absent flag, never as a value
  • Any account or identity data — the plugin has no login and no user accounts

Stored temporarily:

  • Generated code files are saved to private blob storage with unguessable URLs so that the "Copy CLI" and "Open in v0" handoffs work. They are automatically deleted by a daily purge job.

Stored:

  • A free-tier usage counter keyed by your Figma user ID
  • On your own device (Figma's local plugin storage): your API keys, license key, and plugin preferences. These never leave your machine except as described above and are removed when you clear the plugin's data.

License keys are validated against Polar.sh and appear in our server logs only as a redacted fingerprint (last four characters).

Who can access stored data

The service is developed and operated by a single developer. Access to the hosting account (Vercel) — and therefore to temporarily stored generated code and usage counters — is limited to the operator. No third party has access to stored data.

Infrastructure

All infrastructure runs on providers holding SOC 2 Type 2 / ISO 27001 attestations:

  • Vercel — hosting, serverless functions, blob storage, and KV
  • Anthropic, OpenAI, Google, Vercel v0 — AI processing, under your own API key and the provider's own data policies
  • Polar.sh — license key validation

We recommend using AI provider API keys with spending limits configured (both Anthropic workspace keys and OpenAI project keys support per-key spend caps) as a general best practice.

Reporting a vulnerability

If you believe you have found a security vulnerability in the plugin or its backend, please email hi@shadcndesign.com with a description of the issue and steps to reproduce. Please do not disclose the issue publicly before we have had a chance to address it.

You will receive an acknowledgement within 72 hours. Confirmed vulnerabilities are prioritized and fixed as quickly as severity warrants, and we will keep you informed of progress. We are grateful for responsible disclosure and will credit reporters who wish to be named.

Scope of this page

This page covers the Figma to shadcn/ui plugin and its backend service. The shadcndesign.com website, Pro Blocks registry, and Academy have their own respective data practices.