CORUVE
FeaturesHow it worksInsightsPricingDocs
Log in
Start free
CORUVE

Privacy-first product analytics for modern SaaS teams. From first event to clear insight.

Product

  • Features
  • How it works
  • Pricing
  • Roadmap
  • Changelog

Developers

  • Documentation
  • SDK Reference
  • API Reference
  • Quick Start

Company

  • About
  • Blog
  • Contact
  • Careers

Legal

  • Privacy Policy
  • Terms of Service
  • Cookie Policy
  • DPA

© 2026 CORUVE. All rights reserved.

All systems operational

On this page

Quick StartInstall the SDKTrack Custom EventsPrivacy NotesAPI Key Security
Developer quick start

CORUVE Docs

Install tracking, verify events, and start reading product behavior in minutes.

Contents

  • Quick Start
  • Install the SDK
  • Track Custom Events
  • Privacy Notes
  • API Key Security

Quick Start

Get CORUVE running in your project in under 5 minutes.

1. Create a project

Log in to your CORUVE dashboard and create a new project. You'll receive a unique Project API key.

2. Install the tracker

Choose your install method. The CDN script is the fastest option for most projects.

index.html
<script
  src="https://cdn.CORUVE-analytics.com/p.min.js"
  data-project="proj_YOUR_KEY"
  async
></script>

3. Verify events are flowing

Open your CORUVE dashboard. Within 30 seconds of page load, you should see incoming events.

Verification successful

Once you see the first page_view event, your installation is complete. CORUVE is now tracking behavior.

Install the SDK

Use the npm package for framework-native integration.

Install

Install via npm, yarn, or pnpm:

Terminal
npm install @coruve/tracker
# or
pnpm add @coruve/tracker

Initialize

Initialize the tracker once at your app's entry point:

CORUVE.ts
import { CORUVE } from "@coruve/tracker";

CORUVE.init({
  projectId: "proj_YOUR_KEY",
  // Optional: override ingest endpoint for self-hosting
  // endpoint: "https://ingest.yourapp.com",
});

Next.js setup

For Next.js App Router, call init in your root layout:

app/layout.tsx
"use client";
import { useEffect } from "react";
import { CORUVE } from "@coruve/tracker";

export function CORUVEProvider() {
  useEffect(() => {
    CORUVE.init({ projectId: "proj_YOUR_KEY" });
  }, []);
  return null;
}

Track Custom Events

Beyond automatic page views, track meaningful user actions.

Track a button click

Call CORUVE.track() with an event name and optional properties:

custom-event.ts
// Basic event
CORUVE.track("button_clicked");

// With properties
CORUVE.track("plan_upgraded", {
  plan: "pro",
  billing_cycle: "monthly",
  source: "pricing_page",
});

Event Naming Best Practices

Use a consistent naming convention like Object Action (e.g., 'button_clicked', 'account_created'). This makes reading funnels much easier later.

Identify users (optional)

If you have logged-in users, you can associate events with a user ID:

auth.ts
CORUVE.identify("user_abc123", {
  email: "user@example.com",
  plan: "pro",
});

Privacy Notes

Understanding how CORUVE handles user data securely.

Data Handling

CORUVE handles data with privacy as a first principle.

No PII Stored

CORUVE never sets cookies and never stores raw IP addresses. Visitors are identified using a rotating daily salt-hash that resets every 24 hours. This means GDPR and CCPA compliance is significantly simpler.

API Key Security

Best practices for keeping your project keys safe.

Public vs private keys

Your Project ID (proj_xxx) is a public write-only key intended for use in browser-side code. It cannot read data. Keep your secret API keys (used for the REST API) in server-side environment variables only.

.env.local
# Safe to expose (write-only)
NEXT_PUBLIC_CORUVE_PROJECT_ID=proj_xxx

# Keep secret — server-side only
CORUVE_SECRET_KEY=sk_live_xxx

Never expose secret keys

If a secret key (sk_live_*) is accidentally committed to GitHub or exposed in frontend code, rotate it immediately from the dashboard.