Show HN: Lightwave – 实时笔记应用,3.5 年手写 JavaScript

发布: (2026年2月16日 GMT+8 04:57)
3 分钟阅读

Source: Hacker News

概览

Hi HN!
我已经独自开发 Lightwave 大约三年半了。我尝试过所有新的项目/笔记工具(Notion、Asana、Trello 等),但总是回到纯文本文件。我想要一种在首次触摸时感觉像文本编辑器,但在需要时又能发展出真实结构的工具。

https://lightwave.so – 上面的链接有一个按钮,可一键创建测试账号。

技术栈

  • 后端: Laravel、MySQL、Redis
  • 客户端: 手写 JavaScript(不使用 React/Vue 等框架)
  • 遗留工具: 大约 270 行 jQuery(在 80k+ 行代码中)用于少量 DOM 辅助函数
  • 本地持久化: IndexedDB
  • 实时协作: 混合方案 – 使用 HTTP/2 POST 进行弹性操作 + 通过 Laravel Reverb 的 WebSocket 实现实时光标、在线状态和编辑

功能

  • 粘贴 Markdown,即可得到原生块;复制块出来,则得到 Markdown。
  • 具层级结构的文档结构和层级文件管理器。
  • 实时协作,支持共享光标、选区和在线状态。
  • 代码块支持语法高亮和 LaTeX 数学块。
  • 完整数据导出:Markdown、JSON 与附件(无锁定)。
  • 完整的撤销/重做,且能够恢复光标位置。

已知的粗糙之处

  • 光标和选区系统是从头构建的(类似 VS Code,而不是 contenteditable 包装器),因此涉及的表面面积较大。
  • 某些键盘快捷键可能缺失。
  • 仅限桌面端;可访问性尚未实现。
  • 正在实时发布的修复。

反馈

应用内部有一个 “提交错误或反馈” 按钮,如果出现问题可以使用。欢迎随时提问关于架构或其他任何内容。

评论

Comments on Hacker News (Points: 4)


这是一项预发布的压力测试,而非正式上线。Lightwave 将作为付费产品。当前的开放测试旨在收集真实世界的流量反馈。

0 浏览
Back to Blog

相关文章

阅读更多 »

Inertia.js 静默破坏你的应用

TL;DR 在一个生产环境的 Laravel 12 + React 19 + Inertia v2 应用中工作了数周后,我反复遇到诊断成本高的故障模式:重叠访问可能……