Does anyone else feel that the whole entire-canvas-is-editable-by-default approach of Notion and similar tools is an extremely annoying antipattern?<p>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.<p>I've been reprimanded several times for errant edits to company wiki pages because of this...
It 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 (<a href="https://github.com/AppFlowy-IO/AppFlowy">https://github.com/AppFlowy-IO/AppFlowy</a>) 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.<p>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.<p>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.<p>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.
The 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.<p>But it comes with its downsides as well. For example cross block selection doesn't work.<p>If the entire page is one big editable area, then it becomes difficult to embed complex blocks like "kanban views" and calendar.<p>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.<p>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.<p>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.<p>[1] <a href="https://twitter.com/jitl/status/1649761057953415174" rel="nofollow noreferrer">https://twitter.com/jitl/status/1649761057953415174</a>
Thank 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.<p>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.<p>BlockSuite also offers framework agnostic rendering for scalability and flexibility. For more information about BlockSuite and the AFFiNE project, we welcome you to visit <a href="https://affine.pro/" rel="nofollow noreferrer">https://affine.pro/</a> where you can also try it in action.
The 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.<p>We had the pleasure of hosting one of the co-founders at our latest local first meetup <a href="https://lofi.software" rel="nofollow noreferrer">https://lofi.software</a>, feel free to checkout the recording <a href="https://www.youtube.com/live/Z0nzsxhoToo?feature=share">https://www.youtube.com/live/Z0nzsxhoToo?feature=share</a> The team has put in a lot of background effort to allow for a seamless <a href="https://affine.pro" rel="nofollow noreferrer">https://affine.pro</a> app using blocksuite
Wow, 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.<p>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!<p>[1] <a href="https://chiseleditor.com" rel="nofollow noreferrer">https://chiseleditor.com</a>
Multiplayer? Is this a game?<p>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?
Maybe 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.
<p><pre><code> > BlockSuite (pronounced "block sweet" )
</code></pre>
Is there any other way that "BlockSuite" would be pronounced?
Any chance this might interact with Block Protocol in any way? <a href="https://blockprotocol.org/" rel="nofollow noreferrer">https://blockprotocol.org/</a><p>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.
Sorry 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.<p><a href="https://blocksuite.affine.pro/assets/block-based-editing.57b4c571.png" rel="nofollow noreferrer">https://blocksuite.affine.pro/assets/block-based-editing.57b...</a>
Looks 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!
I 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
It 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.