tode

tode compared with other tools

Plausible in a Figma plugin, compared with tode

Plausible can count plugin events through its Events API. It has no user id by design, so it cannot show returning users or retention. When that is fine and when it is not.

, by Ilia

Plausible is a good tool for a website. It is small, it sets no cookies and it shows one clear page of numbers. If you already use it for your site, the obvious question is whether it can count plugin usage too. It can count events. It cannot count returning users, and for a plugin that is the number that matters most.

Running Plausible in a plugin

Skip the script. It is written to count pageviews by URL, and a plugin UI has a data: URL and no pages. Plausible also has an Events API for places where the script does not fit, and you can call it with fetch from the UI or from code.ts. The API wants a domain, an event name and a URL. Their docs suggest making up a URL that looks like a page for apps without one.

// code.ts
function track(name: string, props: Record<string, string | number> = {}) {
  return fetch('https://plausible.io/api/event', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({
      domain: 'my-plugin.example',      // the site you created in Plausible
      name,
      url: 'app://my-plugin/' + name,
      props,
    }),
  });
}

track('fonts_replaced', { count: 12 });
"networkAccess": { "allowedDomains": ["https://plausible.io"] }

Events show up as goals once you add each name in the site settings. Reading the props you send is a Business plan feature.

The part that does not carry over

Plausible has no user id, on purpose. It recognises a visitor by hashing the IP address and the browser's user agent with a salt that changes every day. Tomorrow the same person is a new visitor. That is the privacy design, and for a website it costs little.

For a plugin it removes the questions you came with. A person who opens your plugin on five days this month counts as five visitors. There is no monthly active users number you can trust, no new against returning, no week-one retention. The API has no field for the Figma user id, and putting it in props gives you a column to filter by, not an identity the reports understand.

Side by side

Plausibletode
Runs in a pluginThrough the Events API, not the scriptYes
User identityNone, a daily hash of IP and user agentThe Figma user id, stable across devices
Daily usersYes, unique within the dayYes
Monthly users, returning, retentionNoYes
Feature usageCustom events as goalsActions by name, with distinct users per action
Numbers attached to an eventCustom properties, Business planOne numeric metric per event, with median and percentiles
CountryFrom the request IPFrom the request IP, IP not stored
Figma editor and modeSend them as propertiesAttached to every event
Self-hostingYes, the Community EditionNo
Price modelNo free plan, 30-day trial, then by monthly pageviews and eventsFree for 1 plugin, then $12 to $99 a month for all your plugins

Pick Plausible if

You already pay for it for your site, your plugin is free, and all you want is a rough count of how often each feature runs. Twenty lines of code and you have that. It is also the right call if you have promised your users that nothing about them is stored, user id included, and you mean it literally.

Pick tode if

You want to know whether people come back. That needs a stable id, and the Figma user id is the only one a plugin has. tode uses it for counting and stores nothing else about the person: no name and no file contents. The list of what is and is not collected is in what a plugin knows about its users.

Keep Plausible on the website either way. The page that sells your plugin and the plugin itself are two different things to measure, and one tool does not have to do both.