
Product
Socket MCP Adds Org Alerts, Threat Feed Review, and Package Inspection
Socket MCP now lets AI assistants review org alerts, investigate threats using the Socket threat feed, and inspect package files in addition to dependency scoring.
@logsnag/next
Advanced tools
npm install @logsnag/next
yarn add @logsnag/next
pnpm add @logsnag/next
The usage depends on whether you are using the app directory structure or the pages directory structure.
Set your token's scope to
publicin the LogSnag dashboard
App Directory:
In the app directory, you need to import the LogSnagProvider as a head element in your root layout component:
import { LogSnagProvider } from '@logsnag/next';
export default function RootLayout({
children
}: {
children: React.ReactNode;
}) {
return (
<html lang="en">
<head>
<LogSnagProvider token='<TOKEN_NAME>' project='<PROJECT_NAME>' />
{/* Other head elements */}
</head>
<body>
{/* Your layout */}
<main>{children}</main>
</body>
</html>
);
}
For setting the user id in server components, use the SetUserIdServerComponent:
import { SetUserIdServerComponent } from '@logsnag/next';
export default function Page() {
const userId: string | null = 'user-123';
return (
<>
{/* Your page content */}
<SetUserIdServerComponent userId={userId} />
</>
);
}
Pages Directory:
In the pages directory, you can wrap your app with the LogSnagProvider, similar to how you would do in a React application:
import { LogSnagProvider } from '@logsnag/next';
export default function App({ Component, pageProps }: AppProps) {
return (
<LogSnagProvider token='<TOKEN_NAME>' project='<PROJECT_NAME>'>
{/* Your app content */}
<Component {...pageProps} />
</LogSnagProvider>
);
}
Tracking Events:
You can also track events directly from HTML elements using data attributes:
<button
data-event="Upgraded Plan"
data-channel="billing"
data-icon=":moneybag:"
data-tag-plan="Pro"
data-tag-period="Monthly"
data-tag-price="9.99"
>
Upgrade to Pro
</button>
In this example, when the button is clicked, an event named "Upgraded Plan" will be tracked with the specified tags.
For server-side usage, you can use LogSnag from @logsnag/next/server It behaves similarly to @logsnag/node
Use a different token for server-side usage and set its scope to
privatein the LogSnag dashboard.
import { LogSnag } from '@logsnag/next/server';
// Initialize LogSnagServer
const logsnag = new LogSnagServer({
token: '<TOKEN>',
project: '<PROJECT_NAME>',
});
// Use it in your server-side code
// Track an event
await logsnag.track({
channel: "payments",
event: "New Subscription",
user_id: "user-123",
icon: "💰",
notify: true,
tags: {
plan: "premium",
cycle: "monthly",
trial: false
}
});
// Identify a user
await logsnag.identify({
user_id: "user-123",
properties: {
name: "John Doe",
email: "john@doe.com",
plan: "premium",
}
});
// Track an insight
await logsnag.insight.track({
title: "User Count",
value: "100",
icon: "👨",
});
// Increment an insight value
await logsnag.insight.increment({
title: "User Count",
value: 1,
icon: "👨",
});
The useLogSnag hook can be used across your client components and provides the following methods:
track(options: TrackOptions): Promise<boolean>identify(options: IdentifyOptions): Promise<boolean>group(options: GroupOptions): Promise<boolean>insightTrack(options: InsightTrackOptions): Promise<boolean>insightIncrement(options: InsightIncrementOptions): Promise<boolean>Usage:
import { useLogSnag } from '@logsnag/next';
export function Component() {
// Get the hooks
const { setUserId, track, identify } = useLogSnag();
// Use them as needed
setUserId('user-123');
track({
channel: "payments",
event: "New Subscription",
user_id: "user-123",
icon: "💰",
notify: true,
tags: {
plan: "premium",
cycle: "monthly",
trial: false
}
});
identify({
user_id: "user-123",
properties: {
name: "John Doe",
email: "john@doe.com",
plan: "premium",
}
});
// Rest of your component
}
These hooks have the same usage as their counterparts in the @logsnag/react package.
For more information about the LogSnag API, see: docs.logsnag.com
If you encounter any problems or issues, please contact us at shayan@logsnag.com
FAQs
LogSnag client for Next applications
The npm package @logsnag/next receives a total of 602 weekly downloads. As such, @logsnag/next popularity was classified as not popular.
We found that @logsnag/next demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Product
Socket MCP now lets AI assistants review org alerts, investigate threats using the Socket threat feed, and inspect package files in addition to dependency scoring.

Product
Socket Firewall blocks malicious VS Code and Open VSX extensions before install, protecting developers from compromised editor marketplaces.

Research
More than 140 Mastra npm packages were compromised in a supply chain attack that used a typosquatted dependency to deliver a cross-platform infostealer during installation.