MDX 博客内容由 Fumadocs 驱动,文章放在 content/blog/ 目录
shadcn-blog — Next.js 博客模板
作者 techwithanirudh
基于 Next.js 的博客模板,使用 shadcn/ui 与 Fumadocs 渲染 MDX 内容,并集成认证、评论、订阅邮件与数据库。
看看你的网站会是什么样
浏览真实页面截图,比较内容排版与手机效果。点击下方缩略图切换,放大查看整页细节。
全部页面与视图 3
截图用于了解视觉与布局,交互效果请以实际项目为准。
值得关注的模板亮点
从已有项目资料中,快速了解它的特点。
内置 Better Auth 认证与评论系统,数据经 Drizzle ORM 存入 Neon PostgreSQL
通过 Resend 集成订阅邮件,并提供 emails/ 目录存放邮件模板
包含 sitemap、RSS 与 OpenGraph 图片等 SEO 输出
使用 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 许可发布,演示图片、字体等第三方素材需单独核对授权。
适合你的项目吗?
适用场景
- 搭建带评论与订阅功能的个人技术博客
- 需要 MDX 写作流程并希望保留 Next.js 应用路由的项目
- 以 shadcn/ui 组件为基础二次开发内容站点
适合人群
- 熟悉 Next.js 与 React 的开发者
- 愿意自行配置 PostgreSQL、认证与邮件服务的团队
- 需要博客与文档混合内容形态的项目
上手与定制指南
结合仓库当前版本的说明,按下面的资料检查内容、配置与运行要求。
- 1
需要 Node.js 20+ 与 pnpm 10.7.0,先执行 pnpm install
- 2
复制 .env.example 为 .env,填写 DATABASE_URL、BETTER_AUTH_SECRET、BETTER_AUTH_URL 与 RESEND_API_KEY
- 3
使用 pnpm db:push 同步数据库结构,pnpm dev 启动本地开发服务器
- 4
站点信息、导航与社交链接分别在 src/constants/ 下的对应文件中修改
- 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 原文
https://github.com/techwithanirudh/shadcn-blog/blob/main/LICENSEhttps://github.com/techwithanirudh/shadcn-blog/blob/main/README.md- `BETTER_AUTH_SECRET`: Auth secret key
README 原文
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
看看同类模板
对比同技术栈与用途的模板,找到更适合的视觉与内容结构。

tailwind-nextjs-starter-blog
tailwind-nextjs-starter-blog 是一个面向个人技术博客的 Next.js 与 Tailwind CSS 启动模板,其 v2 版本基于 App Router 与 React Server Comp…
Next.js · 博客

Nextjs-tailwindcss-blog-template
⭐Build SEO optimized personal blog website with Next.js, Tailwind CSS and Contentlayer. If you want to learn t…
Next.js · 博客

nextjs-prisma-boilerplate
nemanjam/nextjs-prisma-boilerplate 是一个面向中小型全栈应用的生产级启动器,围绕 Next.js 12、React 18、Prisma 4 和 Postgres 构建。
Next.js · 文档

Next-js-Blog-Boilerplate
Next-js-Blog-Boilerplate 是一套面向个人与技术博客的启动代码,基于 Next.js 12 与 Tailwind CSS 3 构建,同时集成了 TypeScript、ESLint、Prettier …
Next.js · 博客

nextjs-blog-theme
nextjs-blog-theme 是 Netlify 团队维护的一个博客启动模板,基于 Next.js 15(Pages Router)和 Tailwind CSS 4.x 构建,设计由 Bejamas 机构完成。
Next.js · 博客

blog
🚀 My personal blog made with Tailwind CSS and NextJS. Template from Timlrx. Feel free to fork, follow and use…
Next.js · 博客
