Skip to Content
🎉 Nextra 4.0 is released. Dima Machina is looking for a new job or consulting.

Posts Page

The following code snippet demonstrates how to create /posts page.

app/posts/page.jsx
import Link from 'next/link' import { PostCard } from 'nextra-theme-blog' import { getPosts, getTags } from './get-posts' export const metadata = { title: 'Posts' } export default async function PostsPage() { const tags = await getTags() const posts = await getPosts() const allTags = Object.create(null) for (const tag of tags) { allTags[tag] ??= 0 allTags[tag] += 1 } return ( <div data-pagefind-ignore="all"> <h1>{metadata.title}</h1> <div className="not-prose" style={{ display: 'flex', flexWrap: 'wrap', gap: '.5rem' }} > {Object.entries(allTags).map(([tag, count]) => ( <Link key={tag} href={`/tags/${tag}`} className="nextra-tag"> {tag} ({count}) </Link> ))} </div> {posts.map(post => ( <PostCard key={post.route} post={post} /> ))} </div> ) }
Last updated on