ViteReact作品集

tanstack-portfolio-developer — Vite 作品集模板

作者 fabrizio-ferrentino

基于 TanStack Start 与 React 的个人作品集模板,支持多主题与英意双语,内容数据已抽离为可替换的配置文件。

看看你的网站会是什么样

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

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

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

全部页面与视图 3

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

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

值得关注的模板亮点

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

01

基于 TanStack Start 与 TanStack Router 的文件路由,包含首页、关于、经历、作品列表与详情、联系等页面

02

内置英语与意大利语两套文案,并提供语言切换组件

03

提供多套明暗主题与自定义主题选择器,主题定义集中在 src/lib/themes.ts

04

站点信息、工作经历、项目数据与翻译文案分别抽离到 src/lib 下的独立文件,便于替换为个人内容

05

使用 shadcn/ui 与 Radix UI 组件,配合 Tailwind CSS 与 CSS 变量设计令牌

06

index.html 中提供静态 Open Graph 与 Twitter 元标签,供不执行 JavaScript 的爬虫读取

模板详细介绍

这是一个个人作品集网站模板,使用 TanStack Start、React、Vite 与 Tailwind CSS 构建,仓库中只保留源代码,个人经历、项目内容和联系方式等数据已被移除或泛化。页面结构覆盖首页、关于、经历、作品列表与作品详情、联系页,路由由 TanStack Router 以文件路由方式组织。模板内置英语与意大利语两套文案,并提供语言切换与多套明暗主题的切换入口。

内容与配置分离是它的主要组织方式:站点元信息与工作经历放在 src/lib/site.ts,项目数据放在 src/lib/works.ts,翻译文案放在 src/lib/i18n.tsx,主题定义放在 src/lib/themes.ts,设计令牌以 CSS 变量形式写在 src/styles.css。要改成自己的作品集,需要替换这几个文件中的数据,而不是修改页面组件。

需要注意的限制:仓库不包含任何个人数据,也没有附带可直接使用的内容;SEO 与 Open Graph 元标签是写在 index.html 中的静态标签,需要自行更新并准备 /og.png 图片;演示图片、字体、图标等第三方素材的许可需单独核对,MIT 许可只覆盖代码本身。

ViteReact作品集

适合你的项目吗?

适用场景

  • 开发者需要一个可替换数据的个人作品集站点起点,展示经历、项目与联系方式
  • 希望作品集同时提供英语与意大利语两种语言版本
  • 需要多套明暗主题或主题切换功能的个人站点
  • 使用 TanStack Start 与文件路由搭建静态 SPA 并部署到 Vercel 的项目

适合人群

  • 熟悉 React、TypeScript 与 Tailwind CSS,愿意直接编辑配置文件替换内容的开发者
  • 需要双语作品集并希望自行维护翻译文案的个人
  • 想参考 TanStack Start 文件路由与主题、i18n 组织方式的开发者

上手与定制指南

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

  1. 1

    需要 Node.js 20+ 或 Bun 1.x,以及 bun、npm、pnpm、yarn 中任选一个包管理器

  2. 2

    克隆仓库后安装依赖,使用 npm run dev 启动开发服务器,npm run build 与 npm run preview 进行生产构建与本地预览

  3. 3

    替换个人内容需编辑 src/lib/site.ts、src/lib/works.ts 与 src/lib/i18n.tsx,主题与设计令牌分别在 src/lib/themes.ts 和 src/styles.css

  4. 4

    SEO 与 Open Graph 元标签写在 index.html,需同步更新并在 public/ 提供 1200×630 的 /og.png

  5. 5

    演示图片、字体、图标等第三方素材的许可需单独核对,MIT 许可仅覆盖代码

查看仓库使用说明

授权与来源资料

使用条件与限制

免费使用 · 保留许可声明

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

使用时需要遵守

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

额外费用与待核对事项

  • 演示图片、字体、图标及其他第三方素材需按各自许可核对,不能仅凭代码的 MIT 许可判断。
  • 域名、托管、数据库、支付或 AI 等外部服务可能另外收费。
  • 仓库仅包含源代码,个人数据(工作描述、项目内容、联系方式等)已被移除或泛化,因此不附带可直接使用的实际内容,需自行替换为个人资料。
  • 使用前必须自行替换 src/lib/site.ts、src/lib/works.ts 与 src/lib/i18n.tsx 中的个人数据,模板本身不含现成内容。
  • 需自行在 public/ 目录提供真实的 /og.png 图片(1200×630),否则 Open Graph 元标签缺少对应图片资源。
查看原文依据

Permission is hereby granted, free of charge

许可证原文

This repository contains the source code only. Personal data (job descriptions, project content, contact details, etc.) has been removed or genericized

README 原文

just replace the personal data in `src/lib/site.ts`, `src/lib/works.ts`, and `src/lib/i18n.tsx`.

README 原文

remember to provide a real `/og.png` (1200×630) in `public/`.

README 原文
https://github.com/fabrizio-ferrentino/tanstack-portfolio-developer/blob/main/LICENSEhttps://github.com/fabrizio-ferrentino/tanstack-portfolio-developer/blob/main/README.md

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

项目核对记录与介绍依据

模板资料

来源平台
GitHub
资料与维护参考分
资料较完整 · 88 / 100
技术栈
Vite · React
网站类型
作品集
这个分数如何计算

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

这个项目需要核对什么

记录的仓库更新时间
2026-06-10
截图检查日期
2026-10-13

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

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

查看具体选型方法 →

介绍的制作与核对状态

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

审核声明: [email protected] · 2026-10-13

查看当时使用的来源资料

SHA-256: 47b65e6f52430513deacae03ef8f7602ed109cdea2b0baff50d55a37bab3ae39

2026-10-13T03:23:25.091Z

来源文件 / 仓库
# Personal Portfolio

My personal portfolio website, built with **TanStack Start**, **React 19**, and **Tailwind CSS v4**.
Showcases my experience, projects, and contact information with full internationalization (English / Italian) and multiple theme support.

> ⚠️ This repository contains the source code only. Personal data (job descriptions, project content, contact details, etc.) has been removed or genericized — feel free to fork and adapt it to your own profile — just replace the personal data in `src/lib/site.ts`, `src/lib/works.ts`, and `src/lib/i18n.tsx`.

---

<p align="center">
  <a href="https://fabrizioferrentino.dev">
    <img src="https://img.shields.io/badge/Demo-Live%20Preview-blue?style=for-the-badge&logo=vercel" alt="Live Demo" />
  </a>
  &nbsp;&nbsp;
  <a href="https://github.com/fabrizio-ferrentino/tanstack-portfolio-developer/issues">
    <img src="https://img.shields.io/badge/Report%20Bug-red?style=for-the-badge&logo=github/new?labels=bug" alt="Report Bug" />
  </a>
  &nbsp;&nbsp;
  <a href="https://github.com/fabrizio-ferrentino/tanstack-portfolio-developer/issues">
    <img src="https://img.shields.io/badge/Request%20Feature-brightgreen?style=for-the-badge&logo=github" alt="Request Feature" />
  </a>
</p>

## 📸 Screenshot
<table width="100%">
  <tr>
    <td width="33.3%" align="center">
      <img src="https://github.com/user-attachments/assets/54551551-f200-4ae2-bf66-95d846044080" alt="Desktop Light View" width="100%" />
    </td>
    <td width="33.3%" align="center">
      <img width="1879" height="929" alt="Screenshot 2026-06-06 150423" src="https://github.com/user-attachments/assets/b3731f0f-dbec-4a85-89dc-eac88d87aa1a" />
    </td>
    <td width="33.3%" align="center">
      <img src="https://github.com/user-attachments/assets/175e4c4e-efa4-43f5-9722-ba4b2767b98f" alt="Alternative View" width="100%" />
    </td>
  </tr>
</table>


## ✨ Features

- ⚡ **Static SPA build** powered by TanStack Start v1 + Vite 7 (SSR-capable, deployed as static on Vercel)
- 🎨 **Multiple themes** with a custom theme picker (light / dark variants)
- 🌍 **i18n** — English and Italian, with a language toggle
- 🧭 **File-based routing** with type-safe navigation (TanStack Router)
- 🎯 **Animated active-link indicator** in the navigation bar
- 📱 **Fully responsive** design, mobile-first
- ♿ **Accessible** components built on Radix UI primitives (shadcn/ui)
- 🔍 **SEO-friendly** with static Open Graph / Twitter meta tags in `index.html` for crawler compatibility
- 🎭 Smooth page transitions and micro-interactions

---

## 🛠️ Tech Stack

| Category        | Technology                                              |
| --------------- | ------------------------------------------------------- |
| Framework       | [TanStack Start](https://tanstack.com/start) (v1)       |
| UI Library      | [React 19](https://react.dev)                           |
| Build Tool      | [Vite 7](https://vitejs.dev)                            |
| Routing         | [TanStack Router](https://tanstack.com/router)          |
| Styling         | [Tailwind CSS v4](https://tailwindcss.com)              |
| Components      | [shadcn/ui](https://ui.shadcn.com) + Radix UI           |
| Icons           | [Lucide React](https://lucide.dev)                      |
| Forms & Schema  | React Hook Form + Zod                                   |
| Language        | TypeScript (strict mode)                                |
| Deploy Target   | [Vercel](https://vercel.com) (static SPA)               |

---

## 🚀 Getting Started

### Prerequisites

- **Node.js** 20+ (or **Bun** 1.x)
- A package manager: `bun`, `npm`, `pnpm`, or `yarn`

### Installation

```bash
# Clone the repository
git clone https://github.com/fabrizio-ferrentino/tanstack-portfolio-developer.git
cd tanstack-portfolio-developer

# Install dependencies
npm install
# or: bun install
```

### Development

```bash
npm run dev
# or: bun run dev
```

The site will be available at the URL printed in the terminal (Vite default: [http://localhost:5173](http://localhost:5173)).

### Production Build

```bash
npm run build
npm run preview
```

---

## 📁 Project Structure

```
src/
├── components/         # Reusable React components
│   ├── ui/             # shadcn/ui primitives
│   ├── SiteLayout.tsx  # Main layout (nav + footer)
│   ├── ThemePicker.tsx
│   └── LanguageToggle.tsx
├── hooks/              # Custom React hooks
├── lib/                # Utilities, configs, and data
│   ├── i18n.tsx        # Internationalization context & dictionaries
│   ├── themes.ts       # Theme definitions
│   ├── site.ts         # Site metadata & job history
│   └── works.ts        # Projects data
├── routes/             # File-based routes (TanStack Router)
│   ├── __root.tsx      # Root layout
│   ├── index.tsx       # Home (/)
│   ├── about.tsx       # About (/about)
│   ├── experience.tsx  # Experience (/experience)
│   ├── works.index.tsx # Works listing (/works)
│   ├── works.$slug.tsx # Single work (/works/:slug)
│   └── contact.tsx     # Contact (/contact)
├── styles.css          # Tailwind v4 + design tokens
└── router.tsx          # Router configuration

index.html              # Static SEO + Open Graph meta tags
vercel.json             # Vercel SPA rewrites
```

---

## 🎨 Customization

### Personal Information

Edit `src/lib/site.ts` to update:

- Name, role, location
- Social links (GitHub, GitLab, LinkedIn, etc.)
- Job history (with English / Italian translations)

### Projects

Edit `src/lib/works.ts` to add or modify portfolio items.

### Theme & Colors

Design tokens (colors, spacing, shadows) are defined as CSS variables in `src/styles.css` using the `oklch` color space. Add or tweak themes in `src/lib/themes.ts`.

### Translations

i18n strings live in `src/lib/i18n.tsx`. Add new keys to both `en` and `it` dictionaries.

### SEO & Open Graph

Static meta tags (title, description, Open Graph, Twitter Card) are defined in `index.html` so that crawlers and social platforms (LinkedIn, X/Twitter, Facebook, WhatsApp) can read them without executing JavaScript. Update them there when changing site-wide metadata, and remember to provide a real `/og.png` (1200×630) in `public/`.

---

## 📜 Scripts

| Command            | Description                          |
| ------------------ | ------------------------------------ |
| `npm run dev`      | Start the dev server with HMR        |
| `npm run build`    | Production build                     |
| `npm run preview`  | Preview the production build locally |
| `npm run lint`     | Run ESLint                           |
| `npm run format`   | Format the codebase with Prettier    |

---

## 📄 License

Released under the [MIT License](./LICENSE). Free to use as a starting point for your own portfolio — attribution is appreciated but not required.

## 💖 Support
If you like this repository please give it a star! ⭐
反馈内容错误

看看同类模板

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