🇪🇺 Made in EU with ❤ and Privacy in mind
Clycyo
Live · Analytics for product teams

See why a visitor didn't convert.
In one timeline.

The first analytics that joins pageviews, page-load time, click heatmap, JavaScript errors and Web Vitals on the same visitor record — so marketing and engineering finally look at the same screen.

Hotjar + Sentry + Plausible in one tagPer-visitor replay with AI analysisFree for 10,000 events / month, forever

Dogfooded on this very site. The numbers below come from the real clycyo.com tracker.

clycyo.com/dashboard/6/visitors/v-…/devlive
LCP
1.4 s
CLS
0.02
INP
110 ms
/pricing
Pageview
Landed from /pricing newsletter
Step 1 / 80:00 elapsed

Dev tab · live on every visitor record. Hover to pause.

Pageviews · 30d
Unique visitors · 30d
Avg page load
Online now
Live data from clycyo.com via /api/public/demo · refreshes every 60s
Works with your stack
Next.jsVercelSupabaseReactVueSvelteAstroNuxtCloudflareStripeResendShopify

From zero to first event in 30 seconds.

01

Add the script

One <script> tag in your <head>. SPA route changes, page-load time, click events, Web Vitals and JS errors are captured automatically.

02

identify the user

On signup, call window.webanalytics.identify(email). Every anonymous event from before the signup merges into one journey.

03

Track revenue

Call track('subscription_paid', { revenue, plan }) from your Stripe / Polar webhook. Acquisition is already attached.

<!-- Add to your <head>. -->
<script
  defer
  src="https://clycyo.com/tracker.js"
  data-tracking-id="YOUR_TRACKING_ID"
></script>

Copy-paste · works in HTML, React, Vue, Next.js, Astro

Capabilities

Built for how engineering teams actually ship.

One line install

  • Auto-tracks pageviews, referrers, UTM, click events, and SPA route changes
  • Captures real page-load time (navigationStart → loadEventEnd) on every visit
  • Tracker is 1.1 KB, deferred, with a sendBeacon transport
  • Server-side enrichment for device, browser, OS, country, region, city
<script
  defer
  src="https://clycyo.com/tracker.js"
  data-tracking-id="YOUR_TRACKING_ID"
></script>

Identify and follow the journey

  • identify(email, properties) ties the anonymous visitor to a real subscriber
  • Every later pageview, click, and custom event joins the same timeline
  • Visitor detail shows session, country, device, referrer, time-to-signup, and load time
  • AI journey summary renders the story of one visitor in one paragraph
window.webanalytics.identify(user.email, {
  name: user.name,
  source: 'newsletter',
  provider: 'beehiiv',
});

Revenue, the way it actually happens

  • track() any revenue event with revenue, currency, plan, and order_id
  • Acquisition context (UTM source/medium/campaign + referrer) is preserved on the first pageview
  • Join purchase events to first-touch by visitor_id — no cookies required
  • Server-side POST /api/collect for backend-known orders and webhooks
window.webanalytics.track('subscription_paid', {
  revenue: 29,
  currency: 'USD',
  plan: 'Pro',
  order_id: 'ord_123',
});

Reports for the people who never log in

  • Daily traffic, top pages, top referrers, UTM campaigns, devices, browsers, countries
  • Average and p75 page-load time per page, surfaced on each visitor journey
  • Newsletter attribution: identified visitors in the period and which campaigns delivered them
  • Public, read-only demo dashboard — share a link, no account required
// /api/public/demo — read-only, cached, aggregate-only.
// Powers the live demo and any board-room report you embed.
GET https://clycyo.com/api/public/demo
One mental model

The same SDK that tracks your first pageview tracks your first $10k MRR.

Identify a user when they sign up. The anonymous pageviews from before the signup stay attached.

Track revenue when they upgrade. The first-touch UTM, referrer, country, device, and even the page-load time of the very first visit are still on the same record.

No new platform when you scale. No re-instrumentation. No vendor migration.

// 1. Identify on signup
window.webanalytics.identify(user.email, {
  name: user.name,
  source: 'newsletter',
  provider: 'beehiiv',
});

// 2. Track meaningful product events
window.webanalytics.track('feature_activated', {
  feature: 'team_invites',
  count: 3,
});

// 3. Track revenue from your Stripe webhook
window.webanalytics.track('subscription_paid', {
  revenue: 29,
  currency: 'USD',
  plan: 'Pro',
  order_id: invoice.id,
});
Reports

Reports the board reads. Reports marketing acts on.

Every metric below comes from the same Postgres that powers the live dashboard. No mock layer, no sampling, no extra setup.

For the board

Revenue, attributed to the channel that delivered it

Pair every revenue event with the first-touch UTM source, medium, and campaign captured on the visitor's very first pageview. Export the join, hand it to the CFO.

Newsletter (beehiiv)€ 4,84012 paying
Organic search€ 2,3107 paying
Direct€ 1,1604 paying
Hacker News€ 5902 paying
For marketing

Newsletter subscribers, per campaign, per day

Tagged links plus identify(email, { source }) means every confirmed subscriber lands on the same visitor record. Filter by campaign UTM. Watch deliverability translate into pipeline.

apr_2026_launch142 subsCTR 6.8%
mar_2026_drip_288 subsCTR 5.1%
mar_2026_drip_164 subsCTR 4.4%
feb_2026_intro41 subsCTR 3.7%
For engineering

Page-load time, per page, per visit

The tracker captures navigationStart → loadEventEnd on every initial pageview, and SPA frame-time on every route change. The journey timeline shows it next to every visit, so you can see exactly when a slow page cost you a conversion.

/pricing720 ms avgp75 1.10 s
/510 ms avgp75 0.78 s
/why-clycyo640 ms avgp75 0.92 s
/compare590 ms avgp75 0.86 s
Visible on every visitor journey, e.g. /dashboard/<site>/visitors/<visitor_id>.
For everyone

A live read-only dashboard you can share

The /open page is the same UI primitives the authenticated dashboard uses, fed by an aggregate-only public endpoint. Send the link in a board deck. Send it on Twitter. No login wall, no credentials, no surprises.

Pageviews (30d)
Visitors (30d)
Avg load time
Online right now
The 4-axis scoreboard

Privacy. Revenue. Free tier. DX.

Every analytics tool picks two or three. We picked all four — and we publish the receipts.

ToolPrivacyRevenue attributionFree foreverDeveloper experience
Clycyo
DataFast~
Plausible~~
Fathom~~
Google Analytics
PostHog~~
Pricing

Free forever for small projects. Fair pricing as you scale.

No per-seat fees. No data sampling. No surprise bills.

Free
$0forever
  • ·10,000 events/mo
  • ·1 site
  • ·6-month retention
  • ·Community support
Start free →
Most popular
Pro
$19/month
  • ·100k events (+$9 / 100k)
  • ·Unlimited sites
  • ·Unlimited retention
  • ·Email support
  • ·Revenue attribution
Start Pro →
Team
$99/month
  • ·1M events
  • ·5 seats
  • ·Google SSO
  • ·Slack support
  • ·Audit log
Start Team →
Radical transparency

Every metric public.

All numbers update live. We publish our own metrics because we'd want to see them too.

Sites tracked
Events / 30d
Uptime (30d)
Numbers from /api/public/stats · cached 15 minutes · public read-only.
FAQ

Frequently asked questions

Pageviews are events. Custom track() calls are events. Identify calls and heartbeats do not count toward your event quota.

Ship analytics in the next 60 seconds.

10,000 events/mo free forever. No credit card. No cookie banner. No vendor lock-in.