Skip to content

Minimal wrapper of the Mixpanel HTTP api. Avoid cookie banners and add analytics to figma plugins

License

Notifications You must be signed in to change notification settings

rdjpalmer/no-persistence-mixpanel

Repository files navigation

No persistence mixpanel

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.

Installation

NPM

npm install no-persistence-mixpanel

Yarn

yarn add no-persistence-mixpanel

Usage

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");

Figma Plugin

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");
});

About

Minimal wrapper of the Mixpanel HTTP api. Avoid cookie banners and add analytics to figma plugins

Resources

License

Stars

Watchers

Forks

Packages

No packages published