Minimal Mixpanel API for usage in environments where cookies/localStorage are either not supported (e.g., Figma Plugins), or where you don't want/need them (e.g., to avoid needing a cookie banner).
This library wraps Mixpanel's HTTP API instead, which requires you to maintain the user's distinct_id
property yourself.
In the case of figma, the library provides helper methods to do this automatically for you.
npm install no-persistence-mixpanel
yarn add no-persistence-mixpanel
To use the Mixpanel api directly:
import Mixpanel from "no-persistence-mixpanel";
const mixpanel = new Mixpanel(/* Your Project Token */);
mixpanel.identify(user.id);
mixpanel.track("Page Viewed");
If you're using this package for a Figma plugin, the library provides additional helper methods to manage the user's identity.
In order to use them, you'll need to be using a bundler, such as webpack, and give your plugin currentuser
permissions:
/**
* manifest.json
*/
{
"name": "example",
"id": "1234",
"api": "1.0.0",
"main": "dist/code.js",
"editorType": ["figma", "figjam"],
"ui": "dist/ui.html"
// Required permissions
"permissions": ["currentuser"],
}
/**
* code.ts
*/
import { setupIdentification } from "no-persistence-mixpanel/figma-code";
setupIdentification(figma);
/**
* ui.ts
*/
import { init } from "no-persistence-mixpanel/figma-ui";
init(/* Your project token */, (mixpanel) => {
mixpanel.track("Plugin Opened");
});