13 KiB
Note
别担心,LifeForge 仍在活跃开发中。🚀
更新 · 2026年5月31日
UI 库的重写以及随后从 Tailwind CSS 的迁移已成功完成。
核心客户端架构现在完全运行在新的内部 UI 系统之上。剩余工作主要涉及迁移现有模块以及更新项目文档。
这一里程碑标志着 LifeForge 历史上最大规模架构转型之一的完成。
不过,也别太放松。这肯定不会是最后一次大规模转型。如果 LifeForge 教会了我们什么,那就是每一个"最终架构"最终都会变成明天的迁移项目。:)
Important
UI 架构迁移已完成
此前,开发因模块联邦架构中的一个关键样式问题而受阻。
发生了什么?
宿主应用和联邦模块各自独立打包 Tailwind CSS,导致 CSS 层叠规则在模块边界之间产生冲突,具体表现为:
- 不可预测的样式覆盖
- 响应式工具类失效
- 跨模块样式干扰
- 宿主与远程应用间渲染行为不一致
当多个 Tailwind CSS 包共存于同一运行时中时,层叠规则的顺序变得难以可靠控制。
每个联邦模块都会生成自己的 CSS 输出,但所有样式最终会汇入同一个文档层叠中。随着模块的动态加载与组合,样式的优先级可能取决于注入顺序而非应用意图,从而产生难以调试的细微样式冲突。
虽然 Tailwind CSS 在传统应用架构中表现出色,但它并非为大规模联邦前端系统而设计。
问题从来都不隐蔽。
一旦多个 Tailwind 包被引入模块联邦架构,样式冲突立即显现,并可能影响 UI 的整个区域。由于冲突源于独立生成的 CSS 输出在共享层叠中的相互作用,在不改变底层样式模型的前提下,不存在实用且可靠的修复方案。
因此,从 Tailwind 迁移并非偏好变更,而是架构上的必然选择。
解决方案
PR #93 引入了内部 UI 库和样式架构的完整重新设计。
新系统具有以下特点:
- 基于设计令牌
- 组件化
- 完全独立于 Tailwind CSS
- 专门为模块联邦设计
- 建立在单一共享 UI 约定之上
所有应用不再各自生成并打包 CSS,而是直接通过
@lifeforge/ui使用 UI 原语、令牌和样式行为。这使得
@lifeforge/ui成为整个平台视觉呈现的唯一权威来源。效果如下:
- 联邦模块不再打包自己的样式系统
- 无论模块加载顺序如何,视觉行为保持一致
- 样式所有权集中且可预测
- 跨模块层叠冲突从根本上被消除
此次迁移引入了破坏性变更,需要对整个代码库进行大规模重构,但它永久性地解决了一类在之前模型中无法可靠解决的架构问题。
Tip
寻找旧版?
基于 Tailwind 的最终实现已被保留,可供参考。
- 旧版发布:https://github.com/Lifeforge-app/lifeforge/releases/tag/legacy-final
- 旧版分支:https://github.com/Lifeforge-app/lifeforge/tree/legacy-final
旧版不再积极开发,但仍可作为历史参考、迁移指南或回顾先前实现的资料。
一个自托管的人生管理系统,助你高效规划生活的每一面。
🚧 项目正处于早期开发阶段,功能与模块可能会出现大幅度调整。最新动态请查阅 更新日志。
📋 目录
🔥 支持作者
如果您觉得 LifeForge 对你有帮助,欢迎请作者喝杯咖啡。
🤔 面临的问题
如今,我们依赖各式各样的应用来提升效率,但市面上的工具过多,反而令人分心,最终拖累生产力(相关讨论可见:为什么效率应用让人效率更低)。
许多软件即服务(SaaS)采用订阅制,长期累积是一笔不小的开支。更重要的是,这些服务常会收集你的数据用于广告推送、行为分析甚至AI训练,带来隐私泄露的风险。
✅ 我们的方案
LifeForge 是一个一体化的个人管理系统,旨在帮你高效打理生活的方方面面。无论是管理工作、规划项目、追踪个人目标,还是记录财务流动,LifeForge 都能轻松胜任!
采用模块化设计,你可以像搭积木一样,只安装自己需要的功能,打造一个纯粹、无干扰的专属空间。
我们极度重视隐私。你的所有数据都存储在你自己的服务器或设备上(本项目也不提供托管服务),你对自己的数据拥有完全的控制权。没有数据追踪,没有信息挖掘,只尊重你的隐私。
🧱 功能模块
LifeForge 的模块化架构提供了丰富的工具集,每个模块专注于生活的一个特定领域,如效率、财务、健康与学习等。你可以自由组合,按需启用,构建完全符合你习惯的个人管理系统。
核心模块概览:
- 效率工具:待办清单、项目管理、灵感收集箱、番茄钟等,助你厘清任务、捕捉灵感并保持专注。
- 财务管理:电子钱包、心愿单与预算模块,帮你轻松记录花销、规划储蓄和控制预算。
- 生活记录:通过日记与成就模块回顾成长,利用健身记录等功能保持健康生活节奏。
- 学习助手:闪卡、笔记与CFOP算法(魔方)模块,是学生和终身学习者的得力工具。
- 数字收藏:图书库、相册、吉他谱库等模块,帮你井井有条地管理各类数字资产。
- 信息处理:收件箱、专题信息(如樟宜机场指南)等模块,提升你的信息整理效率。
- 个性化:主题、布局等自定义模块,让你随心调整界面外观与交互方式。
这种模块化方式确保了极致的灵活性与扩展性。无论你是专业人士、在校学生还是兴趣爱好者,LifeForge 都能贴合你的需求。
完整模块列表请访问 GitHub
(全新的模块系统 Forgistry 正在开发中,敬请期待!)
🖥 界面预览
以下截图展示了部分功能,实际体验中还有更多精彩等你发现。
⌨️ 开始使用
🐳 LifeForge 现已支持 Docker 部署!只需几条命令即可快速运行。当然,你也可以选择按照文档进行手动安装。
详细的安装与配置指南,请查阅官方文档:
🤝 参与贡献
我们热烈欢迎社区成员的贡献!在开始之前,请先阅读 贡献指南。
为核心代码做贡献
项目尚处早期,建议在着手进行重大改动前,先到 讨论区 发起话题,以确保你的工作方向与项目一致,并避免重复劳动。
开发新模块
LifeForge 的模块化架构鼓励你创建自己的功能模块。如果你有此想法,请参考 模块开发指南。
提交需求与反馈
如果你有新功能建议或发现了程序错误,请在 GitHub Issues 中提交:
如果问题涉及特定模块,请前往对应模块的仓库提交。
协助翻译
我们正在招募志愿者,帮助将 LifeForge 界面翻译成更多语言。如果你感兴趣,请参阅本项目的 本地化指南。
针对单个模块的翻译工作,请查看该模块自身的文档说明。
💡 灵感与致谢
LifeForge 的诞生,源于对一体化个人管理工具的渴望,并深受 Volmarg 的个人管理系统项目 的启发。项目背景的完整故事可在文档中找到。
衷心感谢所有为本项目提供支持的优秀开源库与工具。
⭐️ Star 历史
增长曲线惊人。衷心感谢大家对本项目的支持!
📄 开源许可
LifeForge 由 Melvin Chia 创建,采用 知识共享 署名-非商业性使用-相同方式共享 4.0 国际 许可协议。
