tode

Guides

Best analytics for Figma plugins: eight options compared

The Community page, Google Analytics, Mixpanel, PostHog, Amplitude, Plausible, your own endpoint and tode: what each needs to run inside a plugin and who should pick it.

, by Ilia

I make one of the tools on this list, so read it with that in mind. I have tried to write the page I wanted when I started: every realistic option, what it takes to get it running inside a plugin, and who should pick it. Where another tool is the better choice, it says so.

What the plugin sandbox rules out

A plugin UI is an iframe with a data: URL and an origin of null. It has no cookies, no localStorage, no page URL and no referrer. The main code has fetch and the figma API and no DOM at all. Every request has to go to a host listed in the manifest. Any tool that identifies people with a cookie and organises its reports around pages needs work before it runs here, and some of them never fit. The details are in the note on Google Analytics.

What a plugin does have is figma.currentUser.id, a stable id that follows the person across devices. So the first question to ask about any tool is whether you can hand it that id and get real user counts back.

The options

The Community page

Free and already there. It shows lifetime users and likes, and nothing about this week. Keep watching it for reach, and do not mistake it for usage. More in installs are not usage.

Google Analytics 4

The gtag script fails in the iframe. The Measurement Protocol works from the main code, and then you write the client yourself: client id, session id, engagement time. The API secret ships in your bundle and the reports are shaped like a website. It costs nothing, which is the reason to consider it. GA4 compared with tode.

Mixpanel

Runs in the iframe with persistence disabled and the Figma user id passed to identify. You get funnels, cohorts and a query builder. Session length is yours to define. A good choice when the plugin has a multi-step flow you want to see people drop out of. Mixpanel compared with tode.

PostHog

Runs with memory persistence. Session replay, feature flags and surveys come from the same SDK as the events, which makes it a lot of SDK for a side panel. Pick it when you want to watch someone get stuck in your UI. PostHog compared with tode.

Amplitude

Runs with identity storage set to none and autocapture off. Close to Mixpanel in what it gives you. It makes most sense when the company behind the plugin already uses it. Amplitude compared with tode.

Plausible

The script does not fit, the Events API does. It has no user id by design, so it counts events and daily visitors and cannot tell you who came back. Fine for a rough count of feature usage on a free plugin. Plausible compared with tode.

Your own endpoint

A fetch from code.ts to a server you run, one row per event. The server has to answer with Access-Control-Allow-Origin: *, because the request comes from a null origin. Collecting is the easy half. The other half is the queries for active users, cohorts and percentiles, a place to look at them, and keeping the server up. Worth it if you already run a backend for the plugin and enjoy this kind of work.

tode

The one I built, for plugins and widgets only. You call init in the main code and trackAction where something happens. It reads the Figma user id itself, measures the session as the time the UI is open and attaches the editor and country to every event. The dashboard is fixed: active users, new against returning, retention, actions, metric distributions, sessions. There are no funnels, no replay and no free-form properties. Free for one plugin, then $12 to $99 a month for every plugin on the account.

Side by side

Runs in a pluginReturning usersSession length
Community pageNot neededNoNo
GA4Measurement Protocol onlyIf your client id holdsSent by you
MixpanelWith persistence offYesSent by you
PostHogWith memory persistenceYesIts own session model
AmplitudeWith identity storage offYesFrom gaps between events
PlausibleEvents API onlyNoNo
Your own endpointYesIf you write the queryIf you measure it
todeYesYesMeasured from the UI

All of them are free to start except two. Plausible has a 30-day trial and no free plan, and your own endpoint costs a server and your time.

How I would choose

Start from the question, not the tool. If the question is where people drop out between opening the plugin and paying, you need funnels, and that means Mixpanel, Amplitude or PostHog. Between those three, take the one your team already has. If nobody has one, PostHog is the one that bundles replay and feature flags with the events.

If the question is whether anyone uses the thing, whether they come back and which features they touch, you need a stable user id, sessions and a list of actions. All three product tools can do it after some setup. tode does it with none, and does nothing else.

If the plugin is free, you do it for fun and you only want to know which button gets pressed, Plausible or GA4 will tell you that for little or no money.

Whatever you pick, decide what to track before you install anything. A short list of well-named actions works in every tool here, and a messy one works in none. How to make that list is in how to track usage.