Security and privacy

The entire pipeline (CMYK conversion, PDF assembly, TIFF encoding, previews) runs inside Figma on your machine. There is no server component, no account, and no telemetry. The only thing the plugin ever sends anywhere is a Pro license key, to check that it is valid.

Enforced by the platform, not by promise

The plugin manifest declares:

{
  "networkAccess": {
    "allowedDomains": [
      "https://live.dodopayments.com",
      "https://test.dodopayments.com"
    ],
    "reasoning": "Validates Pro license keys with the payment provider (Dodo Payments). Only the license key the user enters is sent - never any design data."
  }
}

Figma enforces this list at runtime: the plugin is technically unable to reach any other host. The two allowed domains belong to Dodo Payments, the payment provider behind Pro, and the only requests ever made are license activation, validation, and deactivation. Each request contains the license key and a device label - nothing else. Your artwork, client files, and unreleased designs cannot leave your computer, and this is verifiable by anyone reading the manifest and the code.

If you never buy Pro, the plugin makes no successful network request at all: with no stored license key there is nothing to validate.

What the plugin stores

  • Name
    Frame metadata
    Type
    in your .fig file
    Description

    Bleed and safe-margin values are stored as plugin data on frames you create or stamp, inside the design file itself. It travels with the file and is visible to no one else.

  • Name
    Custom presets
    Type
    in your Figma client storage
    Description

    Saved PDF presets live in Figma's local client storage for the plugin, on your machine and your Figma account's local cache. No cloud sync by the plugin.

  • Name
    Pro license record
    Type
    in your Figma client storage
    Description

    After activation: the license key, its device-instance id, the purchase email, and the last successful validation time. Stored locally so Pro works offline for up to 7 days; removed by the Deactivate button.

There are no analytics and no telemetry. Nothing phones home except the daily license check, and only when a license exists.

Review and audit

The plugin is plain JavaScript in two files (code.js and ui.html) with no build step and no dependencies, so a security review is a straight read of the code you run. The licensing code is one clearly-marked section at the end of code.js. Test suites in the repository validate the binary outputs (PDF, TIFF, PNG metadata) byte by byte.

Was this page helpful?