Open beta — free

Open-source product analytics.

Pug records what happens in your product — page views, clicks, scrolls, custom events — and ties every event to a person. Ask questions with trends, funnels, retention, and user flows. Self-host the whole stack, or use the free cloud.

AGPL-3.0 open source Self-hostable Web, Flutter & Node SDKs
user-09996
ext cust_009996
1,633
Events
317
Sessions
215
Pageviews
Created May 30 First seen 123d ago Last seen 4d ago Android 11 New York City, US
Activitylast 60 days
Identified properties1 trait
nameDiana Jones
Recent activitylast 10 events
  • app_close 4d ago
  • scroll 4d ago 72%
  • page_view 4d ago
  • app_open 4d ago
  • checkout_started 4d ago USD 416.21
  • add_to_cart 4d ago prod-0198
  • search 4d ago shirt
Get started

First events in two minutes.

Initialize the SDK and auto-tracking starts immediately — no event plan, no instrumentation sprint. Call identify() when someone signs in; their anonymous history merges into their profile.

import { init, identify, track } from '@poluruprvn/pug-web'

init('your-project-id', {
  apiKey: 'pub_your_key',
  endpoint: 'https://api.pug.sh',
})

// Page views, clicks, scrolls, form interactions, rage clicks,
// and dead clicks are captured automatically from here on.
identify('user_123', { email: '[email protected]', plan: 'pro' })
track('signup', { plan: 'pro' })
Captured automatically
  • page_view every route change
  • click element, text, selector
  • scroll max depth per page
  • form_submit form interactions
  • rage_click frustration signal
  • dead_click clicks that did nothing
Added on ingest
  • Geo (country, region, city)
  • Device & browser
  • UTM parameters
  • Bot filtering
Live

See events arrive while you integrate.

Every event shows up seconds after it happens — on a live map and in a stream, with the page, device, and location already attached. No waiting for a processing window to find out whether your integration works.

Pug's Live view: a map of the Tokyo region with event markers, a panel showing 169 users live now with event, device, and country filters, a focused video_play event from a OnePlus 12 in Tokyo, and a stream of just-arrived events — login from Singapore, app_open from London, click from Seattle
Unified profiles

One profile per person, not per device or session.

The profile you saw at the top of this page is the core of Pug: every session, trait, and event a person ever generated, in one searchable timeline.

  • Before sign-in, events accrue to an anonymous ID
  • identify(userId) merges that history into one profile
  • Works across devices: web today, app tomorrow — same person
  • Traits (plan, email, anything) live on the profile and filter every insight
Insights

Six ways to turn events into answers.

Every insight runs over raw events in ClickHouse — filter by any property, break down by any dimension, and get answers in seconds.

Trends

Time-series of any event. Count, unique users, avg per user, or sum/avg/min/max of a numeric property. Break down by up to 5 properties.

Funnels

Conversion across ordered steps, with drop-off and average time between steps.

Retention

Cohort heatmap from a start event and a return event — who comes back, and when.

Segmentation

One aggregate sliced by any dimension — built for KPI tiles and scorecards.

User flow

A Sankey of the paths users actually take between events — where they go next, where they drop.

Top K

Ranked values of any property — top pages, top referrers, top products — with an “others” bucket.

Trends · signups, last 30 days
Funnel · signup → purchase
Retention · weekly cohorts
User flow · after page_view
Dashboards

The numbers you check every morning, on one board.

Pin any insight as a tile. The whole board shares one time window, so every tile answers the same question: how is this period doing against the last one?

  • KPI, line, area, bar, table, and Sankey tiles
  • One time window and granularity for the whole board
  • Period-over-period comparison per tile
  • Thresholds that color a KPI when it crosses a limit
  • Markdown tiles for notes between charts
Self-host

Run it on your servers, or use ours.

The entire pipeline is open source — the same code serves the cloud and your own deployment.

  1. SDK
    track() & identify()
  2. API
    Connect RPC ingest
  3. NATS
    Async pipeline
  4. Workers
    Geo & enrichment
  5. ClickHouse
    Analytics store
  6. Dashboard
    Insights & profiles

Self-hosted

  • One Go binary runs the server and every worker
  • PostgreSQL for accounts and config, ClickHouse for events, NATS for the queue
  • AGPL-3.0 — read the code, run it anywhere, your data never leaves

Cloud

Managed hosting with zero ops — open beta — free, with pricing announced before general availability. Your data is exportable either way.

Start tracking today. Own your data forever.

Open source, self-hostable, and free during open beta. Create a project and see live events in minutes.