基于Nostr的Squalk论坛:传统论坛在现代开源协议上的新生

老Neo在路上 高级 1小时前 705 浏览 7 点赞 约 3 分钟

在当今快节奏的在线讨论环境中,我依然偏爱那种从容不迫、异步进行的热议。可读性强且便于检索的存档对我来说至关重要。大多数社区都已弃用论坛,转而拥抱群聊。随着Discord和Telegram群组的兴起,同样的问题被反复抛出,而宝贵的答案则淹没在信息的洪流中。

出于这种考虑,我开发了Squalk(可在 https://github.com/dtonon/squalk 获取源码),这是一个基于Nostr开放协议构建的经典论坛。Nostr协议本身就是一个社区,主要围绕协议展开讨论。

Nostr作为开放协议,具有几个值得关注的特性:

  • 没有由单一中心实体控制的经典账户体系;用户使用密码学密钥对登录,身份和发布历史均可移植,同一密钥可在所有Nostr应用上使用。
  • 论坛仅是托管在“中继”( relay )服务器上数据的一个视图,而中继本质上就是一个非常简单的服务器。任何遵循相同规范的客户端,如Flotilla或Nostrord,都可以读取和写入相同的对话。如果我的网站关闭,社区及其历史记录仍将存在。
  • 复杂的Web服务器并非必需。Squalk可以构建为静态单页应用(SPA),也可以从同一代码库生成服务器端渲染的Node应用(SvelteKit);SSR模式的存在是为了使线程可被爬取并出现在搜索引擎中,这对于论坛来说至关重要。

我得承认,每个房间仍然有一个聊天侧边栏。我曾试图指出聊天会吞噬知识,但关键在于决定它被允许吞噬什么。快速构思、调试会话和零散的想法属于聊天,而值得保留的结论则以线程形式记录下来。侧边栏是故意设计的次要功能:它为论坛提供输入,而不是取代论坛。

Nostr虽然年轻,密钥管理对普通人来说仍然复杂,中继上的Moderation工具也亟待改进。但我认为缓慢的论坛动态实际上比它在Twitter克隆中的名声更适合该协议,因此我将继续探索这个想法。

欢迎对论坛和软件提出反馈!

Squalk的功能与配置

Squalk是一个基于Nostr构建的论坛,能够管理从小型到大型社区的各种规模;实际上,你可以选择以“简单”或“完整”模式来设置它。简单模式只暴露一个论坛,而在完整模式下,你可以拥有任意数量的论坛。每个论坛都包含一个位于右侧边栏的聊天功能,这对于快速与成员互动非常有用。

简单模式与完整模式

  • 简单模式:仅展示一个论坛,适合小型或主题集中的社区。
  • 完整模式:可创建多个论坛,适合大型或主题多样化的社区。

聊天功能

每个论坛的右侧边栏都集成了聊天功能,方便用户快速交流。这一设计旨在平衡论坛的正式讨论和即时互动需求。

技术实现

Squalk采用SvelteKit作为其后端框架,支持静态单页应用(SPA)和服务器端渲染(SSR)两种模式。这种灵活性不仅提升了用户体验,也增强了内容的可访问性和搜索引擎优化(SEO)效果。

静态单页应用(SPA)

  • 优势:加载速度快,用户体验流畅,适合内容更新频率不高的论坛。
  • 适用场景:小型论坛或个人博客。

服务器端渲染(SSR)

  • 优势:内容可被搜索引擎爬取,有利于SEO优化。
  • 适用场景:大型论坛或内容更新频繁的社区。

使用Squalk的步骤

  1. 安装依赖:确保你的开发环境已安装Node.js和npm。
  2. 克隆仓库:使用以下命令克隆Squalk仓库:
    git clone https://github.com/dtonon/squalk.git
  1. 安装项目依赖:
    cd squalk
    npm install
  1. 启动开发服务器:
    npm run dev
  1. 访问应用:在浏览器中访问 http://localhost:3000。

结语

Squalk为那些热爱传统论坛动态的用户提供了一个现代化的解决方案。通过基于Nostr协议的设计,它不仅保留了论坛的精髓,还融入了现代Web技术的便利性。如果你也在寻找一个能够促进深度讨论和知识积累的在线社区,不妨试试Squalk。

SqualkNostr论坛开源协议社区管理

全部回复 (0)

想当场把话说完?进全球 AI 聊天室,登录就能开口。

还没有回复,来发第一条吧!

发表回复

支持 Markdown 格式
更多可复用的提示词工作流收录在ChatGPT提示词优化指南,有不少直接可参考的案例。