Token导航 LogoToken导航TokenDH.com
开发操作浏览器clawhub未标认证来源可访问clear审计提醒

reactive-resumeReact 式简历

Agent Skill

用于辅助前端页面、组件、样式和交互逻辑的开发与维护。它适合让 Agent 生成或审查 React、Next.js、Vue、Tailwind、CSS 等相关代码,整理组件结构,或定位布局和性能问题。使用时需要结合项目现有设计系统、路由和构建方式,避免只生成孤立片段;涉及页面改动时,应配合本地预览和构建检查确认视觉效果。

总安装

8,544

周安装

349

GitHub Stars

公开资料未说明

下载量

2,764
OpenClaw

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

MIT-0

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:reactive-resume(React 式简历)
来源仓库:https://github.com/pupuking723/reactive-resume
安装命令:
openclaw skills install reactive-resume
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install reactive-resume

简介

指导 Reactive Resume 开源项目的本地开发与环境搭建流程。

  • 使用 TanStack Start、PostgreSQL 与 Better Auth 等技术栈。
  • 适合在 OpenClaw 中定制简历模板或贡献代码时参考实现细节。
  • 需准备 Docker 环境运行数据库依赖,注意端口冲突问题。
  • 建议阅读贡献指南后再提交 PR 以保持代码风格统一。

SKILL.md

name
reactive-resume
description
Reactive Resume 开源简历构建器开发指南。使用 TanStack Start (React 19 + Vite)、PostgreSQL + Drizzle ORM、ORPC (Type-safe RPC)、Better Auth。当用户需要:(1) 本地开发环境搭建,(2) 自定义模板开发,(3) 数据库迁移管理,(4) PDF 导出配置,(5) 自部署配置,(6) 功能扩展开发。

Reactive Resume 开发工作流

概述

Reactive Resume 是一个免费开源的简历构建器,使用现代化全栈 TypeScript 技术栈。本技能指导你进行本地开发、模板定制、功能扩展和自部署。

核心特性

  • 实时预览简历编辑
  • 多模板系统(Pokémon 主题命名)
  • PDF/JSON 导出
  • AI 集成(OpenAI/Gemini/Claude)
  • 多语言支持(Crowdin)
  • 自部署友好(Docker)

快速开始

1. 环境要求

  • Node.js 20+
  • pnpm 9+
  • Docker + Docker Compose
  • Git

2. 克隆项目

git clone https://github.com/amruthpillai/reactive-resume.git
cd reactive-resume

3. 启动依赖服务

# 启动 PostgreSQL 和 Browserless(PDF 导出必需)
sudo dockerd &>/var/log/dockerd.log &
sudo docker compose -f compose.dev.yml up -d postgres browserless

4. 配置环境变量

cp .env.example .env

关键配置

# 本地开发
APP_URL=http://localhost:3000

# Database (Docker PostgreSQL)
DATABASE_URL=postgresql://postgres:postgres@localhost:5432/reactive_resume

# Printer (Browserless for PDF)
# 获取 Docker bridge IP:
# sudo docker network inspect reactive_resume_default --format '{{range .IPAM.Config}}{{.Gateway}}{{end}}'
PRINTER_APP_URL=http://<GATEWAY_IP>:3000
PRINTER_ENDPOINT=ws://<GATEWAY_IP>:4000?token=1234567890

# Auth (可选,开发可留空)
BETTER_AUTH_SECRET=your-secret-key
BETTER_AUTH_COOKIE_DOMAIN=localhost

# S3/Storage (可选,开发用本地文件系统)
# 留空则使用本地存储

5. 安装依赖并启动

pnpm install
pnpm dev

访问 http://localhost:3000

技术栈

类别技术
框架TanStack Start (React 19, Vite, Nitro)
语言TypeScript
数据库PostgreSQL + Drizzle ORM
APIORPC (Type-safe RPC)
认证Better Auth
样式Tailwind CSS
UI 组件Radix UI
状态管理Zustand + TanStack Query

项目结构

reactive-resume/
├── src/
│   ├── app/                    # TanStack Start 路由
│   │   ├── (public)/           # 公开页面
│   │   ├── (dashboard)/        # 仪表台页面
│   │   ├── api/                # API 路由 (ORPC)
│   │   └── __root.tsx          # 根路由
│   ├── components/
│   │   ├── ui/                 # 基础 UI 组件
│   │   ├── resume/             # 简历相关组件
│   │   ├── templates/          # 模板组件
│   │   └── forms/              # 表单组件
│   ├── lib/
│   │   ├── auth/               # 认证逻辑
│   │   ├── db/                 # 数据库配置
│   │   ├── printer/            # PDF 打印服务
│   │   └── utils.ts
│   ├── server/
│   │   ├── db/
│   │   │   ├── schema/         # Drizzle schema 定义
│   │   │   └── migrations/     # 数据库迁移
│   │   └── api/
│   │       └── routers/        # ORPC 路由定义
│   └── types/
├── public/
│   └── templates/              # 简历模板
│       ├── jpg/                # 模板预览图
│       └── [template-name]/    # 模板组件
├── locales/                    # 多语言文件
├── scripts/
├── docs/
└── compose*.yml                # Docker Compose 配置

核心工作流

开发新模板

  1. public/templates/ 创建模板目录
public/templates/
└── my-template/
    ├── index.tsx          # 模板主组件
    ├── schema.ts          # 模板配置 schema
    └── preview.jpg        # 预览图
  1. 实现模板组件
import { TemplateProps } from '@/types/template';

export function MyTemplate({ resume }: TemplateProps) {
  return (
    <div className="template my-template">
      {/* 简历内容 */}
    </div>
  );
}
  1. 注册模板

src/lib/templates.ts 中添加模板配置

  1. 测试导出
pnpm dev
# 访问 http://localhost:3000/editor
# 选择新模板,测试 PDF 导出

数据库迁移

# 修改 schema 后生成迁移
pnpm db:generate

# 运行迁移(开发启动时自动执行)
pnpm db:migrate

# 查看迁移状态
pnpm db:status

添加新功能 API

  1. src/server/api/routers/ 创建路由
// src/server/api/routers/custom.ts
import { router, publicProcedure } from '../trpc';

export const customRouter = router({
  myFeature: publicProcedure
    .input(z.object({ id: z.string() }))
    .query(async ({ ctx, input }) => {
      // 业务逻辑
      return { data: 'result' };
    }),
});
  1. 在根路由注册
// src/server/api/root.ts
import { customRouter } from './routers/custom';

export const appRouter = router({
  custom: customRouter,
  // ... 其他路由
});
  1. 前端调用
import { api } from '@/lib/api';

const result = await api.custom.myFeature.query({ id: '123' });

自部署配置

Docker Compose 部署

# docker-compose.yml
version: '3.8'
services:
  reactive-resume:
    image: amruthpillai/reactive-resume:latest
    ports:
      - "3000:3000"
    environment:
      - DATABASE_URL=postgresql://user:pass@db:5432/reactive_resume
      - PRINTER_ENDPOINT=ws://printer:3000?token=1234567890
    depends_on:
      - postgres
      - printer

  postgres:
    image: postgres:15-alpine
    environment:
      - POSTGRES_USER=user
      - POSTGRES_PASSWORD=pass
      - POSTGRES_DB=reactive_resume
    volumes:
      - postgres_data:/var/lib/postgresql/data

  printer:
    image: browserless/chrome:latest
    ports:
      - "4000:3000"
    environment:
      - TOKEN=1234567890

volumes:
  postgres_data:

常见问题

Q: PDF 导出失败?

A: 检查 Browserless 服务是否运行,确认 PRINTER_ENDPOINT 配置正确(使用 Docker bridge IP 而非 localhost)。

Q: 如何获取 Docker bridge IP?

A: 运行 sudo docker network inspect reactive_resume_default --format '{{range .IPAM.Config}}{{.Gateway}}{{end}}'

Q: 邮件验证跳过?

A: 开发环境点击注册后的 "Continue" 按钮可跳过邮件验证。

Q: 如何添加新语言?

A: 在 locales/ 目录添加语言文件,通过 Crowdin 管理翻译。

最佳实践

✅ 推荐

  • 使用 ORPC 类型安全 API
  • 所有数据库访问通过 Drizzle ORM
  • 组件使用 Radix UI 基础组件
  • 样式使用 Tailwind CSS
  • 提交前运行 pnpm lintpnpm typecheck

❌ 避免

  • 直接写 SQL(使用 Drizzle)
  • 跳过类型检查
  • 硬编码配置(使用环境变量)
  • 忽略多语言支持

资源导航

官方文档

社区


参考文件

  • references/templates-guide.md - 模板开发完整指南
  • references/deployment.md - 部署配置参考
  • references/api-reference.md - API 开发参考

脚本工具

  • scripts/create-template.py - 快速创建模板结构
  • scripts/db-reset.py - 重置开发数据库

资产模板

  • assets/template-boilerplate/ - 模板开发脚手架

适合场景

01

OpenClaw 用户查找和安装 Skill 时

02

用户想查找某类 Agent Skill 时

03

需要根据任务场景推荐可安装能力包时

04

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

OpenClaw

73.08%
按下载量换算2,020

安全审计

VirusTotal

可疑

ClawScan

通过

Static analysis

通过

权限和风险

操作浏览器

该 Skill 可能涉及浏览器控制能力,使用时可能读取或操作网页内容,需要在受控环境中确认权限边界。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills