使用 Nuxt 3 构建,状态管理采用 Pinia
nuxt-3-portfolio — Nuxt 作品集模板
作者 srestraj
基于 Nuxt 3、Pinia 与 Contentful 的开源作品集模板,内容由 Contentful 驱动,支持明暗主题、响应式布局、Google Analytics 与自动站点地图,并可一键部署到 Vercel。
看看你的网站会是什么样
浏览真实页面截图,比较内容排版与手机效果。点击下方缩略图切换,放大查看整页细节。
全部页面与视图 2
截图用于了解视觉与布局,交互效果请以实际项目为准。
值得关注的模板亮点
从已有项目资料中,快速了解它的特点。
作品数据由 Contentful 内容模型驱动,需自行创建 Projects 内容类型与字段
支持浅色、深色与跟随系统三种配色模式
响应式布局,附带桌面端与手机端页面截图
内置 Google Analytics 接入与自动生成的 sitemap.xml
提供 Vercel 一键部署按钮,README 说明手动部署时的环境变量与构建命令调整
模板详细介绍
这是一个面向个人作品集场景的开源模板,使用 Nuxt 3 构建,状态管理采用 Pinia,作品数据来自 Contentful 内容模型。仓库 README 说明其定位为「极简、轻量」,并提供浅色/深色/跟随系统三种配色模式、响应式布局、Google Analytics 接入以及自动生成的 sitemap.xml。
使用前需要先在 Contentful 创建账户与空间,并新建名为 Projects 的内容类型,按 README 截图添加对应字段,再录入内容并生成访问令牌。项目通过 .env 读取 BASE_URL、CTF_SPACE_ID、DOMAIN、CTF_ACCESS_TOKEN 与可选的 GOOGLE_ANALYTICS_ID。README 同时提供 Vercel 一键部署按钮,并提醒 Nuxt 3 部署方式有变化,可能需要调整输出目录与构建、开发命令后重新构建。
该模板采用 MIT 许可,可免费使用、修改、商用与分发代码,但演示图片、字体、图标等第三方素材需单独核对许可,域名、托管等外部服务也可能产生费用。
适合你的项目吗?
适用场景
- 个人开发者或设计师搭建作品集网站
- 希望用 Contentful 作为内容后台管理作品数据
- 需要浅色/深色主题切换与响应式布局的展示型站点
- 计划部署到 Vercel 并接入 Google Analytics 与站点地图
适合人群
- 熟悉 Nuxt 或 Vue 并愿意配置 Contentful 内容模型的开发者
- 需要开源、可修改的作品集模板的个人项目
- 接受使用外部内容服务与托管平台的用户
上手与定制指南
结合仓库当前版本的说明,按下面的资料检查内容、配置与运行要求。
- 1
在 Contentful 创建账户与空间,新建名为 Projects 的内容类型并按 README 截图添加字段,录入内容后生成访问令牌
- 2
创建 .env 文件并填写 BASE_URL、CTF_SPACE_ID、DOMAIN、CTF_ACCESS_TOKEN,GOOGLE_ANALYTICS_ID 为可选
- 3
使用 yarn install、npm install 或 pnpm install --shamefully-hoist 安装依赖
- 4
可通过 README 中的 Vercel 按钮一键部署;手动部署时需配置环境变量并调整构建与开发命令,必要时设置输出目录后重新构建
- 5
演示图片、字体、图标等第三方素材需按各自许可核对,不能仅凭代码的 MIT 许可判断
授权与来源资料
使用条件与限制
免费使用 · 保留许可声明本次收录的是公开仓库中采用 MIT 许可的免费版本;免费范围为该版本代码,不代表外部服务或第三方素材免费。
使用时需要遵守
- 允许免费使用、修改、商用和分发该版本代码。
- 分发代码副本或实质性部分时,保留原作者版权声明和完整 MIT 许可声明。
- 代码按现状提供;担保与责任限制以原许可证及适用法律为准。
额外费用与待核对事项
- 使用该模板前必须注册 Contentful 账户并创建空间,作品数据依赖此外部内容服务,无法脱离 Contentful 独立运行。
- 需在 Contentful 生成访问令牌(CTF_ACCESS_TOKEN)并配置到 .env,否则应用无法读取内容。
- Google Analytics 为可选功能,若启用需自行提供 GOOGLE_ANALYTICS_ID,并遵守 Google 相关服务条款。
- 部署到 Vercel 时可能需手动调整输出目录及构建、开发命令并重新构建,否则部署可能失败。
- 演示图片、字体、图标及其他第三方素材需按各自许可核对,不能仅凭代码的 MIT 许可判断。
- 域名、托管、数据库、支付或 AI 等外部服务可能另外收费。
查看原文依据
Permission is hereby granted, free of charge
许可证原文
Create a [Contentful](https://contentful.com) account.
README 原文
create an access token to let your app communicate with Contentful
README 原文
Get your Google Analytics ID (optional)
README 原文
https://github.com/srestraj/nuxt-3-portfolio/blob/main/LICENSEhttps://github.com/srestraj/nuxt-3-portfolio/blob/main/README.mdyou might want to set the output directory as follows (see #9) and rebuild.
README 原文
DeepSeek 根据仓库许可证和 README 整理 ·2026-10-03。结果仅覆盖已读取资料,依赖、图片、字体及后续条款变更以各自原文为准。
项目核对记录与介绍依据
模板资料
- 来源平台
- GitHub
- 资料与维护参考分
- 资料较完整 · 88 / 100
- 技术栈
- Nuxt · Vue
- 网站类型
- 作品集
这个分数如何计算
本站按许可资料(最高30分)、演示链接(12分)、预览图(10分)、Star数(15分)、记录的维护时间(15分)、描述完整度(8分)、功能记录(5分)和分类资料(5分)计算。它不是代码、安全或性能测试,也不是 Google 评分;有链接不代表已实测可用。
这个项目需要核对什么
- 记录的仓库更新时间
- 2026-09-09
- 截图检查日期
- 2026-10-03
已收录演示链接。请用你的内容与屏幕尺寸检查;有演示不代表表单、认证或支付已经可用。
目录记录的主要技术栈是 Nuxt。请通过依赖清单和锁文件核对实际版本与托管要求。这些说明基于收录资料,不代表代码审计或部署实测。
查看具体选型方法 →介绍的制作与核对状态
介绍由 AI 辅助整理目录与仓库资料。仓库作者不等于这篇介绍的审核者。
已完成服务器许可规则与 AI 来源核对;未经过人工编辑审核。
查看当时使用的来源资料
SHA-256: 1525295594a86a993a3105a418e44ef8a64e44f10bd70ca3fdb4f168a3db33f9
2026-10-03T06:25:17.278Z
来源文件 / 仓库# Nuxt 3 Minimal Portfolio using Pinia & Contentful An open-source portfolio template built using [Nuxt 3](https://v3.nuxtjs.org/), [Pinia](https://pinia.vuejs.org/) and [Contentful](https://www.contentful.com/). One-click deploy: [](https://vercel.com/new/clone?repository-url=https://github.com/srestraj/nuxt-3-portfolio&repository-name=my-awesome-portfolio&env=BASE_URL,CTF_SPACE_ID,DOMAIN,CTF_ACCESS_TOKEN,GOOGLE_ANALYTICS_ID) Demo: https://rajkshrestha1.com.np **Features** - 🥰 Minimal and light - 🌗 Light/dark/system color modes - 📱 Responsive - 📈 Google Analytics - ⚡ Auto-generated sitemap (visit /sitemap.xml) - 🚀 one click deployment to Vercel ### Prerequisites 1. Create a [Contentful](https://contentful.com) account. 2. Once your account is created, Contentful should have a space pre-installed/created. If not, create a space from the sidebar.  3. Click on "Create model" at the top bar and create a new content type titled "Projects".  4. Add fields to the content model with the following fields and types and save the model.  5. Now, go to the Content tab and start adding content to the content model you just created. 6. Once everything's set up, create an access token to let your app communicate with Contentful. You can then copy your space id and access token and paste them in your .env   7. Get your Google Analytics ID (optional) 8. Now, you can click the deploy button to deploy the site to Vercel. Since Nuxt 3 has updated the deployment a little bit, you might want to set the output directory as follows (see #9) and rebuild. [](https://vercel.com/new/clone?repository-url=https://github.com/srestraj/nuxt-3-portfolio&repository-name=my-awesome-portfolio&env=BASE_URL,CTF_SPACE_ID,DOMAIN,CTF_ACCESS_TOKEN,GOOGLE_ANALYTICS_ID) 9. If you want to manually deploy the site to Vercel, just make sure to include your environmental variables and modify the build and development commands as follows.  ### Build Setup create a `.env` file with the following variables ``` BASE_URL=(YOUR_SITE_URL w/o trailing slash) CTF_SPACE_ID=(contentful space id) DOMAIN=(YOUR_SITE_URL w/o trailing slash) CTF_ACCESS_TOKEN=(contentful delivery access token) GOOGLE_ANALYTICS_ID= ``` Make sure to install the dependencies: ```bash # yarn yarn install # npm npm install # pnpm pnpm install --shamefully-hoist ```
看看同类模板
对比同技术栈与用途的模板,找到更适合的视觉与内容结构。

canvas
Portfolio template made with Nuxt 3, Nuxt Content v3, NuxtUI v3 and TailwindCSS v4
Nuxt · 作品集

portfolio
Nuxt Portfolio Template made with Nuxt UI and Nuxt Content.
Nuxt · 作品集

nuxtjs-tailwindcss-portfolio
Nuxt.js & Tailwind CSS version of the portfolio project.
Nuxt · 作品集

nuxt-resume
Personal resume template, VueJs + Nuxt
Nuxt · 作品集

pahachaan
Opensource portfolio template using Nuxt 4 with Nuxt Studio support
Nuxt · 作品集

nano-portfolio
Nano Portfolio 是一个面向开发者的开源作品集模板,基于 Nuxt 3 生态构建,核心卖点是能通过 GitHub Octokit 自动拉取你的 GitHub 个人资料与仓库信息,省去手动维护项目列表的麻烦。
Nuxt · 作品集
