This package provides a simple way to integrate Fedify with Next.js.
Important
We recommend initializing your app using the init command of the
Fedify CLI rather than installing this package directly.
Important
This package relies on Next.js request interception on the Node.js runtime.
Therefore, you must use Next.js 15.4.6 or later.
On Next.js 16, proxy.ts is preferred and middleware.ts is deprecated but
still supported. If you switch to proxy.ts, omit runtime: "nodejs" from
the exported config, because Proxy always runs on the Node.js runtime.
For more details, refer to the official documentation of proxy.
// --- middleware.ts ---
import { fedifyWith } from "@fedify/next";
import { federation } from "./federation";
export default fedifyWith(federation)();
// This config must be defined in the same file.
export const config = {
runtime: "nodejs",
matcher: [
{
source: "/:path*",
has: [
{
type: "header",
key: "Accept",
value: ".*application\\/((jrd|activity|ld)\\+json|xrd\\+xml).*",
},
],
},
{
source: "/:path*",
has: [
{
type: "header",
key: "content-type",
value: ".*application\\/((jrd|activity|ld)\\+json|xrd\\+xml).*",
},
],
},
{ source: "/.well-known/nodeinfo" },
{ source: "/.well-known/x-nodeinfo2" },
],
};