LocallyticsData
Server-side function to fetch your analytics.
Fetch analytics from your database.
Basic Usage
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>
);
}Parameters
LocallyticsData(databaseUrl, range, format?)| Parameter | Type | Default |
|---|---|---|
databaseUrl | string | — |
range | "last24h" | "last7d" | "last30d" | — |
format | "json" | "csv" | "json" |
Return Value
JSON format returns:
{
pageviews: number; // Total pageviews
uniqueVisitors: number; // Unique sessions
topPages: Array<{ // Top 10 pages
page: string;
count: number;
}>;
dailyStats: Array<{ // Daily breakdown
date: string;
views: number;
}>;
}CSV format returns a formatted string.
Examples
Full dashboard:
import { LocallyticsData } from "locallytics";
export default async function Dashboard() {
const data = await LocallyticsData(process.env.DATABASE_URL!, "last7d");
return (
<div>
<h1>Analytics</h1>
<p>{data.pageviews} pageviews</p>
<p>{data.uniqueVisitors} visitors</p>
<h2>Top Pages</h2>
<ul>
{data.topPages.map((page) => (
<li key={page.page}>{page.page}: {page.count}</li>
))}
</ul>
</div>
);
}CSV export:
import { LocallyticsData } from "locallytics";
export async function GET() {
const csv = await LocallyticsData(process.env.DATABASE_URL!, "last30d", "csv");
return new Response(csv, {
headers: {
"Content-Type": "text/csv",
"Content-Disposition": "attachment; filename=analytics.csv",
},
});
}