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 };
}