Featured image of post 从 0 到 2 个工具站:DevStoreX 的工程复盘

从 0 到 2 个工具站:DevStoreX 的工程复盘

这是一篇偏工程化的复盘:我们如何在一套代码结构里完成中英文两套工具站,落地部署、SEO 与统计,并解决各种线上细节问题。

背景与目标

目标很清晰:

  1. 做一个英文工具站(tools.devstorex.top),以 SEO + 工具聚合为主。
  2. 在同一工程中再做中文站(tools-cn.devstorex.top),按中文关键词序列逐个实现。
  3. 后端只保留少量必要接口,尽量前端本地 完成计算。
  4. 完成部署、统计、站点地图与基础 SEO。

工程结构

统一工程目录是关键,避免维护两套仓库:

1
2
3
4
5
GATools/
├─ site/        # English
├─ site-cn/     # 中文
├─ server/      # Go 后端(API)
├─ doc/         # 文档与报告

前端是静态页面,后端只承担确实需要的接口(如端口扫描、手机号归属地等)。

工具批量实现:从关键词列表驱动

中文站的工具不是"想到做什么就做什么",而是严格按 doc/keywords-cn.md 的顺序推进。这样做有两个好处:

  1. 任务拆解清晰,可控、可追踪。
  2. SEO 关键词覆盖完整,不容易遗漏高价值条目。

实现上采用统一页面模板 + 每页 page.css / page.js 的方式,保证样式一致、迭代成本低。
每个工具页面都保留:

  • Hero 区域:标题、说明、标签
  • 表单区:输入/操作
  • 结果区:卡片或列表
  • FAQ / 说明区(必要时)

后端策略:只做必须的接口

坚持"能前端就前端"的原则。只有这类工具才走后端:

  • 端口扫描
  • Ping / 网络延迟(需要系统命令)
  • 手机号码归属地(本地 sqlite 数据库)
  • 身份证/行政区划等数据型查询

Go 后端统一 /api/* 路由映射,避免每个 API 都写一条 Nginx 配置。

部署设计

采用单脚本自动部署:

  • 生成 linux 可执行文件
  • 打包 site/site-cn/server/data/
  • 上传到服务器 /opt/devstorex/tools
  • systemd 重启后端
  • Nginx reload

部署脚本:deploy_tools.sh
这套流程简化了发布动作,并保证站点与后端一体更新。

SEO 与统计落地

SEO 是工具站成败的分水岭,主要做了这些:

  1. 全站 canonical 修正(英文站与中文站分域名)
  2. OpenGraph / Twitter Meta 补齐
  3. JSON‑LD(WebApplication)注入
  4. sitemap.xml 自动生成
  5. robots.txt 明确允许 + sitemap
  6. Bing 站点验证
  7. GA 统计接入(中文站)

此外,为了提升页面内部链接结构,给所有工具页加入了"相关工具推荐"模块,避免孤立页面。

线上问题与修复

一些真实踩坑:

  • robots.txt 被 CDN 缓存成首页:通过 Nginx no-store + Cloudflare 清缓存解决。
  • JSON/文本工具的样式问题:统一按钮与结果区布局后稳定。
  • 文件上传组件在 MCP 浏览器不可用:真实浏览器可用,最终保留现有方案。
  • PDF 拆分报错:修正为 copyPages 方式处理。

这些问题不复杂,但如果没有系统化复盘,很容易一遍遍踩。

得到的经验

  1. 关键词驱动的生产力很高:能避免"永远在做首页"。
  2. 统一模板是救命的:否则 100 个工具会变成 100 套样式。
  3. SEO 要先搭框架:否则后期补救工作量极大。
  4. 部署一定要脚本化:人工操作一定会出错。

结语

这套中英文工具站并不复杂,但能跑起来、可维护、可扩展,并且有清晰的 SEO 路径。
后续如果要扩展更多站点(如日文/西班牙文),可以直接复用当前结构。

如果你也在做工具站,希望这篇复盘能让你少踩一些坑。