10 ms·
BlockSuite: An open-source Notion-like editor with multiplayer support
- Tracy_Yanxi 3y ago[dead]
- 58x14 3y agoIt seems like there's a lot of recent interest and effort in open-source or self-hosted Notion-like/markdown-with-widgets applications and platforms. AppFlowy (https://github.com/AppFlowy-IO/AppFlowy https://github.com/AppFlowy-IO/AppFlowy) comes to mind; I attended one of their monthly "town hall" meetings a few months back, and looks like they're rapidly increasing in popularity. I think there was another similar project like this on HN front page last week, IIRC. This makes me happy, because I switched to Obsidian primarily for local-first file storage in a platform-agnostic format. I've learned to love many things about Obsidian and am writing a few plugins myself, but there are still several Notion-esq functionalities I wish I had, and I find myself handing off between Obsidian and other webapps for certain effort, like team project management. I used to get far more excited to explore new projects like BlockSuite, and I really appreciate their documentation, but I find it hard to justify allocating time to reviewing and trying out new tools when I still have much more improve on with my Obsidian usage; this is especially true of newer projects where I'm unsure of their shelf life. To assuage my internal conflict I remind myself that I think plaintext is fundamentally the right choice for much knowledge collection, and I'm proud to say that if the internet shut down, I'd retain a significant growing fraction of my personal data.
- Pulz 3y agoIt would be interesting to have your perspective, as an Obsidian user, on Logseq(https://logseq.com/ https://logseq.com/). I say this, as like you - I moved towards this for local-first file storage, where content can be edited on any device with any editor and where I have more control over my data. I did try obsidian briefly, but eventually gravitated towards Notion for knowledge and project management - but found that the bulk of the content I put into this would eventually go stale/unused simply because content was not linked and would instead be held in a table, within a project/area full of other pages of notes. I then found myself on Logseq for the reasons mentioned prior.
- plagiarist 3y agoI'm using and enjoying Logseq but I don't think I am getting as much out of backreferences as other people. I try to keep projects under a single page and make additions to that page. I'm curious how you are using it, if you have time to share? I am always hoping to steal some ideas that improve my usage for note tools.
- innocentoldguy 3y agoI switched to Logseq from Obsidian and like it a lot. The PDF annotation features and ability to use Org Mode are what won me over.
- Propelloni 3y agoAppFlowy looks nice. I get a project management tool vice from it. I have been using Zim Desktop Wiki for many years now, for pretty much the same reasons you mention, and I never had the idea "hey I need a kanban board in here". Why would I use AppFlowy for note-taking? What do you use it for?
- lannisterstark 3y agoHow does this compare to outline? https://github.com/outline/outline https://github.com/outline/outline
- jawsua 3y agoDoes Outline have mobile apps? The name makes it hard to search and find anything relevant
- lannisterstark 3y agoSadly they rely on PWA for Android. PWAs work but has their own set of issues.
- maxloh 3y agoSetting it up is a little bit complicated. I wish they have a offline electron app.
- deleted 3y ago[deleted]
- kitsunesoba 3y agoI too use Obsidian for my personal things that feel too important to not always have up to date local copies of. It works well. Haven’t yet found anything I’m missing compared to Notion though.
- justchad 3y agoLooks pretty cool. I noticed a few issues when playing with the Playground like if you do a slash command and select one of the items such as entering "to" and then selecting "Today" it shows the date with "to" as the prefix. Overall a cool project though!
- emacsen 3y agoFor me, the issue on the playground is that neither backspace nor delete did anything. That seems like either a severe bug or limitation.
- ShortCipher5 3y agoAs others mentioned this might be down to browser. It's currently targeted for Chrome. It's for this reason we recently switched to desktop clients for the parent project, AFFiNE. To create a more standard experience for all users. As BlockSuite development is currently targeted for AFFiNE, but we hope to resolve many of these browser issues in the future.
- PurpleRamen 3y agoMultiplayer? Is this a game? How extendable is this? Can I add my own blocks? And is this a commercial project with open core, or a truely open source-project?
- ncallaway 3y ago> Multiplayer? Is this a game? Many document editors describe the “collaborative Google-docs like model” of multiple people working on the same document and seeing everyone’s updates in real time as “multiplayer”
- PurpleRamen 3y agoFirst time I see this as far as I'm aware. Usually it's collaborative editing. Bit misleading.
- ncallaway 3y agoDunno what to tell you. It’s a term used (not super commonly, but not infrequently either) in the space. https://www.google.com/search?q=%22multiplayer%22+document+editor https://www.google.com/search?q=%22multiplayer%22+document+e... I don’t think it’s misleading, given the existing usage.
- omniglottal 3y agoMisusage pre-existing does not make that existing usage not an abuse. Language is both prescriptive and descriptive - someone prescribing the wrong word is still wrong, as it fails to be accurately descriptive.
- ncallaway 3y agoOkay, but the word is in active use in this space for this exact meaning. Yours is basically an argument against domain specific language that doesn’t agree with common language.
- lopkeny12ko 3y agoDoes anyone else feel that the whole entire-canvas-is-editable-by-default approach of Notion and similar tools is an extremely annoying antipattern? I want to be able to open a document in read-only mode. Otherwise, while just navigating through pages or reading content, it's far too easy to accidentally add text to a block by pressing anything on the keyboard, or move things around with an accidental drag of the mouse. I've been reprimanded several times for errant edits to company wiki pages because of this...
- 16bitvoid 3y agoI think you can lock a page to prevent editing on Notion, but I'm not sure if that's something only the owner of the document can do. A dedicated read-only mode would be useful though.
- mmh0000 3y agoIf the company doesn’t want you editing pages, they should be locking them down. If the pages are left open I feel that it is safe to assume the right to edit. And I’d argue that until my boss absolutely hated me. https://www.notion.so/help/sharing-and-permissions https://www.notion.so/help/sharing-and-permissions
- deleted 3y ago[deleted]
- lopkeny12ko 3y agoIt's totally reasonable for an FAQ page that is editable by all developers and intended for everyone to contribute troubleshooting tips. The problem occurs when someone accidentally drags things around, or has the wrong window open when typing in text and you end up with "ls" and "exit" scattered randomly throughout the doc.
- philsnow 3y agoI have never once in my life intentionally dragged text. Unintentionally several times, and each time wondering what kind of deranged person designed this misfeature. .. okay it’s mostly a misfeature because it’s the exact same input gesture as selecting text, but you have to remember that there is text selected / ensure that no text has been inadvertently selected. Another case where making the user remember things can cause a problem is hybrid cars, where the driver needs to know the state of the hybrid battery because the responsiveness of the brakes and acceleration change depending on it.
- milliams 3y ago> BlockSuite (pronounced "block sweet" ) Is there any other way that "BlockSuite" would be pronounced?
- skinkestek 3y agoblock soot possibly? (Not a native speaker.)
- Brajeshwar 3y agoMany words are pronounced in a skewed way in non-native english speaking demographics. I've heard almost everyone I meet saying Software-'Soot' instead of 'sweet', 'Adobee' as 'Adob', 'Orcut' as 'Orcoot', and 'alarm' as 'alaram'. When I asked them if it does not come out the way it is supposed to be when they are reading it, it actually 'didn't sounded like that in our head.' I'm from India. I went to a school (started by a British-Indian family) where the students speaks so many dialects, that English was the only common denominator and I remember a lot of emphasis was given on pronunciation and the like. Getting the right lyrics of English western songs was one of the common pastime.
- unmole 3y agoI think I'm a fairly proficient English speaker. I know it should be pronounced sweet but I instinctively default to suit.
- ShortCipher5 3y agoYes, this is exactly the reason why.
- lewisjoe 3y agoThe approach here is a bit novel i.e treat each block as a separate editor instance (contenteditable) and somehow wire-up cursor movements to behave as if it's one big editable area. But it comes with its downsides as well. For example cross block selection doesn't work. If the entire page is one big editable area, then it becomes difficult to embed complex blocks like "kanban views" and calendar. I guess we should think beyond contenteditable at this point and separate rendering layer from input layer[1] - sort of like how Google Docs has built its editor. But writing a rich text editor is not just a text-editing problem. It essentially needs you to build a layout engine itself (like webkit) that knows how/when to recalculate and draw the affected parts (render objects) when the rich-text changes. Why? because baking in tables and image-wraps and other complex resizable blocks affect other elements around/after it. Bottomline: we need a custom built layout engine + text renderer + input handler(that respects accessiblity) + selection handler to build an absolutely powerful rich-text editor. I'd like to start a open source project in this direction. [1] https://twitter.com/jitl/status/1649761057953415174 https://twitter.com/jitl/status/1649761057953415174
- jitl 3y agoNotion used this strategy until January 2021, when we rolled over to one-big-ContentEditable. I actually tried the tactic Affine is using, that is implementing drag-to-select gesture yourself and forcing that selection on the browser, but I hit a bunch of roadblocks on iOS and Android that made me abandon it and go with big-ContentEditable.
- julienr2 3y agoCurious about the issues you faced on mobile! At Slite I was part of the mobile team, and the editor is using Slate. So to make it work in React Native we had to go for a WebView (similar to what Notion uses), with all the downside it can bring.. I tickled with the possibilty to do a native adapter of Slate, but the fact that it's based on a content editable, makes it complicated to adapt in React Native.. I have the feeling that block approach might fit better a more native integration on mobile. It seems similar to what Craft does, isn't it ?
- Brajeshwar 3y agoThe documentation is rock solid. I'm interested to know what is powering BlockSuite's documentation?
- jannes 3y agoThe docs are open source, so I looked it up. It seems to be built with https://vitepress.dev/ https://vitepress.dev/
- d4rkp4ttern 3y agoMaterial + Markdown + mcdocstrings is my current favorite for documenting a code repo. It auto creates nice code docs from doc-strings, and also renders math in those doc-strings. And of course I can add nice looking custom doc pages too. So I’m curious how this compares with vitePress, which does look really nice.
- rgrieselhuber 3y agoSorry for the off-topic question: what is the editor used to create these type of sketches? I see it everywhere recently and I've even used it myself but can't remember the name. https://blocksuite.affine.pro/assets/block-based-editing.57b4c571.png https://blocksuite.affine.pro/assets/block-based-editing.57b...
- antidnan 3y agohttps://excalidraw.com/ https://excalidraw.com/
- rgrieselhuber 3y agoThank you!
- mrklol 3y agoThere’s also https://d2lang.com https://d2lang.com with sketch mode, but excalidraw works too.
- jamesu 3y agoIt feels like theres so many of these fancy text editing solutions out there right now, would be great if there was a good comparison of features and pros/cons vs other solutions.
- eitland 3y agoI want to test it as an alternative to LogSeq, but mostly just for fun, because with LogSeq I am for the first time truly content with such a tool.
- freedomben 3y agoI'm in the same boat, but I'd be thrilled if logseq introduced a "multiplayer" feature. Though a centralized (browser-based) version of logseq would need to be done first, and the project would need some changes. I tried to do this and didn't get far because the File API it uses relies on the server being on localhost.
- eitland 3y agoFor now logseq struggles enough with only my changes :-)
- stockhorn 3y agoCan anyone recommend a notion-like editor that is end-to-end encrypted by default and respects my privacy?
- benabbottnz 3y agoYou could always check out AnyType: https://anytype.io/ https://anytype.io/ Open-Source, E2E encrypted, offline first, syncs to all your devices via IPFS so no centralized server, etc. No usernames or email addresses either.
- maxloh 3y agoIs that really open source? I can't find it's source code on GitHub.
- benabbottnz 3y agoAh, good point, sorry, it's just released in Public Beta this month, and opening the source code is Coming Soon™ https://blog.anytype.io/our-open-philosophy/ https://blog.anytype.io/our-open-philosophy/
- maxloh 3y agoSeems that they will take the proprietary source available approach instead. I don't think that is the same thing as "open source". https://community.anytype.io/t/which-license-would-anytype-choose-to-open-source-your-code/8517/4 https://community.anytype.io/t/which-license-would-anytype-c...
- benabbottnz 3y agoNo it's definitely going to be proper open-source: https://community.anytype.io/t/sprint-review-58-59-60/9754?u=benabbottnz https://community.anytype.io/t/sprint-review-58-59-60/9754?u...
- dv_dt 3y agoMaybe it's just me, but I don't like composing or editing in Notion. It has some lovely other data aware view and link functionality, but I find myself fighting the block vs content structure frequently. For example, the edit interface really wants links in their own blocks vs links in the middle of some text being composed. If I want to write a lot of content in quickly, I trigger meta controls too often.
- egonschiele 3y agoWow, I love this. I'm currently building an open source editor that has a lot of overlap with BlockSuite[1]. In Chisel, blocks are also the fundamental building block (pun intended). There are flavored blocks, and it also has a local-first approach, using service workers to make things fast. Chisel has a different focus since it's meant for writing fiction, but plenty of things seem the same. My code is pretty slapdash, as I have been playing with what I actually want from this editor. BlockSuite's implementation looks much more polished. I've been meaning to refactor, and this might be the time to start! [1] https://chiseleditor.com https://chiseleditor.com
- skyfaller 3y agoAny chance this might interact with Block Protocol in any way? https://blockprotocol.org/ https://blockprotocol.org/ The obvious immediate benefit to this would be native editing of Wordpress blocks for your website. But if this became standardized and usable both locally and on the web, it could open up all sorts of interesting use cases.
- dmje 3y ago..how else would Block suite be pronounced...?
- ShortCipher5 3y agoYou would be surprised - Block Suit has been particularly common
- yayr 3y agoI wish it had a "markdown mode". E.g. where the features of the editor are flagged as markdown compatible and only those features would be enabled. It would then open markdown files and save back to markdown files
- ShortCipher5 3y agoThat's an interesting idea - sort of like Word and compatibility mode? But with clearer communication on what's MD supported and not?
- iFire 3y agohttps://github.com/toeverything/blocksuite/blob/master/LICENSE https://github.com/toeverything/blocksuite/blob/master/LICEN... MPL 2.0
- yonz 3y agoThe in page add database holds amazing promise, how can I reference a record that I create in the database? Lets say I have a block with a database [User|Title] and I want to refer to a value TasksDb[user=yonz].title. or something. We had the pleasure of hosting one of the co-founders at our latest local first meetup https://lofi.software https://lofi.software, feel free to checkout the recording https://www.youtube.com/live/Z0nzsxhoToo?feature=share https://www.youtube.com/live/Z0nzsxhoToo?feature=share The team has put in a lot of background effort to allow for a seamless https://affine.pro https://affine.pro app using blocksuite
- deleted 3y ago[deleted]
- ShortCipher5 3y agoThank you all for your attention to BlockSuite, the comprehensive project behind the amazing AFFiNE open-source notetaking app. BlockSuite aims to provide a progressive solution for building collaborative applications. It includes a block-based framework for composing rich content editors and an out-of-the-box block editor tailored for the AFFiNE knowledge base. With block-based editing, text editing and state management are handled block-by-block, supported by CRDT technology for distributed collaboration. BlockSuite also offers framework agnostic rendering for scalability and flexibility. For more information about BlockSuite and the AFFiNE project, we welcome you to visit https://affine.pro/ https://affine.pro/ where you can also try it in action.