# 一个程序员用 PHP 写了个免费家谱工具，3 年帮 500 个家族"云修族谱"

> 知乎/CSDN 双发稿 · 2026-08-13
> 作者：happyli · 工具地址：<https://www.funnyai.com/family/>

---

## 一、故事开始

去年清明，我回老家给爷爷上坟。爸爸在坟前突然说了一句：

> 「你爷爷的爸爸叫什么，我都不记得了。」

那一瞬间，我突然意识到：**我们家这条根，快断了。**

回来后我搜了一圈「家谱软件」——要么收费几千，要么是单机软件装在老舅的 Windows XP 上，要么就是腾讯相册里几页手写照片。

没有一款**在线、免费、能共享给整个家族**的工具。

于是我自己写了一个。

---

## 二、我做的工具长什么样

**地址**：<https://www.funnyai.com/family/>

**核心就三件事**：

### 1. 录入成员（30 秒一个）

| 字段 | 说明 |
|---|---|
| 姓 / 名 | 李乾文、李坤兴 |
| 父亲 ID / 母亲 ID | 串起家族的关键 |
| 公开 / 私密 | 私密成员只有创建者和管理员能看到 |
| 朝代 / 出生日期 | 不知道可以空着 |

**亮点**：不需要注册就能浏览，要编辑再注册。

### 2. 一键生成家谱图（6 套主题）

点任意成员的「家谱图」按钮，自动展开「**父母 + 子女 + 配偶**」三层关系，支持：
- 🖱️ 拖动画布
- 🔍 滚轮缩放
- 👆 点击节点继续展开
- 🎨 6 套主题：暗黑 / 浅色 / 深蓝 / 森林绿 / 玫瑰紫 / 复古米色

**技术细节**：用 SVG + 手写了一套"自适应布局"算法，不会让节点挤在一起。

### 3. 分享到家族群

点首页的「分享到家谱群」按钮，自动生成一张 1080x1920 的竖版海报，**带二维码 + 家族总人数 + 最新公开成员列表**，长按保存到相册直接发到微信群/朋友圈。

---

## 三、技术选型（给同行看的）

- **后端**：PHP 8.0 + MySQL 8.0（家里那台 4 核 8G 的小服务器就够）
- **前端**：jQuery + Layer + 自研 SVG 渲染（没用 d3 是因为要支持 IE）
- **海报生成**：GD 库 + TTF 字体（`simhei.ttf`），不用 ImageMagick 是因为部署简单
- **缓存**：海报 24h 缓存到本地磁盘，省 90% 重复计算
- **SQL 安全**：100% PDO 预处理，零注入（项目里埋点看过的同学都知道，网上一堆机器人天天扫）

数据库表就一张 `funny_people`：

```sql
CREATE TABLE funny_people (
  ID          INT PRIMARY KEY AUTO_INCREMENT,
  Last_Name   VARCHAR(50)  COMMENT '姓',
  Name        VARCHAR(50)  COMMENT '名',
  Alias       VARCHAR(100) COMMENT '别名/字/号',
  Father_ID   INT          COMMENT '父亲 ID',
  Mother_ID   INT          COMMENT '母亲 ID',
  Spouse_ID   INT          COMMENT '配偶 ID',
  Gender      VARCHAR(10)  COMMENT '男/女/未知',
  Public      TINYINT      DEFAULT 0 COMMENT '0=私密 1=公开',
  Creator     INT          COMMENT '创建者用户 ID',
  Dynasty     VARCHAR(50)  COMMENT '朝代',
  Birth_Date  VARCHAR(50)  COMMENT '出生日期',
  Memo        TEXT         COMMENT '备注',
  Create_Time DATETIME     DEFAULT CURRENT_TIMESTAMP
);
```

就这么简单。

---

## 四、运营 3 年，我学到的 3 件事

### 1. "免费"是最大的护城河

宗亲会、修谱委员会这些组织，**预算 0**。一旦收费 1 块钱，他们就跑了。
所以我从第一天就决定**永久免费、不加广告、不做会员**。
3 年下来，DAU 才 30 人，但**几乎每个进来的用户都建了 10+ 个成员**——因为他们是真的需要。

### 2. 「私密」是刚需

很多人一开始想做"全网公开家谱"，用着用着就发现：
> 「我爷爷 1949 年是地主，这件事不能让别人知道」

所以我加了**公开/私密切换**。私密成员只有创建者和管理员能看完整信息，公开页只显示姓名。

这个功能上线后，**留存翻了一倍**。

### 3. 「分享海报」比 SEO 有用 100 倍

家谱是个**小众垂直**领域，搜索流量天花板很低。
但每个用工具的人，背后都是一个家族群（10-200 人）。
**一个家族群发一次，就拉来 10-20 个新用户**。

我做的海报生成器（GD 库 1080x1920），一周能带来 50% 的新增。

---

## 五、给同样想做"小而美"工具的同学 3 条建议

1. **别追风口，做「有人真的会用」的事**
   家谱、AI 教育、本地美食、宗亲会……这些"土"赛道竞争小、用户真诚。

2. **用最朴素的栈**：PHP + MySQL + jQuery + 一台小服务器 = 5 年不用换
   别动不动就上 K8s、GraphQL、Serverless，**维护成本才是最大的成本**。

3. **埋点要早做**：
   我做完 100 个用户才加埋点，回头看很多功能做错了方向。
   建议一上线就接 GA / 自建事件表，3 个月后再决策下一步。

---

## 六、工具地址

🎉 **<https://www.funnyai.com/family/>**

- 浏览器打开就能用
- 不需要注册就能浏览
- 想编辑就注册（30 秒）
- 数据可批量导入（CSV 格式）
- 海报可分享到任意群

欢迎体验，也欢迎提建议。如果你也想做"小而美"的工具，我们可以交流。

---

**附录：项目代码统计**

- PHP 代码：约 8000 行
- JavaScript 代码：约 3000 行
- 数据库表：1 张主表 + 5 张辅助表
- 服务器成本：50 元/月（4 核 8G）
- 3 年累计服务：500+ 家族、3000+ 录入成员
- 给我带来的收入：0 元

但我做这件事获得了**比工资更重要的东西**：我爷爷的爸爸叫什么，我终于知道了。

他叫**李照瑶**。

---

> 如果你也被这篇文章打动，欢迎**点赞、收藏、转发**给身边关心家族传承的朋友。
> 也可以直接打开 <https://www.funnyai.com/family/>，为您的家族建一座永不消失的"数字祠堂"。
