Next.jsReact博客文档

shadcn-blog — Next.js 博客模板

作者 techwithanirudh

基于 Next.js 的博客模板,使用 shadcn/ui 与 Fumadocs 渲染 MDX 内容,并集成认证、评论、订阅邮件与数据库。

看看你的网站会是什么样

浏览真实页面截图,比较内容排版与手机效果。点击下方缩略图切换,放大查看整页细节。

3 个预览视图
桌面端首页1 / 3
桌面端截图首屏预览

由服务器浏览器实际访问页面后截取。

全部页面与视图 3

截图用于了解视觉与布局,交互效果请以实际项目为准。

采集于 2026-10-03查看来源

值得关注的模板亮点

从已有项目资料中,快速了解它的特点。

01

MDX 博客内容由 Fumadocs 驱动,文章放在 content/blog/ 目录

02

内置 Better Auth 认证与评论系统,数据经 Drizzle ORM 存入 Neon PostgreSQL

03

通过 Resend 集成订阅邮件,并提供 emails/ 目录存放邮件模板

04

包含 sitemap、RSS 与 OpenGraph 图片等 SEO 输出

05

使用 shadcn/ui 组件与 Tailwind CSS 构建界面,Biome 负责代码检查与格式化

模板详细介绍

这是一个面向个人或团队博客的 Next.js 模板,内容以 MDX 文件形式存放在 content/blog/ 目录,由 Fumadocs 负责解析与呈现,因此写作流程接近静态站点,但页面由 Next.js 应用目录路由渲染。

除文章展示外,模板还包含用户认证(Better Auth)、评论系统、订阅邮件(Resend)以及基于 Drizzle ORM 与 Neon PostgreSQL 的数据层,并预留了 sitemap、RSS 与 OpenGraph 图片等 SEO 相关输出。

使用前需要自行准备数据库连接、认证密钥与邮件服务 API Key,并复制 .env.example 配置环境变量;仓库以 MIT 许可发布,演示图片、字体等第三方素材需单独核对授权。

Next.js博客文档

适合你的项目吗?

适用场景

  • 搭建带评论与订阅功能的个人技术博客
  • 需要 MDX 写作流程并希望保留 Next.js 应用路由的项目
  • 以 shadcn/ui 组件为基础二次开发内容站点

适合人群

  • 熟悉 Next.js 与 React 的开发者
  • 愿意自行配置 PostgreSQL、认证与邮件服务的团队
  • 需要博客与文档混合内容形态的项目

上手与定制指南

结合仓库当前版本的说明,按下面的资料检查内容、配置与运行要求。

  1. 1

    需要 Node.js 20+ 与 pnpm 10.7.0,先执行 pnpm install

  2. 2

    复制 .env.example 为 .env,填写 DATABASE_URL、BETTER_AUTH_SECRET、BETTER_AUTH_URL 与 RESEND_API_KEY

  3. 3

    使用 pnpm db:push 同步数据库结构,pnpm dev 启动本地开发服务器

  4. 4

    站点信息、导航与社交链接分别在 src/constants/ 下的对应文件中修改

  5. 5

    代码为 MIT 许可,但演示图片、字体、图标等第三方素材需单独确认授权

查看仓库使用说明

授权与来源资料

使用条件与限制

免费使用 · 保留许可声明

本次收录的是公开仓库中采用 MIT 许可的免费版本;免费范围为该版本代码,不代表外部服务或第三方素材免费。

使用时需要遵守

  • 允许免费使用、修改、商用和分发该版本代码。
  • 分发代码副本或实质性部分时,保留原作者版权声明和完整 MIT 许可声明。
  • 代码按现状提供;担保与责任限制以原许可证及适用法律为准。

额外费用与待核对事项

  • 使用该模板必须自行提供 Neon PostgreSQL 数据库连接字符串,需注册并配置外部数据库服务,否则无法运行。
  • 订阅邮件功能依赖 Resend 服务,需自行申请 API Key 并承担相应服务成本,否则邮件相关功能不可用。
  • 认证功能需要自行生成并配置 BETTER_AUTH_SECRET 密钥,属于部署前必须完成的配置项。
  • 演示图片、字体、图标及其他第三方素材需按各自许可核对,不能仅凭代码的 MIT 许可判断。
  • 域名、托管、数据库、支付或 AI 等外部服务可能另外收费。
查看原文依据

Permission is hereby granted, free of charge

许可证原文

Required variables: - `DATABASE_URL`: Neon PostgreSQL connection string

README 原文

- `RESEND_API_KEY`: For newsletter emails

README 原文

- `BETTER_AUTH_SECRET`: Auth secret key

README 原文
https://github.com/techwithanirudh/shadcn-blog/blob/main/LICENSEhttps://github.com/techwithanirudh/shadcn-blog/blob/main/README.md

DeepSeek 根据仓库许可证和 README 整理 ·2026-10-03。结果仅覆盖已读取资料,依赖、图片、字体及后续条款变更以各自原文为准。

项目核对记录与介绍依据

模板资料

来源平台
GitHub
资料与维护参考分
资料较完整 · 92 / 100
技术栈
Next.js · React
网站类型
博客 · 文档
这个分数如何计算

本站按许可资料(最高30分)、演示链接(12分)、预览图(10分)、Star数(15分)、记录的维护时间(15分)、描述完整度(8分)、功能记录(5分)和分类资料(5分)计算。它不是代码、安全或性能测试,也不是 Google 评分;有链接不代表已实测可用。

这个项目需要核对什么

记录的仓库更新时间
2026-01-25
截图检查日期
2026-10-03

已收录演示链接。请用你的内容与屏幕尺寸检查;有演示不代表表单、认证或支付已经可用。

目录记录的主要技术栈是 Next.js。请通过依赖清单和锁文件核对实际版本与托管要求。这些说明基于收录资料,不代表代码审计或部署实测。

查看具体选型方法 →

介绍的制作与核对状态

介绍由 AI 辅助整理目录与仓库资料。仓库作者不等于这篇介绍的审核者。

已完成服务器许可规则与 AI 来源核对;未经过人工编辑审核。

查看当时使用的来源资料

SHA-256: d16b9612022168a7fef42bc026d1f91d3a2f40ef5e83aa0413f5068714706ccd

2026-10-03T00:42:39.631Z

来源文件 / 仓库
# Modern Blog Template

A modern, fully-featured blog template built with the latest web technologies. Includes user authentication, comments, newsletter signup, and more.

## Features

- **Modern Stack**: Next.js 16, React 19, TypeScript 5.9
- **Content Management**: MDX-powered blog posts with Fumadocs
- **User Features**: Authentication with Better Auth, commenting system
- **Developer Experience**: Biome for linting/formatting, TypeScript, Tailwind CSS
- **SEO Optimized**: Sitemap, RSS feed, OpenGraph images
- **Database**: Drizzle ORM with Neon PostgreSQL
- **Email**: Newsletter integration with Resend
- **Styling**: Tailwind CSS with shadcn/ui components

## Getting Started

### Prerequisites

- Node.js 20+ (see `.nvmrc`)
- pnpm 10.7.0

### Installation

```bash
pnpm install
```

### Environment Setup

Copy `.env.example` to `.env` and fill in your environment variables:

```bash
cp .env.example .env
```

Required variables:
- `DATABASE_URL`: Neon PostgreSQL connection string
- `BETTER_AUTH_SECRET`: Auth secret key
- `BETTER_AUTH_URL`: Your app URL
- `RESEND_API_KEY`: For newsletter emails

### Development

```bash
pnpm dev
```

Open [http://localhost:3000](http://localhost:3000) to see your blog.

## Available Commands

- `pnpm dev`: Start development server
- `pnpm build`: Build for production
- `pnpm start`: Start production server
- `pnpm check`: Run Biome linter
- `pnpm check:write`: Auto-fix linting issues
- `pnpm typecheck`: Run TypeScript type checking
- `pnpm db:push`: Push database schema changes
- `pnpm db:studio`: Open Drizzle Studio

## Project Structure

```
├── content/
│   └── blog/           # Blog posts (MDX)
├── emails/             # Email templates
├── public/             # Static assets
├── scripts/            # Build scripts
├── src/
│   ├── app/            # Next.js app directory
│   │   ├── (home)/     # Main site routes
│   │   │   └── (blog)/ # Blog routes
│   │   ├── (auth)/     # Authentication pages
│   │   ├── (llms)/     # LLM-readable content
│   │   └── api/        # API routes
│   ├── components/     # React components
│   │   ├── ui/         # shadcn/ui components
│   │   ├── sections/   # Layout sections
│   │   └── blog/       # Blog-specific components
│   ├── constants/      # App constants
│   ├── lib/            # Utilities and helpers
│   ├── server/         # Server-side code
│   │   ├── auth/       # Authentication
│   │   ├── comments/   # Comment system
│   │   └── db/         # Database
│   └── styles/         # Global styles
└── source.config.ts    # Fumadocs configuration
```

## Writing Blog Posts

Create a new MDX file in `content/blog/`:

```mdx
---
title: Your Post Title
description: A brief description
date: 2026-01-24
author: Your Name
tags: [nextjs, react, typescript]
image: /images/blog/cover.jpg
---

Your content here...
```

## Customization

1. **Site Configuration**: Update `src/constants/site.ts`
2. **Navigation**: Edit `src/constants/navigation/links.tsx`
3. **Social Links**: Update `src/constants/navigation/social.tsx`
4. **Styling**: Modify `src/styles/globals.css` and Tailwind config

## Technologies

- **Framework**: [Next.js 16](https://nextjs.org/)
- **React**: [React 19](https://react.dev/)
- **TypeScript**: [TypeScript 5.9](https://www.typescriptlang.org/)
- **Styling**: [Tailwind CSS 4](https://tailwindcss.com/)
- **UI Components**: [shadcn/ui](https://ui.shadcn.com/)
- **Content**: [Fumadocs](https://fumadocs.vercel.app/)
- **Database**: [Drizzle ORM](https://orm.drizzle.team/) + [Neon](https://neon.tech/)
- **Authentication**: [Better Auth](https://www.better-auth.com/)
- **Email**: [Resend](https://resend.com/)
- **Linting**: [Biome](https://biomejs.dev/)

## License

MIT
反馈内容错误

看看同类模板

对比同技术栈与用途的模板,找到更适合的视觉与内容结构。