Templates

Project templates

Pick a stack, copy the snippet, and create a project with a matching name from the dashboard.

Next.js API

Route handlers and server actions — log requests, errors, and latency from App Router.

Suggested project: nextjs-api · environment: production

Create from template

Route handler

import { createLogger } from "@marvink02/loggerman-sdk";

const logger = createLogger({
  projectId: process.env.LOGGERMAN_PROJECT_ID!,
  token: process.env.LOGGERMAN_TOKEN!,
  baseUrl: process.env.LOGGERMAN_BASE_URL ?? "https://your-app.vercel.app",
  environment: "production",
});

export async function POST(req: Request) {
  const started = Date.now();
  try {
    // ... your handler
    await logger.info("api.checkout.completed", { durationMs: Date.now() - started });
    return Response.json({ ok: true });
  } catch (err) {
    await logger.error("api.checkout.failed", { err: String(err) });
    throw err;
  }
}

Cron job

Scheduled workers and background tasks — heartbeat, duration, and failure reasons.

Suggested project: cron-nightly · environment: production

Create from template

Scheduled task

import { createLogger } from "@marvink02/loggerman-sdk";

const logger = createLogger({
  projectId: process.env.LOGGERMAN_PROJECT_ID!,
  token: process.env.LOGGERMAN_TOKEN!,
  baseUrl: process.env.LOGGERMAN_BASE_URL ?? "https://your-app.vercel.app",
  environment: "production",
  source: "cron.nightly_sync",
});

export async function runNightlySync() {
  const started = Date.now();
  await logger.info("cron.started");
  try {
    // ... sync work
    await logger.info("cron.completed", { durationMs: Date.now() - started });
  } catch (err) {
    await logger.error("cron.failed", { err: String(err) });
    process.exitCode = 1;
  }
}

Mobile app

React Native or Expo — capture client errors and navigation breadcrumbs.

Suggested project: mobile-app · environment: staging

Create from template

React Native

import { createLogger } from "@marvink02/loggerman-sdk";

const logger = createLogger({
  projectId: process.env.EXPO_PUBLIC_LOGGERMAN_PROJECT_ID!,
  token: process.env.EXPO_PUBLIC_LOGGERMAN_TOKEN!,
  baseUrl: process.env.EXPO_PUBLIC_LOGGERMAN_BASE_URL ?? "https://your-app.vercel.app",
  environment: "staging",
  source: "mobile",
});

export function onNavigation(screen: string) {
  void logger.info("screen.view", { screen });
}

export function reportClientError(error: unknown) {
  void logger.error("client.unhandled", { error: String(error) });
}