Next.jsReact作品集

portfolio-next — Next.js 作品集模板

作者 mandharet

基于 Next.js 15、TypeScript 与 Tailwind CSS 4 的开源个人作品集模板,通过 YAML 配置个人信息,用 MDX 撰写博客、项目与经历内容。

看看你的网站会是什么样

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

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

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

全部页面与视图 2

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

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

值得关注的模板亮点

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

01

使用 YAML 文件(site、personal、home、about)配置站点信息与页面内容,无需改动代码

02

博客、项目、经历均以 MDX 撰写,支持 frontmatter 字段与 React 组件

03

集成 Giscus 评论,基于 GitHub Discussions,需按 README 步骤配置仓库与分类 ID

04

支持 Mermaid 图表与 Markdown 表格,代码块带语法高亮和复制按钮

05

包含深色/浅色模式切换、移动端导航,以及 sitemap、metadata、结构化数据等 SEO 配置

06

技术栈为 Next.js 15、TypeScript、Tailwind CSS 4、MDX、shadcn/ui 等,采用静态生成

模板详细介绍

这是一个面向开发者、设计师与创作者的开源个人作品集模板。README 说明其使用 Next.js 15、TypeScript、Tailwind CSS 4 构建,并采用 YAML 配置文件管理站点信息与页面内容:site.yaml 存放姓名、标题、域名、邮箱、描述与关键词,personal.yaml 存放社交链接与简历,home.yaml 与 about.yaml 分别对应首页和关于页内容。博客、项目与经历内容以 .mdx 文件放在 src/content/ 下,通过 frontmatter 定义标题、日期、标签、技术栈、链接等字段,内容会自动出现在站点中。模板包含首页 hero 区、关于页、博客、项目展示卡片、经历时间线,并支持 Giscus 评论、Mermaid 图表、Markdown 表格、代码高亮与复制按钮、深色/浅色模式切换和移动端导航。README 还提到 SEO 相关的 sitemap、metadata 与结构化数据,以及静态生成。部署方面给出 Vercel 与 Netlify 两种方式,Netlify 的构建命令为 bun run build、发布目录为 out。README 未说明具体性能指标、浏览器兼容范围或无障碍支持情况。

Next.js作品集

适合你的项目吗?

适用场景

  • 开发者搭建包含博客与项目展示的个人作品集网站
  • 设计师或创作者用 MDX 文章和项目卡片呈现作品与经历
  • 需要 Giscus 评论、Mermaid 架构图与代码高亮的技术博客
  • 希望用 YAML 集中管理站点文案、社交链接与 SEO 信息的个人站点

适合人群

  • 熟悉或愿意使用 Next.js 与 TypeScript 的开发者
  • 需要博客、项目、经历三类内容结构的个人站点作者
  • 倾向用 Markdown/MDX 写作并希望内容自动生成页面的用户
  • 计划部署到 Vercel 或 Netlify 的个人项目

上手与定制指南

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

  1. 1

    克隆仓库后使用 bun install 安装依赖(README 以 bun 为例)

  2. 2

    编辑 src/config/site.yaml、personal.yaml、home.yaml、about.yaml 填入个人信息

  3. 3

    更新 YAML 后还需同步修改 src/app/opengraph-image.tsx(第 4、27、35、43 行)及可选的 public/og-image.svg

  4. 4

    在 src/content/ 下按 README 的 frontmatter 格式新建 blogs、projects、experiences 的 .mdx 文件

  5. 5

    使用 Giscus 评论需创建公开仓库、启用 Discussions、安装 Giscus 应用,并在 src/components/Giscus.tsx 填入 data-repo、data-repo-id 及两个分类的 data-category-id

查看仓库使用说明

授权与来源资料

使用条件与限制

免费使用 · 保留许可声明

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

使用时需要遵守

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

额外费用与待核对事项

  • 演示图片、字体、图标及其他第三方素材需按各自许可核对,不能仅凭代码的 MIT 许可判断。
  • 域名、托管、数据库、支付或 AI 等外部服务可能另外收费。
  • 使用 Giscus 评论功能需要先创建一个公开的 GitHub 仓库用于存放 Discussions。
  • 需要在仓库设置中启用 Discussions 功能,评论才能正常工作。
  • 需要安装 Giscus 应用(GitHub App)才能接入评论系统。
  • 需要前往 giscus.app 进行配置并获取仓库与分类的标识值。
  • 必须手动修改 src/components/Giscus.tsx 并填入自己的仓库与分类 ID 配置值。
  • README 指向作者个人博客上的详细配置指南作为外部参考链接。
查看原文依据

Permission is hereby granted, free of charge

许可证原文

1. Create a public GitHub repository for discussions

README 原文

2. Enable Discussions in repo settings

README 原文

3. Install [Giscus app](https://github.com/apps/giscus)

README 原文

4. Go to [giscus.app](https://giscus.app) and configure:

README 原文

5. Update `src/components/Giscus.tsx` with your values:

README 原文

📖 **[Read the detailed setup guide](https://tejas.mandhare.com/blog/adding-giscus-comments-portfolio)** - Complete walkthrough with code examples, troubleshooting, and best practices.

README 原文
https://github.com/mandharet/portfolio-next/blob/DEVELOPMENT/LICENSEhttps://github.com/mandharet/portfolio-next/blob/DEVELOPMENT/README.md

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

项目核对记录与介绍依据

模板资料

来源平台
GitHub
资料与维护参考分
资料一般 · 72 / 100
技术栈
Next.js · React
网站类型
作品集
这个分数如何计算

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

这个项目需要核对什么

记录的仓库更新时间
2026-02-08
截图检查日期
2026-10-14

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

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

查看具体选型方法 →

介绍的制作与核对状态

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

审核声明: codex-user-requested-batch-review-20261015 · 2026-10-15

查看当时使用的来源资料

SHA-256: 7dbec0f34f24a3afdde199c166ce610f7749a5480c65275b1768676977faa284

2026-10-14T15:56:23.703Z

来源文件 / 仓库
# 🚀 Portfolio - Next.js

> **Open Source Portfolio Template** - Clone it, customize it, make it yours!

A modern, SEO-optimized portfolio website built with Next.js 15, TypeScript, and Tailwind CSS. Perfect for developers, designers, and creators who want a professional online presence.

![Next.js](https://img.shields.io/badge/Next.js-15-black)
![TypeScript](https://img.shields.io/badge/TypeScript-5-blue)
![Tailwind CSS](https://img.shields.io/badge/Tailwind-4-38bdf8)
![License](https://img.shields.io/badge/License-MIT-green)

---

## ✨ Why This Template?

- 🎨 **Beautiful Design** - Modern UI with dark/light mode
- ⚙️ **YAML Configuration** - Update your info without touching code
- 📝 **MDX Blog** - Write posts in Markdown with React components
- 💬 **Giscus Comments** - GitHub Discussions powered comments
- 📊 **Mermaid Diagrams** - Visualize architecture and workflows
- 📋 **Markdown Tables** - Display data in responsive tables
- 🎨 **Syntax Highlighting** - Beautiful code blocks with copy button
- 🔍 **SEO Ready** - Sitemap, metadata, structured data included
- 📱 **Mobile First** - Fully responsive on all devices
- 🚀 **Fast** - Static generation, optimized performance
- 🎯 **Type Safe** - Full TypeScript support

---

## 🎉 Get Started in 3 Steps

### 1. Clone & Install

```bash
git clone https://github.com/yourusername/portfolio-next.git
cd portfolio-next
bun install
```

### 2. Update Your Info

Edit `src/config/site.yaml`:

```yaml
name: "Your Name"
title: "Your Title"
domain: "https://yoursite.com"
email: "[email protected]"
description: "Your description"
keywords: ["Your", "Keywords"]
```

Edit `src/config/personal.yaml`, `src/config/home.yaml`, and `src/config/about.yaml` with your information.

**Note:** After updating YAML files, also update:

- `src/app/opengraph-image.tsx` (lines 4, 27, 35, 43) - for social media previews
- `public/og-image.svg` (optional fallback)

### 3. Run & Deploy

```bash
bun run dev      # Preview locally
bun run build    # Build for production
```

Deploy to [Vercel](https://vercel.com) or [Netlify](https://netlify.com) in one click!

---

## 📝 Easy Customization

### YAML Configuration (No Code!)

All your information is in simple YAML files:

- `src/config/site.yaml` - Name, title, SEO settings
- `src/config/personal.yaml` - Social links, resume
- `src/config/home.yaml` - Homepage content
- `src/config/about.yaml` - About page, skills

### Add Content in Markdown

Create `.mdx` files in `src/content/`:

**Blog Post** (`src/content/blogs/my-post.mdx`):

```mdx
---
title: "My First Post"
description: "Brief description"
date: "2024-01-20"
tags: ["React", "Next.js"]
readingTime: "5 min read" # Optional
---

# Hello World!

Your content here...
```

**Project** (`src/content/projects/my-project.mdx`):

````mdx
---
title: "My Project"
description: "Brief description"
date: "2024-01-20"
tech: ["React", "Node.js"]
github: ["https://github.com/you/project"] # Supports multiple URLs
link: ["https://demo.com"] # Optional, supports multiple
papers: ["https://paper-url"] # Optional, for research papers
image: "/projects/my-project.jpg" # Optional
---

# My Awesome Project

Project details...

## Architecture

```mermaid
graph LR
    A[Frontend] --> B[API]
    B --> C[Database]
```
````

## Tech Stack

| Category | Technologies     |
| -------- | ---------------- |
| Frontend | React, Next.js   |
| Backend  | Node.js, Express |

````

**Experience** (`src/content/experiences/my-job.mdx`):

```mdx
---
company: "Company Name"
role: "Software Engineer"
period: "2023 - Present"
description: "Brief description"
technologies: ["React", "Node.js"]
date: "2023-01-01"
---

# My Experience

Details about your role...
````

That's it! Your content appears automatically.

---

## 🎨 What You Get

- ✅ Homepage with hero section
- ✅ About page with skills & bio
- ✅ Blog with MDX support
- ✅ Giscus comments on blog posts and projects
- ✅ Project showcase with image cards
- ✅ Experience timeline
- ✅ Mermaid diagram support
- ✅ Markdown table support
- ✅ Syntax highlighting with copy button
- ✅ Multiple URLs per project (GitHub, demo, papers)
- ✅ Dark/Light mode toggle
- ✅ Mobile-friendly navigation
- ✅ SEO optimized (sitemap, metadata, structured data)
- ✅ Fast loading (static generation)

---

## 🚀 Deploy Your Portfolio

### Vercel (Recommended)

1. Push your code to GitHub
2. Go to [vercel.com](https://vercel.com)
3. Import your repository
4. Click Deploy - Done! 🎉

### Netlify

1. Push your code to GitHub
2. Go to [netlify.com](https://netlify.com)
3. Import your repository
4. Build: `bun run build` | Publish: `out`
5. Deploy - Done! 🎉

---

## 📚 Documentation

- **[docs/README.md](./docs/README.md)** - Quick overview
- **[docs/ARCHITECTURE.md](./docs/ARCHITECTURE.md)** - Technical details

---

## 🛠️ Tech Stack

- **Next.js 15** - React framework with App Router
- **TypeScript** - Type safety
- **Tailwind CSS 4** - Styling
- **MDX** - Markdown with React components
- **Mermaid** - Diagram and flowchart support
- **Giscus** - GitHub Discussions powered comments
- **remark-gfm** - GitHub Flavored Markdown (tables, etc.)
- **react-syntax-highlighter** - Code syntax highlighting
- **YAML** - Configuration files
- **shadcn/ui** - UI components

---

## 📄 License

**MIT License** - Free to use for personal and commercial projects!

Feel free to:

- ✅ Use for your portfolio
- ✅ Modify as you like
- ✅ Deploy anywhere
- ✅ Remove attribution (optional, but appreciated!)

---

## 🤝 Contributing

Found a bug? Have a feature idea? Contributions are welcome!

1. Fork the repository
2. Create your feature branch
3. Submit a pull request

---

## 💡 Tips

- Update `domain` in `src/config/site.yaml` for proper SEO
- Add your resume PDF to `public/resume.pdf`
- Add project images to `public/projects/` for card thumbnails
- Use mermaid diagrams to visualize architecture
- Use markdown tables for tech stacks and comparisons
- Customize colors in `src/app/globals.css`
- Write regularly - fresh content helps SEO!
- Check `projectPrompt.txt` for portfolio entry template

### Setting Up Comments (Giscus)

**Quick Setup:**

1. Create a public GitHub repository for discussions
2. Enable Discussions in repo settings
3. Install [Giscus app](https://github.com/apps/giscus)
4. Go to [giscus.app](https://giscus.app) and configure:
   - Select your repository
   - Choose "pathname" mapping
   - Create categories: "Blog Comments" and "Project Discussions"
   - Copy the configuration values
5. Update `src/components/Giscus.tsx` with your values:
   - `data-repo`
   - `data-repo-id`
   - `data-category-id` for both categories

**Note:** Giscus IDs are safe to commit - they're public identifiers, not secrets!

📖 **[Read the detailed setup guide](https://tejas.mandhare.com/blog/adding-giscus-comments-portfolio)** - Complete walkthrough with code examples, troubleshooting, and best practices.

---

## 🌟 Show Your Support

If you find this template helpful:

- ⭐ Star this repository
- 🐛 Report bugs
- 💡 Suggest features
- 🔀 Share with others

---

## 📞 Need Help?

- Check [docs/](./docs/) for documentation
- Open an [issue](https://github.com/yourusername/portfolio-next/issues)
- Join discussions

---

<div align="center">

**Built with ❤️ for the open source community**

[Demo](https://your-demo.vercel.app) • [Documentation](./docs/) • [Issues](https://github.com/yourusername/portfolio-next/issues)

</div>

---

**Ready to build your portfolio?** Clone this repo and make it yours! 🚀
反馈内容错误

看看同类模板

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