我用单个 HTML 文件构建了一个免费英国个人理财应用。原因与实现方法。

发布: (2026年3月23日 GMT+8 08:07)
8 分钟阅读
原文: Dev.to

Source: Dev.to

请提供您希望翻译的完整文本内容(除代码块和 URL 之外),我将为您翻译成简体中文并保留原有的格式。

介绍

我不是开发者。

几个月前,我连一行代码都写不出来。我是一个住在澳大利亚的英国背包客,我对软件唯一的了解就是多年来一直被它弄得很沮丧。

我自认是个人理财狂热者。和我相处一天,我保证会比你想象的更频繁地提起这个话题。我尝试过的每一个理财工具,要么要求我的银行登录信息,要么需要每月订阅费用,或者完全围绕美国税法构建,只是给英国用户贴了层薄薄的外壳。

于是我只能靠电子表格凑合。它们能完成工作,我想,但从来没有真正满足我的需求。我始终找不到高效的记账系统,结果每个月月底都要花上两个小时来处理。它们在前瞻性分析方面也毫无用处——计算我的资本利得税(CGT)情况、模拟提前还贷的影响、估算何时可以实际停止工作,都做不到。

随后 AI 的声音大到我再也无法忽视。我阅读了足够的资料,明白“有想法”和“构建东西”之间的壁垒基本已经崩塌。我给自己设定了一个挑战:如果我可以随意构建任何东西,我真的会构建什么?

答案显而易见:构建我一直想要的理财应用。

我实际构建的东西

它叫 Vault。这是一个单 HTML 文件。你在浏览器中打开它,它就能工作。无需账户、无需服务器、无需订阅。你放进去的所有内容都保存在浏览器的 localStorage 中——这意味着我对这些内容零访问权限。这不是隐私政策的承诺,而是结构上不可能实现的。

Vault 专为英国用户打造,处理了大多数应用忽视的细节:

  • 资产净值追踪,正确扣除债务,支持多币种并实时外汇汇率
  • 支出追踪器,按类别设定预算上限,支持循环交易,并提供支出洞察
  • 薪资计算器,涵盖苏格兰与英格兰/威尔士/北爱尔兰的税率区间、养老金工资牺牲以及学生贷款还款
  • 资本利得税追踪,使用符合 HMRC 要求的加权平均成本,并自动排除 ISA 持仓
  • 印花税计算器,使用 2025 年 4 月后首次购房、第二套房以及额外房产买家的正确阈值
  • 场景规划器,覆盖租房 vs 买房、FIRE 时间线、按揭提前还款以及债务清偿
  • FIRE 计算器,提供四种增长模型
  • 投资(伦交所)和加密货币组合追踪

我用自然语言构建了所有这些。我描述我想要的功能,讨论细节,遇到不对劲的地方时提出异议并反复迭代。实际的编码工作由 Claude Code 完成。大约十分钟后,我就拥有了一个带暗色主题、包含三个部分的可运行网页应用。Claude Code 为我构建了一个完整可用的网站,所用时间甚至比煮一锅意面还短。

我当时以及现在仍然感到非常惊讶。

为什么它是免费且保留在你的设备上

隐私并不是营销噱头;它是首要的。

我看到的每个提供我想要功能的应用,要么收取订阅费,要么连接你的银行并将数据变现,或者两者兼有。那些免费的应用之所以免费,是因为你是产品本身。Snoop 通过使用你的消费数据进行账单切换推荐来赚钱。Emma 则通过高级套餐和金融产品推荐获利。没错——它们是企业。但这意味着工具永远不会完全站在你这边。

Vault 没有服务器可以发送你的数据。这不是我添加的功能——这只是单个 HTML 文件的本质。你的金融生活保留在你的设备上。如果我明天关闭项目,你的数据也不会消失。你可以把文件保存下来,永久本地运行。

它是免费的,因为我最初是为自己而构建的。如果其他人觉得它有用,这就是意义所在。我现在并不想创业。我是一个自学编程的背包客,打造了自己想要的东西。

当前进展

Vault 已上线。它可以正常使用,并且包含首次使用引导教程,这样在第一次打开时不会完全让人摸不着头脑。

它目前也是 v1。还有一些功能缺失,可能也有我尚未发现的 bug。数据存储在 localStorage 中,这意味着如果清除浏览器数据,数据就会丢失——等我把导出功能做好后请定期导出。

我仍在开发中。我还不确定它最终会怎样,但我现在就分享出来,因为唯一能判断它是否对其他人有用的方法就是让大家使用它。

如果你尝试使用,请告诉我哪些地方出错、哪些功能缺失、哪些地方让人不懂。你的反馈就是目前最重要的。

Vault screenshot 1

Vault screenshot 2

本文在 AI 辅助下撰写。每一句话都基于我构建 Vault 的亲身经验。

0 浏览
Back to Blog

相关文章

阅读更多 »

K7:轻量级 Vanilla JS 画廊灯箱

概览 K7:一个 vanilla JavaScript 画廊 lightbox,体积约 7.7 KB —— JS 和 CSS 合并在单个文件中,无依赖。只需一个标签即可在所有目标图片上激活它。