V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
imchl
V2EX  ›  程序员

想做一个本地优先笔记,抄一下 tana 的超级标签,大家有什么建议?

  •  
  •   imchl · 2023-11-27 09:30:14 +08:00 · 3525 次点击
    这是一个创建于 391 天前的主题,其中的信息可能已经有所发展或是发生改变。

    缘由

    平时使用某本地优先的笔记软件,以前就感觉有丢笔记的迹象,但是最近发现了确凿的丢笔记的证据,因此只能放弃这个软件;在网上找了大半天,都有一些让我放弃的理由:

    • notion:很喜欢它的 database ,但是数据都在云端,有可能某一天 gg
    • tana:喜欢它的 super tag ,但是数据也是在云端,根据网上得到的消息,一年的费用需要 100 刀,我的笔记配不上它
    • obsidian:本地优先,并且格式是比较通用的,但是整个页面的按钮太多了感觉好杂乱,并且各种插件对 markdown 的修改,其实想要迁移也是不方便的

    因此,我萌生了自己做一个笔记软件,按照自己的想法来实现

    大概的思路(抄谁)

    1. tana 的 super tag
    2. notion 的 database

    优先实现 tana 的 super tag ,让我可以用起来,后面再加新的功能

    大概的框架

    1. 前端使用 tauri + react
    2. 后端使用 rust
    3. 数据保存于数据库中( MySQL/SQLite ),默认逻辑删除,提供删除指定时间前数据的功能
    4. 图片、附件等保存在本地/直接上传至 S3
    5. 可以设置定时备份任务,自动进行 sqldump 并且备份图片文件到指定目录

    可能存在的难点

    1. 对前端不熟悉,只是用 React 搭建过几个 demo
    2. 对 Rust 也不熟悉,学过几次,没有实际的项目经验,本人是后端开发,主要使用 Java

    可能的收获

    1. 熟悉前端,并且有实际的经验,不仅仅只是搭个 demo 的程度
    2. Rust 入门
    51 条回复    2023-11-29 14:17:20 +08:00
    shuxhan
        1
    shuxhan  
       2023-11-27 09:37:27 +08:00
    ui 设计挺重要,会一眼决定我使用它,建议找个专业的设计师或者抄个比较火的框架
    imchl
        2
    imchl  
    OP
       2023-11-27 09:41:12 +08:00
    @shuxhan 确实,我也是,但是我不擅长这方面,因此只能在实现功能了之后再找人;请问有没有框架推荐的
    Arcturus
        3
    Arcturus  
       2023-11-27 09:43:09 +08:00 via Android
    想问个题外话,是哪一款呢?我也在怀疑我的本地优先笔记软件丢笔记
    imchl
        4
    imchl  
    OP
       2023-11-27 09:46:04 +08:00
    X26U68jE5Q6D0ih0
        5
    X26U68jE5Q6D0ih0  
       2023-11-27 09:49:36 +08:00
    notion 还能 gg 吗?
    imchl
        6
    imchl  
    OP
       2023-11-27 09:53:51 +08:00
    @wunaidouzi 不知道啊,反正我的梯子有时候会 GG
    Rsl
        7
    Rsl  
       2023-11-27 10:01:53 +08:00
    我也非常喜欢 tana 的 supertags, 用起来太舒适了
    obsidian 推出 properties 后某种程度上能实现部分 supertags 的效果了, 目前我用起来还算满意
    当然体验还是不如 tana 丝滑, 但没办法我还是优先考虑存本地的
    shuxhan
        8
    shuxhan  
       2023-11-27 10:11:55 +08:00
    @imchl #4 之前用过思源,包括官方的同步也会偶尔出错,bug 有点多,后来就转 obsidian 了,用 syncthing 同步从未出过问题
    shuxhan
        9
    shuxhan  
       2023-11-27 10:12:45 +08:00
    @imchl #2 说实话我挺喜欢语雀的 ui
    itianjing
        10
    itianjing  
       2023-11-27 10:17:43 +08:00
    可以借鉴下 Standard Notes ,增加多种文件格式不局限于 Markdown ,比如表格、富文本
    imchl
        11
    imchl  
    OP
       2023-11-27 10:19:50 +08:00
    @shuxhan 我是从 obsidian 转到思源的,用不惯 obsidian ,感觉啥都靠插件解决
    imchl
        12
    imchl  
    OP
       2023-11-27 10:20:15 +08:00
    @itianjing 好的,谢谢,我晚点看看
    yumenawei
        13
    yumenawei  
       2023-11-27 10:25:26 +08:00
    再抄个双链和超级块。
    如果真的要实现好,感觉没有个两三年不现实。
    imchl
        14
    imchl  
    OP
       2023-11-27 10:34:11 +08:00
    @yumenawei 所以一开始肯定只实现 tana 的 SuperTag ,用起来先,后面再慢慢迭代
    imchl
        15
    imchl  
    OP
       2023-11-27 10:35:05 +08:00
    @Rsl 可惜 obsidian 不是我的菜,要不就用它了
    LavaC
        16
    LavaC  
       2023-11-27 10:44:08 +08:00
    tana 的 supertag 我一直用不太明白,很容易陷入“笔记的组织结构比笔记多”的陷阱,写什么新东西前都得先考虑下 supertag 的内部结构也挺烦的。
    vsitebon
        17
    vsitebon  
       2023-11-27 11:01:20 +08:00
    说实话,打磨也需要时间的,如果前期只有你一个人在用,没有任何经济收入而且反馈的情况下,很难坚持下去。
    imchl
        18
    imchl  
    OP
       2023-11-27 11:13:30 +08:00
    @vsitebon 业余时间开发,就当学习 rust 了
    pikko
        19
    pikko  
       2023-11-27 11:51:43 +08:00
    @imchl #18 怎样都感觉 rust 这个技术选型比较糟糕,例如 notion 的话看起来应该用不少 nodejs 的,毕竟笔记软件这种强前端体验的,后端选个 rust 总觉得奇奇怪怪的

    https://willacompany.notion.site/Our-Tech-Stack-e2702dddbd9d4dd0a8168d696711d8f5
    shuxhan
        20
    shuxhan  
       2023-11-27 11:57:20 +08:00
    @imchl #11 那就是使用习惯不同了 🥺 我还挺喜欢插件模式,软件把主要功能做出来就好,不要把功能全部塞进去,扩展的功能可以以插件的形式,这样用户可以根据自己的选择搭配,不至于让整个软件过于臃肿,这样还精简一些。同时自己可以开发各种满足自己需求的插件,这样很爽~~
    piha
        21
    piha  
       2023-11-27 12:37:44 +08:00 via Android
    喜欢简洁的话,推荐 Joplin
    faceair
        22
    faceair  
       2023-11-27 12:50:11 +08:00
    你要不 fork 思源重新设计一下落盘和同步逻辑,彻底解决同步的问题
    imchl
        23
    imchl  
    OP
       2023-11-27 13:11:18 +08:00
    @pikko 其实主要是想着做成客户端,我还想着要不后端直接用 Java 得了,直接做成 web 版,先实现了再说,后面有客户端的需求再翻译成 rust
    Delrin
        24
    Delrin  
       2023-11-27 13:14:04 +08:00 via Android
    可以看眼 logseq?
    imchl
        25
    imchl  
    OP
       2023-11-27 13:18:36 +08:00
    @faceair 我不确定思源后面引入新功能后会不会有新的问题出现,综合思源上的数据历史里面的笔记来分析,至少有两次数据丢失,因此还继续用的话需要我不断投入精力确保我的数据没有问题
    imchl
        26
    imchl  
    OP
       2023-11-27 13:23:55 +08:00
    @Delrin 体验了一下,不是很喜欢,0.9.20 版本有个 bug ,设置成“浅色模式”重启后又给我改回去了
    kuituosi
        27
    kuituosi  
       2023-11-27 13:24:45 +08:00
    后端随便一个语言都是碾压 rust 的,rust 根本不适合 crud
    写代码很慢编译很慢,也没有好的 sql 框架
    rust 比较适合数据库中间件这种基础设施,代码量偏重性能优化上面
    imchl
        28
    imchl  
    OP
       2023-11-27 13:26:11 +08:00
    @piha 但是它的 ui 有点丑
    imchl
        29
    imchl  
    OP
       2023-11-27 13:28:34 +08:00
    @kuituosi 是的,我想着要不直接 java 得了,做成 web 版的
    wanzfind
        30
    wanzfind  
       2023-11-27 13:41:18 +08:00
    借楼问一下,有没有给段落打标签的笔记。想以文章的形式组织多个段落(比如读书的摘抄),每个段落打上不同的标签,然后根据标签全局检索我的摘抄。
    imchl
        31
    imchl  
    OP
       2023-11-27 13:52:56 +08:00
    @wanzfind 你看一下 tana 符不符合你的要求,不过它是大纲类型的笔记软件
    leokun
        32
    leokun  
       2023-11-27 14:04:08 +08:00
    思路是可以的,如果搞出来我肯定会使用的
    不过富文本编辑器会比你想象复杂很多,特别是 database 表格功能
    另外 rust 只有入门水平也不太容易 hold 住整个应用
    相信搞定了收获会很多
    imchl
        33
    imchl  
    OP
       2023-11-27 14:35:56 +08:00
    @leokun 我打算把后端改成 java ,先把东西做出来,后面有需要再切换,避免一开始就上难度,打灭激情
    onnethy
        34
    onnethy  
       2023-11-27 16:06:12 +08:00
    typora+标签+检索做好就行了吧
    pikko
        35
    pikko  
       2023-11-27 17:00:34 +08:00
    @imchl #23 前端做成啥端也不用 rust 吧,负责的文档结构,后端太难写了,nodejs 应该是笔记类软件最优解。部分基础微服务用 java 、rust 、go 都无可厚非。
    sleepm
        36
    sleepm  
       2023-11-27 17:16:36 +08:00
    前端界面 https://tamagui.dev/
    色彩切换,自适应界面,比较有意思
    不过是 typescript ,难度又上升一个高度

    https://github.com/zadam/trilium
    推荐这个笔记
    Lenic
        37
    Lenic  
       2023-11-27 17:30:54 +08:00   ❤️ 1
    @imchl 如果不介意收费的话,DEVONthink 确实不错。我现在是电脑上除了代码,其它所有文件都放在里面了,手机上也有,相当于把整个电脑上的文件,都随身带着,很舒服。
    zyxk
        38
    zyxk  
       2023-11-27 20:31:23 +08:00
    @onnethy 问题是 typora 无法做标签吧,如有麻烦告知一下如何用,谢谢
    Dande1ion
        39
    Dande1ion  
       2023-11-27 20:53:22 +08:00
    支持 supertag ,超级块要不也考虑一下👀
    imchl
        40
    imchl  
    OP
       2023-11-27 20:59:36 +08:00
    @sleepm 感谢推荐,我试试 trilium 看看
    imchl
        41
    imchl  
    OP
       2023-11-27 21:12:54 +08:00
    @Lenic 这个好像没有 windows 吧,我主要是用 window 系统
    imchl
        42
    imchl  
    OP
       2023-11-27 21:13:32 +08:00
    @Dande1ion 等我先搞出一个先,现在连文件夹都还没建哈哈
    Lenic
        43
    Lenic  
       2023-11-27 23:28:30 +08:00
    @imchl 没有,你要是主要用 Windows 那就没办法了,纯苹果生态的软件,不过好用是真的好用,你能想到的功能基本上都有,可以说是一个水桶应用了。对了,颜值好像不高,看多了也就那样了。
    tntin
        44
    tntin  
       2023-11-27 23:29:10 +08:00
    可以组队吗
    hamsterbase
        45
    hamsterbase  
       2023-11-27 23:35:21 +08:00
    建议看看 CRDT ,这个是本地优先软件的未来。
    imchl
        46
    imchl  
    OP
       2023-11-28 07:35:38 +08:00 via iPhone
    @hamsterbase 嗯,知道这个东西,但是没有深入研究
    imchl
        47
    imchl  
    OP
       2023-11-28 07:38:01 +08:00 via iPhone
    @tntin 好啊,但是我只有业余时间
    tntin
        48
    tntin  
       2023-11-28 08:34:44 +08:00
    @imchl 我也是业余时间,留个联系方式沟通吧
    imchl
        49
    imchl  
    OP
       2023-11-28 09:21:08 +08:00
    @tntin VX: aW1jbmNobA==
    xz93
        50
    xz93  
       2023-11-28 15:00:42 +08:00
    我就用了一年的业余时间学了 Golang 和 React ,并折腾了一个卡片白板笔记软件,可以定义卡片的模板(类似 tana 的 supertag ),可以根据卡片属性筛选、分组等(类似 notion 的 database ),还有白板功能(类似 heptabase ),再用 tauri 套个客户端壳子就可以支持本地离线使用。
    不过做出来也没几个人用 =.=!

    链接: https://i.cardcool.top
    Kikkawa
        51
    Kikkawa  
       2023-11-29 14:17:20 +08:00
    @imchl Appflowy 是纯 Rust ,都多久了,感觉功能还是很少不够用...
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2906 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 13:47 · PVG 21:47 · LAX 05:47 · JFK 08:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.