不只是作品集:用 Next.js 打造我的数字作品库

简介: 这篇文章介绍了作者使用Next.js和Shadcn UI构建的一个个人作品信息展示模板。该模板设计简洁且结构清晰,适合直接使用或作为学习参考。作者在原有基础上进行了个性化调整,增加了交互细节和动画效果。文章还强调了开发者拥有一个统一技术身份的重要性,并详细列出了项目的技术栈、特性和环境变量配置,最后提供了在线预览链接和GitHub地址。

前言

Hi,大家好,我是白雾茫茫丶!

很久没和大家见面了,说来惭愧,自从AI成了“全能助手”,我这个“码字工”的笔就有点锈了——感觉很多技术问题,还没等我写完文章,AI三言两语就解释清楚了。少了点输出深度内容的动力,手也就慢慢懒了。

不过最近,我又找到了一点不一样的感觉。工作上接触不到,我就自己动手——这段时间一直在折腾 Next.js + Shadcn UI 这套组合。不得不说,确实很火,用起来也很顺手,从头搭一个项目的过程,反而让我找回了那种边踩坑边学习的踏实感。

今天想和大家分享的,是我在这个过程中做出来的一个小成果:一个个人作品信息展示的模板。我觉得它设计得挺干净,结构也清晰,不管是拿来即用,还是当作学习参考,应该都还不错。如果你也在找类似的灵感或模版,不妨看看,希望能帮到你。

灵感来源

在我探索 Shadcn UI 的过程中,偶然发现了一个设计非常出色的模板:

https://magicui.design/docs/templates/portfolio

最初我只是把它集成在自己正在捣鼓的项目里试试水,但很快发现,这个页面本身就足够完整和优雅——即使独立出来,也完全能作为一个专业的作品展示站点。

于是,我决定把它单独抽离出来,搭建成了一个专注的作品展示项目。在保留其原设计精髓的基础上,我根据自己的偏好做了一些调整,加入了一些个性化的交互细节和动画效果,让整个界面在简洁之中多了一点灵动的气息。

最终呈现出来的,就是现在这个版本——整体保持干净利落,又不失细节处的巧思。如果你也在寻找一个轻量、现代且易于定制的作品集模板,或许这个实现能给你带来一些灵感。

为什么每个开发者都需要一个作品站点?

作为开作为开发者,我们每天都在创造价值:在 GitHub 提交代码、在掘金写技术文章、在开源社区贡献方案……

但这些成果往往散落在不同的平台,像一座座信息孤岛。面试时,我们需要反复解释这些分散的内容;求职时,简历上的短短几行描述,难以承载我们真实的技术思考与项目深度。

构建一个统一的技术身份,将分散的项目、文章、数据可视化整合在一个专业、可访问的空间。它不仅仅是一个作品集,更是:

• 面试的隐形加分项——当面试官通过一个精心设计的站点看到你的完整技术路径、真实的项目思考过程,这种体验远胜过千篇一律的简历

• 技术能力的系统证明——可视化你的 GitHub 贡献、技能雷达图、项目迭代历史,让抽象的能力变得具体可见

技术栈

- 框架:Next.js 16、React 19、TypeScript 5
- 样式:Tailwind CSS v4、tw-animate-css
- 可视化:Recharts
- 其他:ahooks、enum-plus、lucide-react

特性

- 基于 `Next.js App Router` 的现代架构
- 使用 `Tailwind CSS v4` 与自定义主题变量,支持暗色模式
- GitHub 仓库与贡献统计 API
- Halo 文章列表聚合 API
- Recharts 数据图表可视化
- 完整 SEO 文件:`robots`、`sitemap`、`manifest`
- 集成 Umami、Microsoft Clarity、Google Analytics(生产环境自动启用)

环境变量

在项目根目录创建 .env,示例:

# 站点信息
NEXT_PUBLIC_NAME="你的名字"
NEXT_PUBLIC_APP_NAME="Portfolio"
NEXT_PUBLIC_DESC="一句话简介/站点描述"
NEXT_PUBLIC_APP_DOMAIN="https://your-domain.com"
NEXT_PUBLIC_THEME="light" # 可选:light | dark | system

# 分析统计(生产环境生效)
NEXT_PUBLIC_UMAMI_ID=""
NEXT_PUBLIC_CLARITY_ID=""
NEXT_PUBLIC_GA_ID=""

# GitHub API
GITHUB_TOKEN="" # 只读 Token
NEXT_PUBLIC_GITHUB_USERNAME="your-github-username"

# Halo API
HALO_TOKEN="" # 只读 Token

效果预览

PixPin_2025-12-23_09-57-38.png

数据仅供参考

总结

这个基于 Next.js + Shadcn UI 构建的个人作品展示模板,是我在探索现代前端技术栈过程中的一次实践与沉淀。

技术本身是工具,但如何用它更好地表达自己、呈现价值,才是更有意义的探索。

如果你也在构建个人项目、整理作品集,或单纯想学习 Next.js 全栈实践,这个项目或许能给你一些参考。

在线预览:

https://portfolio.baiwumm.com

Github:

https://github.com/baiwumm/portfolio

相关文章
|
资源调度
Vue3 + Vite 构建组件库发布到 npm
这篇文章介绍了如何使用Vue3和Vite构建组件库并发布到npm,包括初始化项目、配置项目结构、创建组件目录、设置入口文件以及导出组件等步骤。
1482 0
Vue3 + Vite 构建组件库发布到 npm
|
8月前
|
人工智能 自然语言处理 Linux
搭建微信私有AI情报助手:n8n+OpenClaw阿里云+本地部署流程+大模型千问/Coding Plan配置实战指南
在日常信息获取与自动化办公场景中,能够直接通过微信自然语言指令,触发全网情报抓取、内容提炼、翻译整理、结构化归档并回传结果,已经成为高效获取信息的核心方式。OpenClaw(Clawdbot)作为轻量化AI智能体网关,搭配n8n可视化工作流引擎,可以将微信聊天框变成统一控制入口,实现**指令接收—任务调度—数据抓取—AI处理—结果推送**全链路自动化,全程不刷屏、不冗余、精准投喂高价值信息。
1153 0
|
存储 网络安全 数据安全/隐私保护
Docker harbor私有仓库部署与管理-2
Docker harbor私有仓库部署与管理
798 0
|
11月前
|
云安全 监控 安全
|
7月前
|
存储 人工智能 安全
OpenAI 悄悄重写 Agents SDK:生产级 Agent 底座来了,LangChain 们还怎么活?
OpenAI重磅发布全新Agents SDK:解耦“大脑”与“手脚”,内置harness控制流、多厂商沙盒、Manifest配置、快照恢复等生产级能力。900页保单100%提取、半数PR由Agent生成,LangChain时代正加速终结。
|
安全 应用服务中间件 网络安全
Certimate + Let’s Encrypt:零干预的 HTTPS 永续方案
这篇文章介绍了HTTPS在互联网中的重要性以及手动续签SSL证书的痛点,如频繁操作、易出错和安全风险。随后讨论了自动化续签工具如Certbot、Certimate和acme.sh的功能对比,强调了自动化管理的优势,并重点介绍了Certimate如何解决这些问题。
445 0
|
数据采集 JavaScript 前端开发
三种常见网站结构的解析方式对比—信息结构与处理路径图谱
页面结构对信息提取方式有重要影响,本文分析三种主流结构类型及应对策略,结合代码实例对比静态页面、动态页面与接口型页面的处理方法,帮助开发者快速选择合适方案,提升数据采集效率。
479 0
|
关系型数据库 MySQL PHP
WordPress 开发入门:代码详解与使用指南
本文详细介绍了WordPress开发入门知识,涵盖基础概念、环境搭建、主题与插件开发及常用技巧。首先讲解了WordPress的核心功能与开发环境配置,接着深入探讨主题开发,包括创建主题文件夹、核心文件(style.css和functions.php)以及模板文件的使用。随后介绍插件开发的基本步骤,如创建插件文件、添加功能并激活插件。最后推荐了开发资源,如官方文档、在线教程和优质市场。通过实践与学习,读者可掌握WordPress开发技术,构建个性化网站。
1337 7
|
缓存 资源调度 JavaScript
npx与npm的差异解析,以及包管理器yarn与Node版本管理工具nvm的使用方法详解
npx与npm的差异解析,以及包管理器yarn与Node版本管理工具nvm的使用方法详解
3049 0
|
资源调度 搜索推荐 Shell
使用VitePress静态网站生成器创建组件库文档网站并部署到GitHub
本文介绍了如何使用 Vue3、TypeScript 和 Vite 开发组件库并将其发布到 npm。文章详细描述了安装依赖、配置项目、创建文档网站以及编写组件文档的步骤。通过使用 VitePress,可以轻松搭建组件库的文档站点,并实现 Algolia 搜索功能。此外,还提供了自动化脚本用于部署静态网站至 GitHub 以及发布组件库到 npm。最后,展示了完整的目录结构和网站效果。
928 1
使用VitePress静态网站生成器创建组件库文档网站并部署到GitHub