bubble_chart
AI Hub
search

The Complete Guide to Building a Tech Blog with Next.js

Learn how to build an SEO-optimized tech blog step by step using Next.js 15 and MDX.

calendar_today
|
schedule2 min read

Why Next.js?

Next.js is a full-stack React framework that lets you build fast blogs through static site generation (SSG).

Key Advantages

  • Static Builds: Fast loading with HTML generated at build time
  • SEO Optimization: Easy SEO setup with the Metadata API
  • MDX Support: Use React components inside Markdown

Project Setup

Start by creating a new project:

Terminal
npx create-next-app@latest my-blog --typescript --tailwind

Directory Structure

my-blog/
├── content/
│   └── posts/          # MDX files
├── src/
│   ├── app/            # Pages
│   ├── components/     # Components
│   └── lib/            # Utilities
└── public/             # Static files

MDX Configuration

MDX lets you use React components inside Markdown.

src/lib/mdx.ts
import { compileMDX } from 'next-mdx-remote/rsc';
 
export async function compileMDXContent(source: string) {
  const { content } = await compileMDX({
    source,
    options: {
      mdxOptions: {
        remarkPlugins: [remarkGfm],
        rehypePlugins: [rehypeSlug, rehypePrettyCode],
      },
    },
  });
  return { content };
}
💡

Using next-mdx-remote allows you to compile MDX in server components, resulting in great build performance.

Code Syntax Highlighting

With rehype-pretty-code and shiki, you can implement beautiful code highlighting:

example.js
function greet(name) {
  // Greet if name exists
  if (name) {
    console.log(`Hello, ${name}!`);
  }
  return name;
}

SEO Optimization

Using the Next.js Metadata API, you can configure metadata for each page.

export async function generateMetadata({ params }) {
  const post = getPostBySlug(params.slug);
  return {
    title: post.title,
    description: post.description,
    openGraph: { ... },
  };
}

Conclusion

A blog built with Next.js and MDX is the ideal choice for developers. It's fast with static builds, easy to optimize for SEO, and convenient for writing posts in Markdown.

Share:

Related Posts