Pagekit Docs

Guides

Next.js

App Router

// app/blog/page.tsx
import { Pagekit } from "@pagekit/sdk";

const pagekit = new Pagekit({ apiKey: process.env.PAGEKIT_API_KEY! });

export default async function BlogPage() {
  const posts = await pagekit.posts.list({ status: "published" });

  return (
    <ul>
      {posts.data.map((post) => (
        <li key={post.id}>
          <a href={`/blog/${post.slug}`}>{post.title}</a>
        </li>
      ))}
    </ul>
  );
}

ISR + webhook revalidation

// app/api/revalidate/route.ts
import { revalidatePath } from "next/cache";

export async function POST(request: Request) {
  const payload = await request.json();
  if (payload.event === "post.published") {
    revalidatePath(`/blog/${payload.data.slug}`);
    revalidatePath("/blog");
  }
  return Response.json({ revalidated: true });
}

Pages Router

import { Pagekit } from "@pagekit/sdk";

export async function getStaticProps() {
  const blog = new Pagekit({ apiKey: process.env.PAGEKIT_API_KEY! });
  const posts = await blog.posts.list({ status: "published" });

  return { props: { posts: posts.data }, revalidate: 60 };
}