A Muziris product

01 · The product

Your analytics.Is nobody else’sbusiness.

Traffic, funnels, session replay, heatmaps and Web Vitals in one dashboard. It runs on a machine rented for you alone, with its own Postgres.

Script, gzipped
1.0 KB
Dashboard views
12
Third parties
0
juunaDemo Product

Unique visitors

8,412+12.4%

Pageviews

21,930+8.1%

Bounce rate

41%−3.2%

Avg visit

1m 18s+6.0%

TrafficHover the chart
Daily unique visitors, last 30 days

Core Web Vitals · field p75

LCP1.24sGood
CLS0.02Good
INP148msGood
FCP0.91sGood
TTFB340msNeeds work

Measured by the browser · PerformanceObserver · no added weight

Signup funnel · 5 steps · 30 days

Landing viewed12,480100%
Pricing viewed5,76446.2%−53.8%
Checkout started3,60828.9%−37.4%
Plan chosen2,42119.4%−32.9%
Paid1,90415.3%−21.4%

Overall conversion 15.3% · +2.1 pts vs previous

Click density · normalised coordinates only

Scroll depth

0-25%100%
25-50%92%
50-75%71%
75-90%48%
90-100%26%
Exhibit IThe dashboard.Four of the twelve views, from the product itself.
page/pricingtrackSignup Completed$vitalLCP 1.24sidentifyuser_42$click/featurespage/docs/quickstarttrackPlan Upgraded$scrolldepth 0.92replaysess_9f2 recordingtrackDemo Requested$vitalCLS 0.02page/blog/launch-week

I

The premise

Analytics should not cost you the thing you are measuring.

Most analytics runs on shared infrastructure. Your product’s data sits in a warehouse next to everyone else’s, metered per event and sampled once the volume gets expensive.

juuna is trying to tackle this using a different approach. One customer, one machine. Every feature is on every plan, because there is nothing worth gating on a server you already pay for.

  • Dedicated, not multi-tenant

    Every customer gets their own machine and their own database. Your data never shares a server.

  • First-party only

    Events go to your instance and stop there. Nothing is forwarded to a broker, an ad network, or a profile held somewhere else.

  • Data that expires

    Raw events are pruned on a schedule. Replays are masked and kept 30 days. An erasure request removes every trace of a person in a single transaction.

II

The ledger

Twelve views. Five vitals. Thirty minutes of replay. Nobody in the middle.

12
views, one tab bar
Overview, campaigns, funnels, retention, engagement, explore, flow, maps, replays, live, vitals, export.
5
Web Vitals, measured on real visits
LCP, CLS, INP, FCP and TTFB, read by the browser itself, rated on Google’s thresholds and tracked as daily p75s.
30
minutes of session replay, masked by default
Passwords are never recorded. Inputs are masked. Recordings do not store IPs. Every recording is capped and pruned on schedule.
0
third parties
The only server your visitors talk to is the one you pay for.

III

The evidence

The claims above, photographed.

Six exhibits, shot from a running instance. Visitors, pageviews, sessions, bounce rate, campaigns, countries and devices, with every range compared against the one before it. Raw events are kept 90 days by default. Hourly rollups hold the history after that.

…/demo-product?range=30d
The juuna overview: six KPI cards with period deltas above a thirty-day traffic chartThe juuna overview: six KPI cards with period deltas above a thirty-day traffic chart
Exhibit IIOverview: the first screen, and usually the only one you need.Six KPI cards with period-over-period deltas, a traffic chart you can brush, and an hour-by-hour activity heatmap. Filter any of it by country, browser, path or campaign.
…/demo-product/replays
The session replay index: a live-now panel above a table of recorded sessions with visitor, page, duration and event countThe session replay index: a live-now panel above a table of recorded sessions with visitor, page, duration and event count
Exhibit IIIReplay: watch a session live, or after it ends.Opt-in recordings reconstruct real sessions pixel for pixel. The live panel follows a visitor while they are still browsing. Masking happens in the browser, before anything is sent, and no recording carries an IP.
…/demo-product/clicks
A click heatmap rendered over a real captured page, with scroll-depth and attention bandsA click heatmap rendered over a real captured page, with scroll-depth and attention bands
Exhibit IVHeatmaps: where attention actually goes.Clicks land as a density field over a capture of the real page. Only normalised coordinates leave the browser. Page content never does.
…/demo-product/vitals
The Web Vitals view: p75 cards for LCP, CLS, INP, FCP and TTFB with rating splits, a daily p75 trend and a slowest-pages tableThe Web Vitals view: p75 cards for LCP, CLS, INP, FCP and TTFB with rating splits, a daily p75 trend and a slowest-pages table
Exhibit VVitals: how fast the site feels to real visitors.LCP, CLS, INP, FCP and TTFB, read by the browser’s own PerformanceObserver, rated on Google’s thresholds, tracked as daily p75s and ranked by slowest page. No measurement library ships to your users.
…/demo-product/funnels
A three-step conversion funnel with per-step counts, shares and drop-offA three-step conversion funnel with per-step counts, shares and drop-off
Exhibit VIFunnels: where they convert, where they leave.Define an ordered funnel and read the drop-off between steps. Retention cohorts and DAU/WAU/MAU stickiness sit in the next two views.
…/demo-product/flow
A diagram of visitor paths through the siteA diagram of visitor paths through the site
Exhibit VIIFlow: the paths visitors actually took.Every real path through the product. Follow a branch to see where visitors go next.

IV

The installation

One tag, and it is collecting.

index.html1.0 KB gzipped · no dependencies
<script defer src="https://juuna.app/sdk/juuna.js"
        data-write-key="wk_YOUR_KEY"
        data-api-host="https://juuna.app"></script>

That is the whole integration. The script never throws into your app. If you bundle, npm i @muziris/juuna adds session replay. The full reference is at /docs, and /docs/llms.txt is the same page as plain markdown, for agents that read it in one request.

What happens on our side

$ ./provision-instance.sh \

--slug yourco --tier growth

✓ dedicated machine · TLS · backups

https://yourco-a1b2c3d4.juuna.app

V

The terms

Flat plans. Everything on every one of them.

$15, $25 or $55 a month for now, down from $29, $79 and $199. Every plan is a dedicated instance running the whole product. Say no to feature gating and surprise invoices. Checkout to live dashboard usually takes about ten minutes.

  1. Step 01

    Pick a plan

    Stripe handles the checkout. No sales call.

  2. Step 02

    Name it

    One form: your subdomain, and who can sign in.

  3. Step 03

    We provision it

    A dedicated server, its own Postgres, TLS. The page tracks it until it is live.

Correspondence

Questions before you commit?

A migration, a compliance question, or a plan that is not on the list? Tell us what you are building. We read every one of these and reply.

Who reads it
Our team
Typical reply
Few days
Mailing list
None