Integrations

Add Pug to your stack

Pug ships six SDKs: Web, Android, Flutter, Node, Go, and Ruby. The browser frameworks all use the same framework-agnostic Web SDK. Pick yours for the exact setup.

Which SDK

Six SDKs cover every surface

A framework page tells you where to put the call. This tells you which SDK is making it: most products end up with two, a browser one and a server one, writing to the same profiles.

  • Web SDK @pug-sh/browser

    Anything that runs in a browser: Next.js, React, Vue, Svelte, or plain JavaScript. One init() call turns on six autocapture trackers, and a public key is safe to ship in client code.

  • Android SDK sh.pug:android

    Native Android apps in Kotlin or Java. App opens, activity screen views, and installs are tracked from Pug.init; Pug.screen names composables and fragments, and typed methods cover the well-known events.

  • Flutter SDK pug_flutter

    Cross-platform apps on iOS, Android, web, and desktop. Lifecycle tracking starts at init(); a route observer adds screen views, and typed methods cover the well-known events.

  • Node SDK @pug-sh/node

    Events that must be true regardless of the browser, payments, webhooks, background jobs. Names the user explicitly, and the same private key reads profiles and insights back.

  • Go SDK github.com/pug-sh/sdk-go

    The same server-side role for Go services. Track and Identify never block or fail, background goroutines send the batches, and one client is safe for concurrent use. Properties are typed fields, and well-known events can be checked at compile time.

  • Ruby SDK pug-sh

    The same server-side role for Rails and plain Ruby. Tracking never blocks or raises, a background thread sends the batches, and one client serves every thread and is safe to create before Puma or Unicorn fork their workers.

Send your first event.

Create a project, add the snippet, and watch the Live view fill up. Or open the demo first: the real dashboard on a sample pet shop, with no sign-up.

Questions? Email hello@pug.sh