基于 git 的去中心化内容收发平台
缘起
市面上的各种内容发布与浏览平台都有以下问题:
- 收集用户行为数据不透明
- 各种无关广告
- 推荐、排序、过滤等算法或不透明或难定制
- 对自己发布的内容管理手段受限
- 内容格式受限,输入界面难用(格式修改),无自动保存(输入大段后无法提交等)
- 发表的评论如未通过平台/博主审核,就完全无法发表甚至记录
- 如选择 md 格式编写内容,发布时需要特定静态页面生成引擎,将内容转换为 html 格式
中心化的网络服务需要某种途径变现,以维持服务、审核等开销。广告和出售用户数据是两种方式。
如何避免对中心服务的依赖呢?下面是一点初步设想,在搭建原型之前,征求各位意见。
思路
- 当下免费无附加条件、支持存取的在线存储方案:git 平台
- 所有内容都在本地的话,本地就有所有浏览行为数据
- 进而可根据本人行为数据定制内容推荐
- 开发者群体更可能有足够的主机资源以容纳所有内容和本地索引和搜索所需算力
- 不设置全局黑名单,内容由发布者负责、社区监督,以最小化审核开销
- 可以吸纳各种渠道的内容,包括 rss。评论可以完全在本地(也是 git 目录),也可提交到 git 平台与所有人分享。
综合以上,内容生产者将内容发布在公开 git 平台(github、gitee 等),内容消费者从 git 平台获取所有内容后,在客户端运行内容浏览工具。
这一内容平台的首要用户是开发者群体(包括本人自己),内容也首选技术交流与行业消息。
PPT 演示
1. 客户端工具启动
内置所有内容的 git url 列表,以此两个 github pages repo 为例:
https://github.com/linonetwo/linonetwo.github.io.git
https://github.com/program-in-chinese/team_website.git
初次运行时,git clone 将各内容下载到本地,后可定时从 git 平台同步最新内容。
下面操作如无特别说明都在本地进行,不依赖任何在线服务。
2. 内容浏览
可以概览各发布者,包含基本数据:
点击进入内容列表,与在线版同样浏览:
3. 搜索
对可识别的内容建立索引,以便搜索。根据关键词搜索(效果借用 gg 搜索)
点击链接打开本地对应内容
4. 评论
可在任何发布的内容下添加评论、回复其他评论,评论也是一种生产出的内容。
无需任何注册服务,评论内容默认以 git 库形式存储在本地,可以回溯到最初被评论的原创内容:
5. 内容管理
与原创内容类似,发评论者可查看所有自己发布过的评论,也可以删除、修改。
如果想分享自己的评论,也只需将本地的评论库 push 到某个 git 平台,并将 url 提交到工具内置列表(此列表和客户端工具都可通过开源维护)。这样该工具的所有用户都将在更新内容时看到。
6. 关注与更新通知
用户可以设置关注某位内容发布者,当发布内容更新时可获得通知。
关注信息可存在本地也可作为内容发布。