基于 Next.js 与 Tailwind CSS 的博客起始模板,设计参考 Tailwindlabs 博客
notion-x-nextjs-tailwind-starter-blog — Next.js 作品集模板
作者 wenwkich
基于 Next.js 与 Tailwind CSS 的 Markdown/MDX 博客起始模板,内置标签、多作者、目录、评论与订阅等博客常用能力,并提供 Vercel 部署指引。
看看你的网站会是什么样
浏览真实页面截图,比较内容排版与手机效果。点击下方缩略图切换,放大查看整页细节。
全部页面与视图 3
截图用于了解视觉与布局,交互效果请以实际项目为准。
值得关注的模板亮点
从已有项目资料中,快速了解它的特点。
内容以 Markdown/MDX 撰写,可在文档中直接使用 JSX 与 React 组件
内置标签页、多作者、TOC 组件、嵌套路由与项目页
支持服务端语法高亮(行号与行高亮)、KaTeX 数学公式与 rehype-citation 引用
集成评论(giscus、utterances、disqus)与订阅组件(mailchimp、buttondown、convertkit、klaviyo、revue)
提供 RSS、站点地图与预配置安全响应头等 SEO 相关配置
模板详细介绍
该模板是一个 Next.js + Tailwind CSS 的博客起始项目,README 将其定位为功能较丰富的 Next.js Markdown 博客模板,设计参考 Tailwindlabs 博客,目标是替代 Jekyll、Hugo 等个人博客方案。内容以 Markdown/MDX 撰写,支持在文档中直接使用 JSX 与 React 组件,并通过 mdx-bundler 进行数据读取。
功能方面,README 列出:Tailwind 样式与主色属性定制、明暗主题、移动端适配、自托管字体、MDX 支持、服务端语法高亮(行号与行高亮)、KaTeX 数学公式、rehype-citation 引用与参考文献、next/image 图片优化、标签页、多作者、博客模板、TOC 组件、嵌套路由、订阅组件(mailchimp、buttondown、convertkit、klaviyo、revue)、评论(giscus、utterances、disqus)、项目页、预配置安全响应头、RSS 与站点地图等 SEO 相关配置。README 还提到生产构建使用 Preact,并给出 45kB 首次加载 JS 与 Lighthouse 报告链接,这些属于 README 自述,未在本介绍中展开。
使用与定制上,README 说明通过 degit 获取模板(提供 Contentlayer alpha、JS 官方支持、TypeScript 社区支持三种方式),随后需修改 siteMetadata.js、authors/default.md、projectsData.js、headerNavLinks.js,并按需调整 next.config.js 中的内容安全策略。文章 frontmatter 遵循 Hugo 标准,支持 title、date、tags、lastmod、draft、summary、images、authors、layout、canonicalUrl 等字段。
限制方面:README 未提供依赖清单中的具体框架版本号,也未说明该模板的生产就绪程度、性能基准或长期维护承诺;预览截图仅证明页面外观存在,不代表具体功能。
适合你的项目吗?
适用场景
- 搭建以 Markdown/MDX 撰写内容的个人技术博客
- 需要标签、多作者、目录与嵌套路由的博客站点
- 在文章中嵌入 JSX 或 React 组件进行交互式写作
- 需要评论、订阅组件与 RSS/站点地图的博客项目
适合人群
- 熟悉 Next.js 与 Tailwind CSS 的前端开发者
- 希望用 Markdown/MDX 管理博客内容的写作者
- 计划部署到 Vercel 的个人博客项目
上手与定制指南
结合仓库当前版本的说明,按下面的资料检查内容、配置与运行要求。
- 1
README 提供三种获取方式:Contentlayer(alpha)、JS(官方支持)与 TypeScript(社区支持),通过 degit 拉取
- 2
安装依赖后运行 npm start 或 npm run dev,在 http://localhost:3000 查看
- 3
需按 README 修改 siteMetadata.js、authors/default.md、projectsData.js、headerNavLinks.js 等文件
- 4
若使用 giscus 之外的评论方案或分析服务,需调整 next.config.js 中的内容安全策略
- 5
README 说明可部署到 Vercel,并给出 Next.js 部署文档链接
授权与来源资料
使用条件与限制
免费使用 · 保留许可声明本次收录的是公开仓库中采用 MIT 许可的免费版本;免费范围为该版本代码,不代表外部服务或第三方素材免费。
使用时需要遵守
- 允许免费使用、修改、商用和分发该版本代码。
- 分发代码副本或实质性部分时,保留原作者版权声明和完整 MIT 许可声明。
- 代码按现状提供;担保与责任限制以原许可证及适用法律为准。
额外费用与待核对事项
- README 提及 Firebase 集成;启用相关动态功能前需自行配置,并核对 Firebase 的额度与收费。
- 演示图片、字体、图标及其他第三方素材需按各自许可核对,不能仅凭代码的 MIT 许可判断。
- 域名、托管、数据库、支付或 AI 等外部服务可能另外收费。
- 部署到 Netlify、GitHub Pages、Firebase 等静态托管平台时,由于模板使用 next/image 进行图片优化,需要额外配置,或改用 Imgix、Cloudinary、Akamai 等替代图片优化服务,或将 next/image 替换为标准 <img> 标签。
- 订阅组件使用的 API 路由无法用于静态站点导出,需要改用表单 API 端点服务商并相应替换订阅组件中的路由。
- 若使用 giscus 之外的分析服务或评论方案,需要修改 next.config.js 中的内容安全策略。
查看原文依据
Permission is hereby granted, free of charge
许可证原文
As the template uses `next/image` for image optimization, additional configurations have to be made to deploy on other popular static hosting websites like [Netlify](https://www.netlify.com/) or [GitHub Pages](https://pages.github.com/). An alternative image optimization provider such as Imgix, Cloudinary or Akamai has to be used. Alternatively, replace the `next/image` component with a standard `<img>` tag. See [`next/image` documentation](https://nextjs.org/docs/basic-features/image-optimization) for more details.
README 原文
The API routes used in the newsletter component cannot be used in a static site export. You will need to use a form API endpoint provider and substitute the route in the newsletter component accordingly. Other hosting platforms such as Netlify also offer alternative solutions - please refer to their docs for more information.
README 原文
https://github.com/wenwkich/notion-x-nextjs-tailwind-starter-blog/blob/main/LICENSEhttps://github.com/wenwkich/notion-x-nextjs-tailwind-starter-blog/blob/main/README.mdany analytics provider or a commenting solution other than giscus.
README 原文
DeepSeek 根据仓库许可证和 README 整理 ·2026-10-13。结果仅覆盖已读取资料,依赖、图片、字体及后续条款变更以各自原文为准。
项目核对记录与介绍依据
模板资料
- 来源平台
- GitHub
- 资料与维护参考分
- 资料一般 · 73 / 100
- 技术栈
- Next.js · React
- 网站类型
- 作品集 · 博客 · 启动器
这个分数如何计算
本站按许可资料(最高30分)、演示链接(12分)、预览图(10分)、Star数(15分)、记录的维护时间(15分)、描述完整度(8分)、功能记录(5分)和分类资料(5分)计算。它不是代码、安全或性能测试,也不是 Google 评分;有链接不代表已实测可用。
这个项目需要核对什么
- 记录的仓库更新时间
- 2022-04-01
- 截图检查日期
- 2026-10-13
已收录演示链接。请用你的内容与屏幕尺寸检查;有演示不代表表单、认证或支付已经可用。
目录记录的主要技术栈是 Next.js。请通过依赖清单和锁文件核对实际版本与托管要求。这些说明基于收录资料,不代表代码审计或部署实测。
查看具体选型方法 →介绍的制作与核对状态
介绍由 AI 辅助整理目录与仓库资料。仓库作者不等于这篇介绍的审核者。
审核声明: codex-user-requested-batch-review-20261015 · 2026-10-15
查看当时使用的来源资料
SHA-256: 37853bbadafb463c47be053b5fb1fa2440b8979481605ddb2d8363589bd91ed0
2026-10-13T14:50:32.068Z
来源文件 / 仓库 # Tailwind Nextjs Starter Blog [](https://GitHub.com/timlrx/tailwind-nextjs-starter-blog/stargazers/) [](https://GitHub.com/timlrx/tailwind-nextjs-starter-blog/network/) [](https://twitter.com/timlrxx) [](https://github.com/sponsors/timlrx) [](https://vercel.com/new/git/external?repository-url=https://github.com/timlrx/tailwind-nextjs-starter-blog) This is a [Next.js](https://nextjs.org/), [Tailwind CSS](https://tailwindcss.com/) blogging starter template. Probably the most feature-rich Next.js markdown blogging template out there. Comes out of the box configured with the latest technologies to make technical writing a breeze. Easily configurable and customizable. Perfect as a replacement to existing Jekyll and Hugo individual blogs. Check out the documentation below to get started. Facing issues? Check the [FAQ page](https://github.com/timlrx/tailwind-nextjs-starter-blog/wiki) and do a search on past issues. Feel free to open a new issue if none has been posted previously. Feature request? Check the past discussions to see if it has been brought up previously. Otherwise, feel free to start a new discussion thread. All ideas are welcomed! ## Examples - [Demo Blog](https://tailwind-nextjs-starter-blog.vercel.app/) - this repo - [My personal blog](https://www.timlrx.com) - modified to auto-generate blog posts with dates - [Aloisdg's cookbook](https://tambouille.vercel.app/) - with pictures and recipes! - [GautierArcin's demo with next translate](https://tailwind-nextjs-starter-blog-seven.vercel.app/) - includes translation of mdx posts, [source code](https://github.com/GautierArcin/tailwind-nextjs-starter-blog/tree/demo/next-translate) - [David Levai's digital garden](https://davidlevai.com/) - customized design and added email subscriptions - [Thinh's Corner](https://thinhcorner.com/) - [customized layout](https://github.com/Th1nhNg0/th1nhng0.vercel.app/blob/5e73a420828d82f01e7147512a2c3273c4ec19f8/layouts/PostLayout.js) with sticky side table of contents - [Leo's Blog](https://leohuynh.dev) - Tuan Anh Huynh's personal site. Add Snippets Page, Author Profile Card, Image Lightbox, ... - [thvu.dev](https://thvu.dev) - Added `mdx-embed`, view count, reading minutes and more. - [fiqrychoerudin.dev](https://www.fiqrychoerudin.dev/) - simple portfolio. - [irvin.dev](https://www.irvin.dev/) - Irvin Lin's personal site. Added YouTube embedding. - [the all JavaScript Blog](https://the-all-javascript-blog.vercel.app/) - a JavaScript enlightenment blog uses this - [KirillSo.com](https://www.kirillso.com/) - Personal blog & website. - [DevBoy Blog](https://devboy.vercel.app/) - M.Reza's personal blog - [slightlysharpe.com](https://slightlysharpe.com) - [Tincre's](https://tincre.com) main company blog - [blog.b00st.com](https://blog.b00st.com) - [b00st.com's](https://b00st.com) main music promotion blog - [astrosaurus.me](https://astrosaurus.me/) - Ephraim Atta-Duncan's Personal Blog - [dhanrajsp.me](https://dhanrajsp.me/) - Dhanraj's personal site and blog. - [blog.r00ks.io](https://blog.r00ks.io/) - Austin Rooks's personal blog ([source code](https://github.com/Austionian/blog.r00ks)). - [honghong.me](https://honghong.me) - Tszhong's personal website ([source code](https://github.com/tszhong0411/home)) - [alfoncode.com](https://alfoncode.com) - Alfonso García's personar website. Customized design ([source code](https://github.com/alfoncode/personal-web)) - [marceloformentao.dev](https://marceloformentao.dev) - Marcelo Formentão personal website ([source code](https://github.com/marceloavf/marceloformentao.dev)). - [abiraja.com](https://www.abiraja.com/) - with a [runnable JS code snippet component!](https://www.abiraja.com/blog/querying-solana-blockchain) - [einargudni.com](https://www.einargudni.com) - with a customized theme, command pallette and more ([source code](https://github.com/einargudnig/einargudni.com)) - [bpiggin.com](https://www.bpiggin.com) - Ben Piggin's personal blog - [maqib.cn](https://maqib.cn) - A blog of Chinese front-end developers 狂奔小马的博客 ([源码](https://github.com/maqi1520/nextjs-tailwind-blog)) - [ambilena.com](https://ambilena.com/) - Electronic Music Blog & imprint for upcoming musicians. Using the template? Feel free to create a PR and add your blog to this list. ## Motivation I wanted to port my existing blog to Nextjs and Tailwind CSS but there was no easy out of the box template to use so I decided to create one. Design is adapted from [Tailwindlabs blog](https://github.com/tailwindlabs/blog.tailwindcss.com). I wanted it to be nearly as feature-rich as popular blogging templates like [beautiful-jekyll](https://github.com/daattali/beautiful-jekyll) and [Hugo Academic](https://github.com/wowchemy/wowchemy-hugo-modules) but with the best of React's ecosystem and current web development's best practices. ## Features - Easy styling customization with [Tailwind 3.0](https://tailwindcss.com/blog/tailwindcss-v3) and primary color attribute - Near perfect lighthouse score - [Lighthouse report](https://www.webpagetest.org/result/210111_DiC1_08f3670c3430bf4a9b76fc3b927716c5/) - Lightweight, 45kB first load JS, uses Preact in production build - Mobile-friendly view - Light and dark theme - Self-hosted font with [Fontsource](https://fontsource.org/) - Supports [plausible](https://plausible.io/), [simple analytics](https://simpleanalytics.com/) and google analytics - [MDX - write JSX in markdown documents!](https://mdxjs.com/) - Server-side syntax highlighting with line numbers and line highlighting via [rehype-prism-plus](https://github.com/timlrx/rehype-prism-plus) - Math display supported via [KaTeX](https://katex.org/) - Citation and bibliography support via [rehype-citation](https://github.com/timlrx/rehype-citation) - Automatic image optimization via [next/image](https://nextjs.org/docs/basic-features/image-optimization) - Flexible data retrieval with [mdx-bundler](https://github.com/kentcdodds/mdx-bundler) - Support for tags - each unique tag will be its own page - Support for multiple authors - Blog templates - TOC component - Support for nested routing of blog posts - Newsletter component with support for mailchimp, buttondown, convertkit, klaviyo and revue - Supports [giscus](https://github.com/laymonage/giscus), [utterances](https://github.com/utterance/utterances) or disqus - Projects page - Preconfigured security headers - SEO friendly with RSS feed, sitemaps and more! ## Sample posts - [A markdown guide](https://tailwind-nextjs-starter-blog.vercel.app/blog/github-markdown-guide) - [Learn more about images in Next.js](https://tailwind-nextjs-starter-blog.vercel.app/blog/guide-to-using-images-in-nextjs) - [A tour of math typesetting](https://tailwind-nextjs-starter-blog.vercel.app/blog/deriving-ols-estimator) - [Simple MDX image grid](https://tailwind-nextjs-starter-blog.vercel.app/blog/pictures-of-canada) - [Example of long prose](https://tailwind-nextjs-starter-blog.vercel.app/blog/the-time-machine) - [Example of Nested Route Post](https://tailwind-nextjs-starter-blog.vercel.app/blog/nested-route/introducing-multi-part-posts-with-nested-routing) ## Quick Start Guide 1. TypeScript and Contentlayer (alpha) ``` npx degit timlrx/tailwind-nextjs-starter-blog#contentlayer ``` or JS (official support) ```bash npx degit https://github.com/timlrx/tailwind-nextjs-starter-blog.git ``` or with TypeScript (community support) ```bash npx degit timlrx/tailwind-nextjs-starter-blog#typescript ``` 2. Personalize `siteMetadata.js` (site related information) 3. Modify the content security policy in `next.config.js` if you want to use any analytics provider or a commenting solution other than giscus. 4. Personalize `authors/default.md` (main author) 5. Modify `projectsData.js` 6. Modify `headerNavLinks.js` to customize navigation links 7. Add blog posts 8. Deploy on Vercel ## Installation ```bash npm install ``` ## Development First, run the development server: ```bash npm start ``` or ```bash npm run dev ``` Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. You can start editing the page by modifying `pages/index.js`. The page auto-updates as you edit the file. ## Extend / Customize `data/siteMetadata.js` - contains most of the site related information which should be modified for a user's need. `data/authors/default.md` - default author information (required). Additional authors can be added as files in `data/authors`. `data/projectsData.js` - data used to generate styled card on the projects page. `data/headerNavLinks.js` - navigation links. `data/logo.svg` - replace with your own logo. `data/blog` - replace with your own blog posts. `public/static` - store assets such as images and favicons. `tailwind.config.js` and `css/tailwind.css` - contain the tailwind stylesheet which can be modified to change the overall look and feel of the site. `css/prism.css` - controls the styles associated with the code blocks. Feel free to customize it and use your preferred prismjs theme e.g. [prism themes](https://github.com/PrismJS/prism-themes). `components/social-icons` - to add other icons, simply copy an svg file from [Simple Icons](https://simpleicons.org/) and map them in `index.js`. Other icons use [heroicons](https://heroicons.com/). `components/MDXComponents.js` - pass your own JSX code or React component by specifying it over here. You can then call them directly in the `.mdx` or `.md` file. By default, a custom link and image component is passed. `layouts` - main templates used in pages. `pages` - pages to route to. Read the [Next.js documentation](https://nextjs.org/docs) for more information. `next.config.js` - configuration related to Next.js. You need to adapt the Content Security Policy if you want to load scripts, images etc. from other domains. ## Post ### Frontmatter Frontmatter follows [Hugo's standards](https://gohugo.io/content-management/front-matter/). Currently 7 fields are supported. ``` title (required) date (required) tags (required, can be empty array) lastmod (optional) draft (optional) summary (optional) images (optional, if none provided defaults to socialBanner in siteMetadata config) authors (optional list which should correspond to the file names in `data/authors`. Uses `default` if none is specified) layout (optional list which should correspond to the file names in `data/layouts`) canonicalUrl (optional, canonical url for the post for SEO) ``` Here's an example of a post's frontmatter: ``` --- title: 'Introducing Tailwind Nexjs Starter Blog' date: '2021-01-12' lastmod: '2021-01-18' tags: ['next-js', 'tailwind', 'guide'] draft: false summary: 'Looking for a performant, out of the box template, with all the best in web technology to support your blogging needs? Checkout the Tailwind Nextjs Starter Blog template.' images: ['/static/images/canada/mountains.jpg', '/static/images/canada/toronto.jpg'] authors: ['default', 'sparrowhawk'] layout: PostLayout canonicalUrl: https://tailwind-nextjs-starter-blog.vercel.app/blog/introducing-tailwind-nextjs-starter-blog --- ``` ### Compose Run `node ./scripts/compose.js` to bootstrap a new post. Follow the interactive prompt to generate a post with pre-filled front matter. ## Deploy **Vercel** The easiest way to deploy the template is to use the [Vercel Platform](https://vercel.com) from the creators of Next.js. Check out the [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details. **Netlify / GitHub Pages / Firebase etc.** As the template uses `next/image` for image optimization, additional configurations have to be made to deploy on other popular static hosting websites like [Netlify](https://www.netlify.com/) or [GitHub Pages](https://pages.github.com/). An alternative image optimization provider such as Imgix, Cloudinary or Akamai has to be used. Alternatively, replace the `next/image` component with a standard `<img>` tag. See [`next/image` documentation](https://nextjs.org/docs/basic-features/image-optimization) for more details. The API routes used in the newsletter component cannot be used in a static site export. You will need to use a form API endpoint provider and substitute the route in the newsletter component accordingly. Other hosting platforms such as Netlify also offer alternative solutions - please refer to their docs for more information. ## Support Using the template? Support this effort by giving a star on GitHub, sharing your own blog and giving a shoutout on Twitter or becoming a project [sponsor](https://github.com/sponsors/timlrx). ## Licence [MIT](https://github.com/timlrx/tailwind-nextjs-starter-blog/blob/master/LICENSE) © [Timothy Lin](https://www.timrlx.com)
看看同类模板
对比同技术栈与用途的模板,找到更适合的视觉与内容结构。

ai-website-cloner-template
Clone any website with one command using AI coding agents
Next.js · 启动器

Next.js SaaS Starter
Next.js SaaS Starter 是 Next.js 官方维护的 SaaS 起点模板,定位介于学习资源和可直接部署的脚手架之间。
Next.js · SaaS

Next.js Commerce
Next.js Commerce 是 Vercel 团队维护的电商启动模板,基于 Next.js App Router 构建,采用服务端渲染、React Server Components、Server Actions …
Next.js · 电商

Next-js-Boilerplate
Next-js-Boilerplate 是一个面向 Next.js 16、Tailwind CSS 4 和 TypeScript 的启动器,核心定位是开发者体验优先。
Next.js · 启动器

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

next-forge
Production-grade Turborepo template for Next.js apps.
Next.js · 启动器
