使用 Next.js App Router、TypeScript 与 Tailwind CSS 构建
darshan-blog-temp — Next.js 博客模板
作者 darshanbajgain
基于 Next.js 的个人博客模板,使用 Markdown 管理文章,内置分类、代码高亮、SEO 元数据与 SendGrid、ConvertKit 集成。
看看你的网站会是什么样
浏览真实页面截图,比较内容排版与手机效果。点击下方缩略图切换,放大查看整页细节。
全部页面与视图 3
截图用于了解视觉与布局,交互效果请以实际项目为准。
值得关注的模板亮点
从已有项目资料中,快速了解它的特点。
Markdown 文章存放在 src/posts,通过 frontmatter 管理标题、日期、描述、分类、图片和作者
内置分类、标签、阅读时长计算、社交分享和图片优化
代码块支持语法高亮、语言标识和复制到剪贴板
联系表单集成 SendGrid,订阅表单集成 ConvertKit
提供暗色/亮色主题切换与响应式布局
模板详细介绍
该模板是面向开发者和内容创作者的 Next.js 博客起点,README 说明其使用 Next.js App Router、TypeScript 与 Tailwind CSS 构建,并采用 React Server Components。文章以 Markdown 文件存放在 src/posts 目录,通过 frontmatter 提供标题、日期、描述、分类、图片和作者等元数据,由 gray-matter 解析、remark 生态转换为 HTML,并支持 GFM 表格、代码语法高亮与复制按钮。模板包含首页、全部文章、分类、关于、联系等页面,以及联系表单和订阅表单的 API 路由。联系表单依赖 SendGrid,订阅功能依赖 ConvertKit,相关密钥通过 .env.local 配置。README 未说明部署流程、测试方式或生产环境下的具体表现,也未提供除 Vercel 预览链接之外的其他托管说明。
适合你的项目吗?
适用场景
- 开发者搭建个人技术博客并撰写 Markdown 文章
- 内容创作者需要带分类、SEO 元数据和社交分享的博客站点
- 通过 SendGrid 接收读者联系邮件,通过 ConvertKit 收集订阅者
- 在 Next.js App Router 项目中参考 Markdown 渲染与代码高亮实现
适合人群
- 熟悉 Next.js、TypeScript 和 Markdown 的开发者
- 希望以文件方式管理博客内容而非使用数据库的个人博主
- 需要联系表单和邮件订阅功能的独立内容创作者
上手与定制指南
结合仓库当前版本的说明,按下面的资料检查内容、配置与运行要求。
- 1
需要 Node.js 18.x 或更高版本,以及 npm 或 yarn
- 2
安装依赖时 README 建议使用 npm install --legacy-peer-deps 以避免 react19 的 peer dependency 问题
- 3
在根目录创建 .env.local,配置 SENDGRID_API_KEY、SENDGRID_FROM_EMAIL、SENDGRID_TO_EMAIL、CONVERTKIT_FORM_ID、CONVERTKIT_API_KEY、CONVERTKIT_TAG_ID 和 NEXT_PUBLIC_SITE_URL
- 4
联系表单需要 SendGrid 账号,订阅功能需要 ConvertKit 账号(可选)
- 5
运行 npm run dev 或 yarn dev 启动开发服务器,默认访问 http://localhost:3000
授权与来源资料
使用条件与限制
免费使用 · 保留许可声明本次收录的是公开仓库中采用 MIT 许可的免费版本;免费范围为该版本代码,不代表外部服务或第三方素材免费。
使用时需要遵守
- 允许免费使用、修改、商用和分发该版本代码。
- 分发代码副本或实质性部分时,保留原作者版权声明和完整 MIT 许可声明。
- 代码按现状提供;担保与责任限制以原许可证及适用法律为准。
额外费用与待核对事项
- 演示图片、字体、图标及其他第三方素材需按各自许可核对,不能仅凭代码的 MIT 许可判断。
- 域名、托管、数据库、支付或 AI 等外部服务可能另外收费。
- 联系表单功能需要注册 SendGrid 账号并配置 API 密钥,属于外部服务依赖。
- 订阅功能需要 ConvertKit 账号,README 标注为可选;不配置则无法使用该集成。
- 使用联系表单前必须在 .env.local 中提供 SendGrid API 密钥。
- 必须提供已在 SendGrid 验证的发件邮箱地址。
- 启用订阅功能需提供 ConvertKit 表单 ID。
- 启用订阅功能需提供 ConvertKit API 密钥。
- 启用订阅功能需提供 ConvertKit 标签 ID。
- 社交分享功能依赖正确配置站点 URL 环境变量。
- 安装依赖时需使用 --legacy-peer-deps 参数,否则可能因 react19 出现 peer dependency 问题。
查看原文依据
Permission is hereby granted, free of charge
许可证原文
- A SendGrid account (for contact form)
README 原文
- A ConvertKit account (for newsletter, optional)
README 原文
SENDGRID_API_KEY=your_sendgrid_api_key
README 原文
README 原文
CONVERTKIT_FORM_ID=your_form_id
README 原文
CONVERTKIT_API_KEY=your_api_key
README 原文
CONVERTKIT_TAG_ID=your_tag_id
README 原文
NEXT_PUBLIC_SITE_URL=https://yourdomain.com
README 原文
https://github.com/darshanbajgain/darshan-blog-temp/blob/main/LICENSEhttps://github.com/darshanbajgain/darshan-blog-temp/blob/main/README.mdnpm install --legacy-peer-deps
README 原文
DeepSeek 根据仓库许可证和 README 整理 ·2026-10-14。结果仅覆盖已读取资料,依赖、图片、字体及后续条款变更以各自原文为准。
项目核对记录与介绍依据
模板资料
- 来源平台
- GitHub
- 资料与维护参考分
- 资料较完整 · 83 / 100
- 技术栈
- Next.js · React
- 网站类型
- 博客
这个分数如何计算
本站按许可资料(最高30分)、演示链接(12分)、预览图(10分)、Star数(15分)、记录的维护时间(15分)、描述完整度(8分)、功能记录(5分)和分类资料(5分)计算。它不是代码、安全或性能测试,也不是 Google 评分;有链接不代表已实测可用。
这个项目需要核对什么
- 记录的仓库更新时间
- 2026-04-05
- 截图检查日期
- 2026-10-14
已收录演示链接。请用你的内容与屏幕尺寸检查;有演示不代表表单、认证或支付已经可用。
目录记录的主要技术栈是 Next.js。请通过依赖清单和锁文件核对实际版本与托管要求。这些说明基于收录资料,不代表代码审计或部署实测。
查看具体选型方法 →介绍的制作与核对状态
介绍由 AI 辅助整理目录与仓库资料。仓库作者不等于这篇介绍的审核者。
审核声明: codex-user-requested-batch-review-20261015 · 2026-10-15
查看当时使用的来源资料
SHA-256: 2e2def04701d399124415981a0493ff76d2fb2a589daf138493ace272cc4dc12
2026-10-14T07:22:18.295Z
来源文件 / 仓库<div align="center">
# Next.js Personal Blog Template
### A modern, responsive, and SEO-optimized blog platform for developers and content creators
[](https://opensource.org/licenses/MIT)
[](https://nextjs.org/)
[](https://www.typescriptlang.org/)
[](https://tailwindcss.com/)
</div>
## 📋 Overview
This Next.js blog template provides a complete solution for developers and content creators who want to build a professional, SEO-optimized blog. It combines modern web technologies with a clean, responsive design to deliver an exceptional user experience across all devices.
## 🌟 Key Features
### 💻 Technical Features
- **Modern Tech Stack**: Built with Next.js 15+, TypeScript, and Tailwind CSS V4+
- **App Router**: Utilizes Next.js App Router for improved routing and layouts
- **Server Components**: Leverages React Server Components for optimal performance
- **TypeScript**: Full type safety throughout the codebase
- **Fast Performance**: Optimized for Core Web Vitals and page speed
- **SEO Optimized**: Meta tags, Open Graph, structured data, and semantic HTML
### 🎨 Design & UX Features
- **Responsive Design**: Perfectly adapts to all devices (mobile, tablet, desktop)
- **Dark/Light Mode**: Automatic theme detection with manual toggle option
- **Clean Typography**: Optimized reading experience with Geist font family
- **Animations**: Subtle animations for enhanced user experience
- **Accessible UI**: WCAG compliant components and keyboard navigation
### 📝 Content Features
- **Markdown Support**: Write blog posts in Markdown with frontmatter
- **Enhanced Code Blocks**: Beautiful syntax highlighting with copy-to-clipboard functionality
- **Custom Bullet Points**: Stylish bullet points with hover effects and special feature lists
- **Table Support**: Responsive tables that work on all screen sizes
- **Image Optimization**: Automatic image optimization with Next.js Image
- **Categories/Tags**: Organize content with a powerful categorization system
- **Reading Time**: Automatic calculation of post reading time
### 🔌 Integration Features
- **Contact Form**: SendGrid integration for reliable email delivery
- **Newsletter**: ConvertKit integration for building your audience
- **Social Sharing**: Easy sharing of blog posts to social media
- **Analytics Ready**: Prepared for Google Analytics or other tracking tools
- **Toast Notifications**: User-friendly feedback for form submissions
## 📋 Prerequisites
- Node.js 18.x or later
- npm or yarn
- A SendGrid account (for contact form)
- A ConvertKit account (for newsletter, optional)
## 🚀 Getting Started
### Installation
1. Clone this repository:
```bash
https://github.com/darshanbajgain/darshan-blog-temp.git
cd darshan-blog-temp
```
2. Install dependencies:
```bash
npm install --legacy-peer-deps
```
use `--legacy-peer-deps` to avoid peer dependency issues, as this uses react19
3. Create a `.env.local` file in the root directory with the following variables:
```
# SendGrid Configuration (for contact form)
SENDGRID_API_KEY=your_sendgrid_api_key
[email protected]
[email protected]
# ConvertKit Configuration (for newsletter, optional)
CONVERTKIT_FORM_ID=your_form_id
CONVERTKIT_API_KEY=your_api_key
CONVERTKIT_TAG_ID=your_tag_id
# Site URL (used for social sharing)
NEXT_PUBLIC_SITE_URL=https://yourdomain.com
```
4. Run the development server:
```bash
npm run dev
# or
yarn dev
```
5. Open [http://localhost:3000](http://localhost:3000) in your browser to see the result.
## 📝 Creating and Managing Blog Posts
### Blog Post Structure
Blog posts are written in Markdown and stored in the `src/posts` directory. Each post follows a specific structure for optimal SEO and rendering:
```markdown
---
title: "Your SEO-Optimized Post Title"
date: "2025-05-15"
description: "A comprehensive meta description (150-160 characters) that summarizes your post for better SEO"
categories: ["Next.js", "React", "Web Development"]
image: "/images/your-post-image.jpg"
author: "Your Name"
---
Your post content goes here with proper heading structure (H2, H3, etc.)
```
### Frontmatter Fields
| Field | Description | Required | SEO Impact |
|-------|-------------|----------|------------|
| `title` | The title of your blog post | Yes | High |
| `date` | Publication date (YYYY-MM-DD format) | Yes | Medium |
| `description` | A brief summary of your post | Yes | High |
| `categories` | Array of categories for classification | No | Medium |
| `image` | Featured image path (from public directory) | No | Medium |
| `author` | Post author name | No | Low |
### Content Best Practices
- Use proper heading hierarchy (H2 for sections, H3 for subsections)
- Include relevant keywords naturally throughout the content
- Keep paragraphs concise and focused on a single idea
- Use lists and tables to organize information when appropriate
- Include code examples with proper syntax highlighting
### Adding Images to Posts
1. Place your images in the `public/images` directory
2. Optimize images before adding them to the project
3. Reference them in your markdown using standard syntax:
```markdown

```
4. For responsive images, the template automatically handles proper sizing
### How Blog Posts are Processed
The blog post rendering pipeline works as follows:
1. **File Discovery**: The system scans the `src/posts` directory for `.md` files
2. **Frontmatter Parsing**: Using `gray-matter`, the frontmatter metadata is extracted
3. **Markdown Conversion**: The `remark` ecosystem converts Markdown content to HTML
4. **HTML Rendering**: The HTML is rendered with proper styling via Tailwind's Typography plugin
5. **SEO Optimization**: Metadata is used to generate SEO tags and structured data
## 🎨 Customization
### Changing Colors and Theme
The template uses Tailwind CSS for styling. You can customize the colors by editing the `tailwind.config.js` file.
### Updating Personal Information
1. Update the site metadata in `src/app/layout.tsx`
2. Modify the About page content in `src/app/about/page.tsx`
3. Update social links in `src/components/main/Footer.tsx`
### Customizing Components
All UI components are located in the `src/components` directory and can be modified to suit your needs.
## 📦 Project Structure
```text
├── public/ # Static assets
│ ├── images/ # Blog post images
│ └── ...
├── src/
│ ├── app/ # Next.js App Router
│ │ ├── about/ # About page
│ │ ├── api/ # API routes
│ │ │ ├── contact/ # Contact form API
│ │ │ └── subscribe/ # Newsletter API
│ │ ├── categories/ # Categories pages
│ │ ├── contact/ # Contact page
│ │ ├── posts/ # Blog post pages
│ │ │ └── [slug]/ # Dynamic post routes
│ │ ├── all-posts/ # All posts page
│ │ ├── globals.css # Global styles
│ │ └── layout.tsx # Root layout with metadata
│ ├── components/ # React components
│ │ ├── blog/ # Blog-specific components
│ │ │ ├── FeaturedPost.tsx # Featured post component
│ │ │ ├── LatestPost.tsx # Latest posts component
│ │ │ ├── PostGrid.tsx # Post grid display
│ │ │ └── SocialShare.tsx # Social sharing
│ │ ├── main/ # Main layout components
│ │ │ ├── Footer.tsx # Site footer
│ │ │ ├── Header.tsx # Site header
│ │ │ └── Newsletter.tsx # Newsletter form
│ │ └── ui/ # Reusable UI components
│ │ ├── button.tsx # Button component
│ │ ├── card.tsx # Card component
│ │ ├── table.tsx # Table component
│ │ └── ... # Other UI components
│ ├── lib/ # Utility functions
│ │ ├── post.ts # Blog post processing
│ │ ├── convertkit.ts # ConvertKit integration
│ │ └── utils.ts # General utilities
│ ├── posts/ # Markdown blog posts
│ │ ├── example-post-1.md # Example blog post
│ │ └── example-post-2.md # Example blog post
│ ├── store/ # State management
│ │ └── blog-store.ts # Blog state with Zustand
│ └── theme/ # Theme configuration
├── .env.local.example # Example environment variables
├── next.config.js # Next.js configuration
├── package.json # Project dependencies
├── tailwind.config.js # Tailwind CSS configuration
└── tsconfig.json # TypeScript configuration
```
### Key Files and Their Purposes
- **`src/lib/post.ts`**: Core file that handles blog post processing, including:
- Reading Markdown files from the `src/posts` directory
- Parsing frontmatter with `gray-matter`
- Converting Markdown to HTML with `remark` and `remark-html`
- Sorting posts by date
- Extracting metadata for SEO
- **`src/app/posts/[slug]/page.tsx`**: Dynamic route for individual blog posts that:
- Fetches post content based on the URL slug
- Generates metadata for SEO
- Calculates reading time
- Renders the post with proper styling
- Provides social sharing functionality
## 🔧 Key Implementation Details
### Blog Post Rendering System
The blog post rendering system is a core feature of this template, providing a seamless way to create, manage, and display content:
#### Processing Pipeline
1. **File Discovery**: The system scans the `src/posts` directory for Markdown (`.md`) files
2. **Metadata Extraction**: Using `gray-matter`, the frontmatter metadata is parsed from each file
3. **Markdown Processing**: The content is processed through a unified pipeline:
- `remarkParse`: Parses markdown content into an AST
- `remarkGfm`: Adds GitHub Flavored Markdown support (tables, autolinks, etc.)
- `remarkRehype`: Converts markdown AST to HTML AST
- `rehypeHighlight`: Applies syntax highlighting to code blocks
- `rehypeStringify`: Converts HTML AST to HTML string
4. **Client-Side Enhancement**: The `MarkdownContent` component enhances the rendered HTML:
- Adds language indicators to code blocks (positioned at top-left)
- Adds copy-to-clipboard buttons to code blocks (positioned at top-right)
- Applies special styling to feature lists that follow headings
5. **Reading Time Calculation**: Estimated reading time is calculated based on word count
#### Key Components
- **`src/lib/post.ts`**: Contains the core functions for processing blog posts:
```typescript
// Process markdown content through the unified pipeline
async function processMarkdown(content: string): Promise<string> { ... }
// Main functions for blog post handling (async)
export async function getAllPosts(): Promise<Post[]> { ... } // Gets all blog posts sorted by date
export async function getPostBySlug(slug: string): Promise<Post> { ... } // Gets a specific post by slug
```
- **`src/app/posts/[slug]/page.tsx`**: Server component that renders individual blog posts with:
- Async data fetching using `getPostBySlug`
- Dynamic routing based on post slug
- SEO metadata generation with Next.js Metadata API
- Reading time calculation
- Social sharing functionality
- Responsive layout
- **`src/components/blog/MarkdownContent.tsx`**: Client component that enhances rendered HTML:
- Uses React refs and useEffect to manipulate the DOM after rendering
- Adds copy buttons to code blocks with clipboard API integration
- Adds language indicators to code blocks
- Applies special styling to lists that follow headings
#### Styling and Typography
Blog posts are styled using a combination of:
1. **Tailwind's Typography Plugin**: Provides beautiful typography defaults for the main content
2. **Custom CSS Files**:
- `highlight.css`: Custom styling for code blocks, bullet points, and feature lists
- `hljs.css`: Imports and extends highlight.js theme for syntax highlighting
3. **Client-side DOM Manipulation**: The MarkdownContent component adds classes and attributes to enhance styling
These approaches work together to create a cohesive styling system that includes:
- **Enhanced Code Blocks**:
- Syntax highlighting with highlight.js through rehype-highlight
- Language indicator badges positioned at the top-left corner
- Copy-to-clipboard functionality with success feedback at the top-right corner
- Responsive design that adapts to all screen sizes
- GitHub-inspired dark theme for better readability
- **Beautiful Bullet Points**:
- Custom arrow-style bullets with hover effects
- Special feature lists with checkmark bullets
- Task lists with custom checkbox styling
- **Responsive Elements**:
- Tables that adapt to screen size
- Images with proper sizing and borders
- Blockquotes with distinctive styling
- Headings with proper hierarchy and spacing
### Contact Form with SendGrid
The contact form uses the SendGrid API to send emails. The implementation includes:
- A client-side form with validation in `src/app/contact/page.tsx`
- A server-side API route in `src/app/api/contact/route.ts`
- Toast notifications for user feedback
### Newsletter with ConvertKit
The newsletter subscription form integrates with ConvertKit:
- A client-side form component in `src/components/NewsletterForm.tsx`
- A server-side API route in `src/app/api/subscribe/route.ts`
### Dark Mode
The template uses a dark mode theme by default, implemented with:
- Theme provider in `src/theme/theme-provider.tsx`
- CSS variables for theme colors
- Tailwind CSS dark mode configuration
## 📱 Responsive Design
The template is fully responsive and looks great on all devices:
- Mobile-first approach with Tailwind CSS
- Responsive navigation with mobile menu
- Properly sized images and typography
- Optimized layouts for different screen sizes
## 🔍 SEO Optimization
This template is built with SEO as a priority, implementing numerous best practices to help your content rank well in search engines:
### Metadata and Tags
- **Dynamic Metadata Generation**: Each page and blog post automatically generates appropriate metadata
- **Open Graph Protocol**: Social sharing metadata for Facebook, Twitter, and other platforms
- **Canonical URLs**: Properly configured canonical URLs to prevent duplicate content issues
- **Structured Data**: JSON-LD structured data for rich search results
### Content Optimization
- **Semantic HTML**: Proper heading hierarchy and semantic elements for better accessibility and SEO
- **Optimized Images**: Images include alt text and are properly sized for fast loading
- **Responsive Design**: Mobile-friendly design that passes Google's mobile usability tests
- **URL Structure**: Clean, descriptive URLs for better user experience and SEO
### Performance Optimization
- **Fast Page Loading**: Optimized for Core Web Vitals metrics
- **Server-Side Rendering**: Critical content is rendered server-side for faster indexing
- **Static Generation**: Blog posts use static generation for optimal performance
- **Minimal JavaScript**: Reduced client-side JavaScript for faster loading and better SEO
### SEO Implementation Details
The SEO implementation is primarily handled in these files:
- **`src/app/layout.tsx`**: Contains the default metadata for the site
- **`src/app/posts/[slug]/page.tsx`**: Generates dynamic metadata for each blog post
- **`src/lib/post.ts`**: Extracts SEO-relevant information from blog post frontmatter
## 📈 Performance
The template is optimized for performance:
- Static generation for blog posts
- Optimized images with proper sizing
- Minimal JavaScript with efficient React components
- Fast page loads with Next.js optimizations
## 🤝 Contributing to This Open Source Project
Contributions are highly encouraged and appreciated! This project aims to provide a high-quality, feature-rich blog template for developers and content creators.
### Ways to Contribute
- **Bug Reports**: If you find a bug, please create an issue with detailed steps to reproduce
- **Feature Requests**: Have an idea for a new feature? Open an issue to discuss it
- **Code Contributions**: Submit pull requests for bug fixes or new features
- **Documentation**: Help improve the documentation or add more examples
- **Testing**: Test the template on different devices and browsers
### Contribution Guidelines
1. **Fork the repository** and create your branch from `main`
2. **Install dependencies** with `npm install --legacy-peer-deps`
3. **Make your changes** and ensure they follow the project's coding style
4. **Test your changes** thoroughly
5. **Update documentation** if necessary
6. **Submit a pull request** with a clear description of the changes
### Development Workflow
```bash
# Clone your fork
git clone https://github.com/your-username/nextjs-blog-template.git
cd nextjs-blog-template
# Install dependencies
npm install --legacy-peer-deps
# Start development server
npm run dev
# Build for production
npm run build
```
All contributions will be reviewed and merged if they align with the project's goals and quality standards.
## 📄 License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
```text
MIT License
Copyright (c) 2025 Darshan Bajgain
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
```
## 🙏 Acknowledgements
This project wouldn't be possible without these amazing open-source projects:
- [Next.js](https://nextjs.org/) - The React framework for production
- [Tailwind CSS](https://tailwindcss.com/) - A utility-first CSS framework
- [shadcn/ui](https://ui.shadcn.com/) - Beautifully designed components
- [Lucide Icons](https://lucide.dev/) - Beautiful & consistent icons
- [SendGrid](https://sendgrid.com/) - Email delivery service
- [ConvertKit](https://convertkit.com/) - Email marketing for creators
- [gray-matter](https://github.com/jonschlinkert/gray-matter) - Front matter parser
- [unified](https://unifiedjs.com/) - Interface for processing content with plugins
- [remark](https://remark.js.org/) - Markdown processor powered by plugins
- [remark-gfm](https://github.com/remarkjs/remark-gfm) - GitHub Flavored Markdown support
- [remark-rehype](https://github.com/remarkjs/remark-rehype) - Transform markdown to HTML
- [rehype-highlight](https://github.com/rehypejs/rehype-highlight) - Syntax highlighting with highlight.js
- [rehype-stringify](https://github.com/rehypejs/rehype/tree/main/packages/rehype-stringify) - Serialize HTML
- [highlight.js](https://highlightjs.org/) - Syntax highlighting for code blocks
---
<div align="center">
### Made by [Darshan Bajgain](https://github.com/darshanbajgain)
If you find this project helpful, please consider giving it a star ⭐
</div>
看看同类模板
对比同技术栈与用途的模板,找到更适合的视觉与内容结构。

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

Nextjs-tailwindcss-blog-template
使用 Tailwind CSS 的 Next.js 博客。当前分支通过 Velite 处理 Markdown,早期 Contentlayer 实现保留在单独的历史分支中。
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 · 博客

tailnext
Tailnext 是一个基于 Next.js 14 App Router 和 Tailwind CSS 的免费开源模板,由 onWidget 团队创建并维护。
Next.js · 博客
