Vox
Vox
Sign UpIntroductionGetting StartedFrontend
AstroNext.jsNuxtSolidStartSvelteKitTanstack Start
Backend

Next.js

Add Vox to your Next.js project.

To add the backend integration to your Next.js project, you need to create a new file app/api/feedback/route.ts (App Router) or pages/api/feedback.ts (Pages Router) and add the following code:

App Router

import { createFeedbackHandler } from "voxjs/server";
import { NextRequest } from "next/server";
import { getServerSession } from "next-auth";
import { env } from "@/env";

export async function POST(request: NextRequest) {
	const session = await getServerSession(); // Your custom auth logic.

	if (!session) {
		return Response.json({ error: "Unauthorized" }, { status: 401 });
	}

	return createFeedbackHandler({
		apiKey: env.FEEDBACK_KEY, // Your Vox API key.
		tags: {
			app: "my-app", // Your app name.
			user: session.user?.email,
		},
	})(request);
}

Pages Router

import { createFeedbackHandler } from "voxjs/server";
import { NextApiRequest, NextApiResponse } from "next";
import { getServerSession } from "next-auth";
import { env } from "@/env";

export default async function handler(
	req: NextApiRequest,
	res: NextApiResponse
) {
	if (req.method !== "POST") {
		return res.status(405).json({ error: "Method not allowed" });
	}

	const session = await getServerSession({ req, res }); // Your custom auth logic.

	if (!session) {
		return res.status(401).json({ error: "Unauthorized" });
	}

	return createFeedbackHandler({
		apiKey: env.FEEDBACK_KEY, // Your Vox API key.
		tags: {
			app: "my-app", // Your app name.
			user: session.user?.email,
		},
	})(req);
}

Astro

Add Vox to your Astro project.

Nuxt

Add Vox to your Nuxt project.

On this page

App RouterPages Router