Introduction
Self-hosted, privacy-first analytics for any JavaScript framework.
Locallytics is a lightweight analytics SDK that stores data in your own database. Works with any JavaScript framework.
- Privacy-first — No cookies, respects Do Not Track
- Self-hosted — Your data stays on your servers
- Framework-agnostic — Works with Next.js, Express, Remix, Hono, etc.
Quick Start
Install
npm install locallyticsMigrate Database
Create the required tables in your database. Supports PostgreSQL and SQLite.
export DATABASE_URL="postgres://..." # or "./analytics.db"
npx locallytics migrateSet
DATABASE_URL in your environment first.Create API Route
import { createLocalyticsHandler } from "locallytics";
const handler = await createLocalyticsHandler({
database: process.env.DATABASE_URL!,
});
export const POST = handler.POST;Add Tracker
"use client";
import { LocallyticsGrabber } from "locallytics/client";
import { useEffect } from "react";
export default function RootLayout({ children }) {
useEffect(() => {
LocallyticsGrabber();
}, []);
return (
<html>
<body>{children}</body>
</html>
);
}View Data
import { LocallyticsData } from "locallytics";
export default async function Dashboard() {
const data = await LocallyticsData(
process.env.DATABASE_URL!,
"last7d"
);
return (
<div>
<p>{data.pageviews} pageviews</p>
<p>{data.uniqueVisitors} visitors</p>
</div>
);
}What's Next?
- API Route — Server endpoint setup
- Locallytics Grabber — Track pageviews
- Locallytics Data — Query analytics
- CLI — Database commands