2025_MyShell_Developers_Recap
  • TypeScript 60.7%
  • JavaScript 26%
  • Shell 7%
  • Batchfile 2.7%
  • CSS 1.7%
  • Other 1.9%
Find a file
Arxchibobo c18bb7c99f chore: AI metadata cleanup + markdown formatting
Bulk formatting normalization - emphasis style, line spacing, AI signature removal.
Companion to main repo d4b657a workspace cleanup.
2026-06-01 12:37:37 +08:00
assets chore: AI metadata cleanup + markdown formatting 2026-06-01 12:37:37 +08:00
CCimages fix: 删除旧的抽奖弹窗代码,修复页面空白问题 2025-12-26 19:36:01 +08:00
functions chore: AI metadata cleanup + markdown formatting 2026-06-01 12:37:37 +08:00
scripts chore: AI metadata cleanup + markdown formatting 2026-06-01 12:37:37 +08:00
services chore: AI metadata cleanup + markdown formatting 2026-06-01 12:37:37 +08:00
utils chore: AI metadata cleanup + markdown formatting 2026-06-01 12:37:37 +08:00
.env.local.example chore: 重命名CSV文件为英文名并添加环境变量配置 2025-12-26 15:45:55 +08:00
.gitignore feat: Initialize MyShell 2025 Yearly Recap project 2025-12-25 17:51:30 +08:00
API_PROXY_SOLUTION.md chore: AI metadata cleanup + markdown formatting 2026-06-01 12:37:37 +08:00
App.tsx chore: AI metadata cleanup + markdown formatting 2026-06-01 12:37:37 +08:00
CLAUDE.md chore: AI metadata cleanup + markdown formatting 2026-06-01 12:37:37 +08:00
cloudbuild.yaml chore: AI metadata cleanup + markdown formatting 2026-06-01 12:37:37 +08:00
configure-trigger.sh docs: 添加 API Key 配置指南和快速修复文档 2025-12-26 17:44:40 +08:00
data.ts feat: 数据校对与去重修复 - 完整实现真实CSV数据导入 2025-12-26 15:30:25 +08:00
db.ts chore: AI metadata cleanup + markdown formatting 2026-06-01 12:37:37 +08:00
DEBUG.md chore: AI metadata cleanup + markdown formatting 2026-06-01 12:37:37 +08:00
DEPLOY_CLOUD_FUNCTION.md chore: AI metadata cleanup + markdown formatting 2026-06-01 12:37:37 +08:00
DEPLOYMENT.md chore: AI metadata cleanup + markdown formatting 2026-06-01 12:37:37 +08:00
Dockerfile fix: 添加构建时 API Key 注入支持 2025-12-26 17:35:00 +08:00
FEATURE_SIMPLIFICATION_SUMMARY.md chore: AI metadata cleanup + markdown formatting 2026-06-01 12:37:37 +08:00
IMPLEMENTATION_COMPLETE.md chore: AI metadata cleanup + markdown formatting 2026-06-01 12:37:37 +08:00
index.css fix: 修复 Vite 构建配置 2025-12-26 16:35:13 +08:00
index.html fix: 修复 Vite 构建配置 2025-12-26 16:35:13 +08:00
index.tsx chore: AI metadata cleanup + markdown formatting 2026-06-01 12:37:37 +08:00
LOTTERY_EASTER_EGG.md chore: AI metadata cleanup + markdown formatting 2026-06-01 12:37:37 +08:00
metadata.json chore: AI metadata cleanup + markdown formatting 2026-06-01 12:37:37 +08:00
myshell-bots-2025-all.csv chore: 重命名CSV文件为英文名并添加环境变量配置 2025-12-26 15:45:55 +08:00
myshell-bots-2025.csv chore: 重命名CSV文件为英文名并添加环境变量配置 2025-12-26 15:45:55 +08:00
NEXT_STEPS.md chore: AI metadata cleanup + markdown formatting 2026-06-01 12:37:37 +08:00
package-lock.json feat: 简化为只生成感谢信,添加 Title 系统和分享功能 2025-12-26 18:44:46 +08:00
package.json feat: 简化为只生成感谢信,添加 Title 系统和分享功能 2025-12-26 18:44:46 +08:00
QUICK-FIX.md chore: AI metadata cleanup + markdown formatting 2026-06-01 12:37:37 +08:00
README.md chore: AI metadata cleanup + markdown formatting 2026-06-01 12:37:37 +08:00
SIMPLIFIED_FEATURES.md chore: AI metadata cleanup + markdown formatting 2026-06-01 12:37:37 +08:00
STATUS_REPORT.md chore: AI metadata cleanup + markdown formatting 2026-06-01 12:37:37 +08:00
tsconfig.json chore: AI metadata cleanup + markdown formatting 2026-06-01 12:37:37 +08:00
types.ts chore: AI metadata cleanup + markdown formatting 2026-06-01 12:37:37 +08:00
VERIFICATION.md chore: AI metadata cleanup + markdown formatting 2026-06-01 12:37:37 +08:00
vite.config.ts chore: AI metadata cleanup + markdown formatting 2026-06-01 12:37:37 +08:00
生图类bot list (1) 2d43f81ff51e81c9b6c2ec60b255245d.csv feat: 添加隐藏抽奖功能并更新数据为最新 CSV 2025-12-26 17:57:23 +08:00

MyShell 2025 开发者年度回顾

🎉 一个基于真实数据的开发者年度总结动态网站

📊 项目概述

本项目是 MyShell 2025 年度开发者回顾网站,展示了:

  • 1157 个 Bot(去重后的唯一 Bot
  • 175 位开发者
  • 152 个 Tag 分类

所有数据来自真实的 CSV 文件,经过严格的解析、去重和验证。

一键启动

# 1. 克隆仓库
git clone https://github.com/Arxchibobo/2025_MyShell_Developers_Recap.git
cd 2025_MyShell_Developers_Recap

# 2. 配置环境变量可选用于AI功能
cp .env.local.example .env.local
# 编辑 .env.local 填入你的 Gemini API Key

# 3. 安装依赖(必须使用 --legacy-peer-deps
npm install --legacy-peer-deps

# 4. 启动开发服务器
npm run dev

# 5. 打开浏览器访问
# http://localhost:3000

数据已预先解析完成,无需额外配置即可运行!

🔒 启用 AI 功能(感谢信和头像生成)

方法 1使用 Cloud Functions 后端代理(推荐)

这是生产环境推荐的安全方案,只需 5-10 分钟:

  1. 阅读 DEPLOY_CLOUD_FUNCTION.md
  2. 执行部署脚本:
    cd functions/generate-content
    ./deploy.sh 你的_API_Key  # Mac/Linux
    # 或
    deploy.bat 你的_API_Key   # Windows
    
  3. 完成AI 功能自动启用

优势:

  • API Key 安全存储在服务端
  • 前端代码中完全不包含 API Key
  • 即使 API Key 泄露也无需重新构建
  • 5 分钟即可完成部署

方法 2本地开发仅用于测试

⚠️ 警告: 此方法会将 API Key 编译到前端代码中,不适合生产环境

echo "GEMINI_API_KEY=你的_API_Key" > .env.local
npm run dev

当前状态:

  • 核心功能正常(数据展示、开发者查询、抽奖)
  • AI 功能等待部署 Cloud Functions
  • 🔒 生产环境已配置使用后端代理

🚀 快速开始

环境要求

  • Node.js 18+ 或更高版本
  • npm 或 pnpm

安装依赖

# 使用 --legacy-peer-deps 解决 React 19 和 recharts 的版本冲突
npm install --legacy-peer-deps

重要: 必须使用 --legacy-peer-deps 标志,否则会因 peer dependencies 冲突而安装失败。

启动开发服务器

npm run dev

访问 http://localhost:3000 查看网站。

构建生产版本

npm run build
npm run preview

📁 项目结构

├── scripts/
│   ├── parseCSV.ts          # CSV 解析脚本
│   └── validateData.ts      # 数据验证脚本
├── assets/
│   └── bots.json           # 解析后的 JSON 数据
├── App.tsx                  # 主应用组件
├── data.ts                  # 数据导入模块
├── db.ts                    # 内存数据库
├── types.ts                 # TypeScript 类型定义
├── myshell-bots-2025.csv    # 原始 CSV 数据源
└── .env.local               # Gemini API Key 配置

🔧 数据处理流程

1. 解析 CSV 数据

npm run parse-csv

功能:

  • 读取原始 CSV 文件1168 行数据)
  • 处理引号内的换行符和逗号
  • 提取开发者名称(去除 Notion URL
  • 按 `MyShell_URL` 去重(保留最新日期的记录)
  • 生成 `assets/bots.json` 文件

输出示例:

✅ 成功解析 1168 条记录
🔍 去重后: 1157 条记录
📊 最终数据: 1157 个 Bot, 175 位开发者

2. 验证数据完整性

npm run validate-data

验证项:

  • Bot 总数1150-1170 范围)
  • 开发者数量170-180 范围)
  • URL 唯一性
  • 必需字段完整性
  • URL 格式有效性
  • 日期格式YYYY/MM/DD
  • Tag 数据完整性

📊 数据说明

CSV 数据源

文件: myshell-bots-2025.csv

字段结构:

Bot_Name,微信/Discord/x,Tag,MyShell_URL,Note,Launch_Date

去重策略

按 `MyShell_URL` 去重,当有重复 URL 时保留 `Launch_Date` 较新的记录。

原因:

  • 原始 CSV 有 1168 行数据
  • 去重后得到 1157 个唯一 Bot
  • 移除了 11 条重复记录

开发者名称提取

从 `微信/Discord/x` 字段提取开发者名称,自动去除 Notion URL。

示例:

原始: "李火火 (https://www.notion.so/1bb3f81ff51e80eba138d176a1426398?pvs=21)"
提取后: "李火火"

🎨 功能特性

📄 页面一总览页Overview

  • 展示 Bot 总数和开发者总数
  • 显示所有开发者名单(交互式词云)
  • 社区感谢信
  • 核心统计数据卡片

👤 页面二成就查询Creator Lookup

  • 输入开发者名称查询
  • 支持精确匹配模糊匹配
  • 显示该开发者的所有 Bot
  • 使用 Gemini AI 生成个性化总结
  • 彩纸动画庆祝效果

🐛 常见问题

Q: 为什么 Bot 总数是 1157 而不是 1168

A: 原始 CSV 包含 1168 行数据,但有 11 条重复记录(相同的 MyShell_URL。去重后得到 1157 个唯一 Bot。

Q: 开发者数量为什么是 175

A: 这是从 CSV 的 `微信/Discord/x` 字段提取的唯一开发者名称数量。已自动去除 Notion URL 部分。

Q: 如何重新生成数据?

A: 执行以下命令:

# 1. 确保 CSV 文件在根目录
# 2. 解析 CSV
npm run parse-csv

# 3. 验证数据
npm run validate-data

# 4. 重启开发服务器
npm run dev

📈 数据统计摘要

Top 10 开发者

  1. 工作人员: 77 个 bot
  2. 放空的记忆: 63 个 bot
  3. 金运: 50 个 bot
  4. 李火火: 49 个 bot
  5. L gong: 44 个 bot
  6. soilsigh: 43 个 bot
  7. 宣宣: 43 个 bot
  8. _12zzz22(discord): 37 个 bot
  9. 牟某某: 36 个 bot
  10. 亦诚: 27 个 bot

构建时间: 2025-12-26 数据版本: v1.0 技术支持: Claude Code + Gemini 3