我花 2 个月做了个 103 工具的免费网站,0 服务器成本

19 阅读3分钟

我花 2 个月做了个 103 工具的免费网站,0 服务器成本

📚 这是 UtlKit 技术系列第 1 篇(开篇)系列索引 →


做开发这些年,每次要用在线工具,很多时候体验很差:

  1. 要注册登录 — 格式化个 JSON 还要先创建账号
  2. 满屏广告 — 工具本身被广告挤到角落
  3. 数据隐私 — 你的 JSON 里可能有 token,但工具把它发到服务器处理了
  4. 功能分散 — 格式化工具在 A 站,Base64 在 B 站,Hash 在 C 站

所以我想做一个:不用注册、没有广告、纯前端计算、数据不出浏览器的工具站。

目标很简单——如果我需要这个工具,别人可能也需要。

最终做出来的是 utlkit.com:103 个工具,8 个分类,零服务器成本。

需求分析

需求含义
纯前端计算所有逻辑在浏览器运行
零服务器成本静态托管,不需要 Node.js 后端
大量工具页面每个工具一个页面,SEO 友好
中英文双语i18n 支持
暗色/亮色模式用户偏好
手机适配响应式

技术选型:为什么不选其他方案

方案优点缺点为什么不选
纯 HTML/JS简单103 个页面管理困难开发效率太低
VuePress / VitePress面向文档,不太适合交互型工具模板不够灵活
Nuxt SSR功能强需要服务器违背零成本原则
Next.js 15 + output: 'export'SSR SEO + 客户端交互 + 静态托管有坑(后面会说)✅ 最佳平衡

核心决策:output: 'export'

// next.config.js
const nextConfig = {
  output: 'export',    // 静态导出
  trailingSlash: true, // 静态文件需要
  images: { unoptimized: true }, // 没有图像优化服务器
}

这个配置意味着:

  • ✅ 构建产物是纯 HTML/CSS/JS 文件
  • ✅ 可以部署到任何静态托管(Cloudflare Pages、Vercel、GitHub Pages)
  • ✅ 零服务器成本
  • ❌ 不能用 API Routes、Server Components、动态路由参数(某些模式)

部署:Cloudflare Pages 零成本

构建产物:out/ 目录,约 14 MB
部署目标:Cloudflare Pages
域名:utlkit.com
月成本:¥0

构建流程

npm run buildnext build (output: 'export')
  → 生成 out/ 目录
  → clean-index-txt.js (删除 index.txt)
  → 产出 103+ 个静态 HTML 文件

Cloudflare Pages 自动 CI/CD:git push → 自动构建 → 自动部署,约 3 分钟上线。

这个系列还会写什么

上面是故事和选型,后面的文章是项目整体架构设计和实际踩坑过程,希望能对其他朋友有所帮助:

篇目标题核心问题
1架构与取舍怎样的架构能提升开发效率
2React 19 静态导出报 Hydration MismatchSSR/CSR 不一致
3Cloudflare Pages 白页:index.txt 的坑content negotiation 机制
4Node.js 库在浏览器跑不了fs 依赖、ESM/CJS 互操作
5Sentry Source Map 从 0% 到完整解析tree-shake、HTTP API、区域检测
6Web Crypto API 做客户端加密MD5 缺失、AES-GCM、HMAC
7免费性能监控:PageSpeed CI0 成本持续监控 Core Web Vitals
8Cloudflare 缓存命中率 7%→90%+3 条 Cache Rules + 本地化优化
9暗色模式完美切换:从 Hydration Error 到零闪烁8 个坑的排查过程
10多语言站点的 6 个坑query string → 路径前缀,3 次方案重构

每篇文章都有完整的排查过程、代码示例和经验总结。


📚 这是 UtlKit 技术系列第 1 篇(开篇)系列索引 →


项目信息

  • 网站: utlkit.com
  • 技术栈: Next.js 15 + React 18 + TypeScript + Tailwind CSS
  • 部署: Cloudflare Pages
  • 工具数: 103 个,8 个分类
  • 成本: ¥0/月

第 2 篇将介绍架构设计:目录结构、组件抽象、浏览器内运行取舍、i18n 方案。如果觉得有帮助,欢迎关注系列更新。