Guides / Platforms & Tools
Vercel Edge Functions run in a V8 isolate (not Node.js), so Node-specific APIs are unavailable. LogIt's REST API works fine because the Edge runtime supports fetch.
// lib/logit-edge.ts
interface LogitEvent {
channel: string;
event: string;
description: string;
icon?: string;
notify?: boolean;
tags?: Record<string, string>;
metadata?: Record<string, unknown>;
}
export function logitFire(apiKey: string, payload: LogitEvent): void {
// Fire-and-forget — never block the edge response
fetch("https://api.logit.now/api/ingest", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": `Bearer ${apiKey}`,
},
body: JSON.stringify(payload),
}).catch(() => {});
}
// app/api/track/route.ts
export const runtime = "edge";
import { logitFire } from "@/lib/logit-edge";
export async function POST(req: Request) {
const { userId, event } = await req.json();
const geo = (req as any).geo ?? {};
logitFire(process.env.LOGIT_API_KEY!, {
channel: "events",
event,
description: `${userId} — ${event}`,
icon: "⚡",
notify: false,
tags: { country: geo.country ?? "unknown" },
metadata: { userId, event, geo },
});
return Response.json({ ok: true });
}
// middleware.ts
import { NextResponse } from "next/server";
import type { NextRequest } from "next/server";
import { logitFire } from "@/lib/logit-edge";
export function middleware(req: NextRequest) {
if (req.nextUrl.pathname === "/pricing") {
logitFire(process.env.LOGIT_API_KEY!, {
channel: "page-views",
event: "Pricing page viewed",
description: req.nextUrl.toString(),
icon: "💰",
notify: false,
tags: { country: req.geo?.country ?? "unknown" },
metadata: { url: req.nextUrl.toString(), referrer: req.headers.get("referer") ?? null },
});
}
return NextResponse.next();
}
export const config = { matcher: ["/pricing", "/checkout/:path*"] };
await the LogIt call in edge functions — use fire-and-forget to keep response times fast.req.geo (available in Vercel Edge) to enrich events with country/region data.runtime = "edge" export is required on API routes that explicitly use Edge Runtime.Try LogIt free
7-day trial. No credit card required.