Skip to content
VibeAdmin
Via API / webhooks

An admin panel for your Next.js app

Next.js apps usually ship without any admin area. Instead of building /admin pages, call VibeAdmin from a server action or route handler when users sign up and when something important happens.

How it works with Next.js

Server-side calls to the REST API (or the JavaScript SDK). Keep the API key in a server environment variable; never expose it to the browser.

Set it up

  1. 1

    Add the key

    Create an API key and add VIBEADMIN_API_KEY to .env.local and your hosting provider's environment.

  2. 2

    Send users on signup

    Call the users endpoint from the code path that creates a user.

  3. 3

    Track events

    Call the events endpoint for actions you care about, such as workflow.created or payment.succeeded.

Code

Upsert a user from a server action

"use server";

export async function onSignup(user: { id: string; email: string; name?: string }) {
  await fetch("https://www.easy-admin.solutions/v1/users", {
    method: "POST",
    headers: { Authorization: `Bearer ${process.env.VIBEADMIN_API_KEY}`, "Content-Type": "application/json" },
    body: JSON.stringify({ id: user.id, email: user.email, name: user.name }),
  });
}

Track an event from a route handler

// app/api/run/route.ts
export async function POST(req: Request) {
  const { userId } = await req.json();
  // ... do the work ...
  await fetch("https://www.easy-admin.solutions/v1/events", {
    method: "POST",
    headers: { Authorization: `Bearer ${process.env.VIBEADMIN_API_KEY}`, "Content-Type": "application/json" },
    body: JSON.stringify({ name: "workflow.executed", userId }),
  });
  return Response.json({ ok: true });
}

Related: API reference, MCP server, pricing.

Give your app the admin it forgot

Free for up to 500 users. Connect Supabase, push users with the API, or paste one prompt into your coding agent.