草庐IT

Notion 和 Miro 的下一代知识库 - AFFiNE

Github爱好者 2023-03-28 原文

虽然 Miro(可视化协作平台)和 Notion(笔记工具)使用起来非常流畅且功能强大,但它们并不是开源解决方案。那么,更私密、更透明、更可定制、可用于 Windows/OS/Linux 的下一代知识库是否存在呢?这就是 AFFiNE !

与专注于白板和页面的 Miro 和 Notion 不同,AFFiNE 将其定位定义为一体化的 KnowledgeOS。它支持看板、表格和富文本段落作为构建块来形成页面或白板,可以在这里进行文档编辑、数据处理或头脑风暴等综合处理。

AFFiNE 使用 Rust 和 Typescript 构建,只需要一个命令即可运行整个项目,AFFiNE 以最简单的方式给了所有开发者最大的想象力。

AFFiNE 这是一个非常新的开源项目,旨在克服 Notion 和 Miro 在安全和隐私方面的一些限制,可以帮助你将会议记录待办事项、文档中写下的目标、视频会议白板上的头脑风暴、客户访谈中获得的反馈信息集中到一个地方,AFFiNE 可以成为存储、集成和管理所有工作流程的地方。

在保障数据安全和用户隐私的基础上,用户和开发者的体验也是非常重要的。而且,AFFiNE 在这方面做得不错。

请注意,AFFiNE 仍处于 alpha 阶段。

Notion vs AFFiNE

虽然 AFFiNE 旨在取代 Notion 作为开源解决方案,但它可能并不适合所有人。如果你要选择 AFFiNE 而不是 Notion,您将获得以下好处:

隐私

Notion 可以用作闭源软件,直接访问你在云中的私有数据。与此相比,你可以根据自己的喜好托管 AFFiNE。使用 AFFiNE,你无论如何都拥有自己的数据。在不牺牲协作和共享的情况下,你的所有数据都在你手中。

透明度

AFFiNE 是一个开源项目,所以随时欢迎你修改和查看代码。

性能和原生体验

AFFiNE 使用 Rust 和 typescript 构建,在保持性能的同时提供现代且稳定的用户体验。

AFFiNE 完全采用 Web 技术构建,因此在 Mac、Windows 和 Linux 上始终保证一致性和可访问性,本地文件系统支持将在 0.0.1beta 版本发布时提供。

AFFiNE 的特性

重塑页面

始终易于阅读、结构化的文档表单页面最适合你的笔记,无限的涂鸦功能更适合协作和创造力。

我们使转变和重塑变得容易,因此你可以按照自己的方式塑造文档。

使用 ​​AFFiNE​​,每个页面都有 2 个视图,你可以在任何地方以任何形式访问和编辑功能齐全的块。

计划任务

我们非常欣赏 Monday、Airtable 和 Notion 数据库的想法,他们启发了我们认为适合任务管理的方法。但我们不喜欢重复的工作 —— 我们不希望用 markdown 轻松设置一个 todo,但最后却在 Kanban 或其他数据库中重新写一遍。

知识整理

一个好的语义知识库是由可重用的、链接的元素组成的。AFFiNE 完全构建在块的概念之上。块可以在文档之间进行双向链接、复制、重用和同步。作为语义网络爱好者,我们不太喜欢文件夹的想法。

AFFiNE 最大的一个功能是可以将任意块一键转换:页面编辑模式+看板视图模式+白板模式无缝链接 - 让所有用户轻松、方便、无负担地使用。

此外,AFFiNE 拥有更多的页面浏览量和白板浏览量,可以帮助不同的用户在沉淀和处理数据集的同时随时与其他合作伙伴集思广益,同步进度,在不改变工作工具流程的情况下编写数据相关报告和完成会议。

随着开发的继续,我们可以期待更多的功能实现,一些现有的亮点包括:

  • 跨平台支持。
  • 在文本模式下添加待办事项,并转换为 board 模式。
  • 能够自行托管或将其安装在你的计算机上。
  • 可定制性。
  • 数据隐私(重中之重)。
  • 用于更好维护的单一代码库。
  • 社区驱动的可扩展性。
  • 多列视图和高级格式支持。
  • 单击任意位置支持 MarkDown 输入。
  • 用于编辑单元格/网格的键盘快捷键。

安装

要安装使用 AFFiNE 最简单的方法是使用 Docker 一键启动:

docker pull ghcr.io/toeverything/affine:nightly-latest
docker run -p 4200:3000 --name affine -d ghcr.io/toeverything/affine:nightly-latest
然后在浏览器中打开 http://localhost:4200 即可。

此外我们也可以获取代码,直接启动:

git clone https://github.com/toeverything/AFFiNE.git
cd AFFiNE
然后安装项目依赖:

npm i -g pnpm
pnpm i
接着就可以直接启动项目了:

pnpm start
同样在浏览器中打开 http://localhost:4200 即可。

总结

如果你需要一个简单的类 Notion 或类 Miro 应用程序并具有原生体验,那么 AFFiNE 绝对是一个不错的选择。

AFFiNE 拥有白板、文档编辑等多种视图,不同视图可实现数据联动和一键切换。任何块元素都可以轻松重组和重用,帮助用户减少无效工作时间,提高工作效率,将时间释放在更具创意价值的工作上。

所以,2022 年,如果你想拥有一个可以存储、集成、管理和创建所有工作流的工具,不妨试试 AFFiNE!

Git 仓库:https://github.com/toeverything/AFFiNE。

有关Notion 和 Miro 的下一代知识库 - AFFiNE的更多相关文章

  1. ETH 徘徊在 1,700 美元附近;下一步是什么? - 2

    以太坊价格分析表明横盘整理,偏向中性。价格从前一交易日的高点1,791美元回落后正在盘整。但是,有趣的是,多头在1,680美元附近持有重要支撑。多头在1,700美元的心理水平附近聚集动能,并准备在接下来的几个交易日推向1,800美元。以太坊价格显示出盘整迹象,因为它形成了多个连续的顶部形态。这种回撤可能是第二大加密货币下一轮上涨的基石。以太坊连续第二个交易日走低。过去10天,价格在1,590-1,760美元的短期区间内盘整。每日烛台高于1,800美元将维持ETH的进一步上涨。ETH价格走低日线图上,以太坊价格在上升趋势线附近获得一轮支撑。来自879.80美元低点的看涨趋势线为ETH买家提供了支

  2. ruby - 我怎样才能更好地了解/了解更多关于 Ruby 的知识? - 2

    按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我最近开始学习Ruby,这是我的第一门编程语言。我对语法感到满意,并且我已经完成了许多只教授相同基础知识的教程。我已经写了一些小程序(包括我自己的数组排序方法,在有人告诉我谷歌“冒泡排序”之前我认为它非常聪明),但我觉得我需要尝试更大更难的东西来理解更多关于Ruby.关于如何执行此操作的任何想法?

  3. Ruby:数组中的下一个/上一个值,循环数组,数组位置 - 2

    假设我有一个没有特定顺序的随机数数组。假设这些是参加马拉松比赛的人的ID#,他们按照完成的顺序添加到数组中,例如:race1=[8,102,67,58,91,16,27]race2=[51,31,7,15,99,58,22]这是一个简化且有些做作的示例,但我认为它传达了基本思想。现在有几个问题:首先,我如何获得特定条目之前和之后的ID?假设我正在查看运行者58,我想知道谁在他之前和之后完成了比赛。race1,runner58:previousfinisher=67,nextfinisher=91race2,runner58:previousfinisher=99,nextfinishe

  4. ruby-on-rails - Ruby:给定日期找到下一个第二或第四个星期二 - 2

    我似乎找不到一种优雅的方式来做到这一点......给定一个日期,我如何找到下一个星期二,即日历月的第2个或第4个星期二?例如:给定2012-10-19然后返回2012-10-23或给定2012-10-31然后返回2012-11-13OctoberNovemberSuMoTuWeThFrSaSuMoTuWeThFrSa12345612378910111213456789101415161718192011121314151617212223242526271819202122232428293031252627282930 最佳答案

  5. ruby - 用于删除下一个/尾随字符的转义序列? - 2

    除了使用\x08删除前导字符外,是否可以同时删除尾随字符?是否有一个转义序列将删除下一个字符而不是前一个字符?我看到delete显然映射到ASCII127,即Hex7F,但以下代码:puts"a\x08b\x7fcd"产生b⌂cd我预计\x7f会删除它后面的'c'字符,但它没有。 最佳答案 您实际上并没有使用\x08删除任何内容,您只是用“b”覆盖了“a”。想象一下您使用电传纸质终端的过去。您实际上会在纸上看到的是打印的“a”,电传打字机会备份一个空格,然后在其上打印“b”。所有非打印的ascii码都是为了控制电传纸终端的移动而发明

  6. ruby-on-rails - 在 Rails 中计算到下一个生日的天数 - 2

    我有一个模型,其中有一个名为birthday的date列。我如何计算距离用户下一个生日还有多少天? 最佳答案 这是一个简单的方法。你要确保捕获今年已经通过的案例(以及尚未通过的案例)classUser=bday(bday-Date.today).to_iendend并证明这一点!(我添加的是timecopgem以保持计算截至今天(2012-10-16)的准确性require'test_helper'classUserTest 关于ruby-on-rails-在Rails中计算到下一个生日

  7. ruby - Ruby基础知识 - 2

    Asitcurrentlystands,thisquestionisnotagoodfitforourQ&Aformat.Weexpectanswerstobesupportedbyfacts,references,orexpertise,butthisquestionwilllikelysolicitdebate,arguments,polling,orextendeddiscussion.Ifyoufeelthatthisquestioncanbeimprovedandpossiblyreopened,visitthehelpcenter提供指导。已关闭8年。什么是学习ruby语言

  8. ruby-on-rails - 如何移动到 binding.pry 中的下一行? - 2

    在byebug中,我们可以通过输入'n'移动到下一行,类似地,在'pry'中是否有移动到下一行的方法?我已经阅读了那里的文档,但没有任何结果。 最佳答案 查看pry-nav,它为您提供了诸如next和step之类的方法,这应该是您正在寻找的方法。如果你在普通的旧Pry中,你可以使用exit转到下一个binding.pry或disable-pry退出完全pry开。 关于ruby-on-rails-如何移动到binding.pry中的下一行?,我们在StackOverflow上找到一个类似的

  9. Ruby 在数组中查找下一个 - 2

    有没有办法在Ruby数组中找到下一个项目?代码:#FindALLlanguagesif!debuglang=Language.allelselang=Language.where("id=?ORid=?",22,32)end#Getallelementselements=Element.where("human_readableISNOTNULL")lang.eachdo|l|code=l.code.downcaseifFile.exists?(file_path+code+".yml")File.delete(file_path+code+".yml")endt1=Time.nowi

  10. ruby-on-rails - Rails 5 上一篇或下一篇文章仅来自特定标签 - 2

    我有一个名为posts的资源,其中有很多。但是,每个帖子可以有多个标签。我希望用户只能从所选标签转到上一篇和下一篇文章。我让它适用于上一个下一个数据库中的所有帖子,但是当我单击一个标签并显示所有标签时,上一个/下一个不符合标签是什么。如果我访问与routes.rb中定义的代码关联的url,get'tags/:tag',to:'posts#index',as::tag,它会列出索引中的所有标签。我不想要这个,我希望用户能够单击上一个或下一个,并且只能在与标签关联的帖子上执行此操作。注意:我使用的是friendly_idgemcontrollers/posts_controller.rbd

随机推荐