Show HN: Bangle.dev – Collection of tools for building rich text editors
github.com
github.com
Wondering if that would be a good thing if Marijn created some kind of official marketplace for Plug-ins
For anyone reading this, the gist is that it complements Prosemirror by providing pre-cooked components that you can use in your project. If you need more advanced functionality, bangle doesn't stand in your way and you can extend it to your hearts content with Prosemirror.
Had developed something slightly similar (for now primarily used in-house and API is somewhat clunky and unstable): essentially, a wrapper around ProseMirror that makes it easy to use in React, and introduces an additional abstraction that combines schema features and related editor plugins. Thought someone can make it better, and maybe this is that project.
Tangentially, a cool thing would be to unite ProseMirror with Automerge. That’d enable some killer collaborative editors.
Update: I created an abstraction called “feature” that seems to be similar to the extension concept, but different. Through features, editor creator can contribute related schema aspects and plugin views. Schema is always there and is not handled by a separate feature, however.
bangle.dev aims to add little API overhead on top of Prosemirror (PM) whereas Remirror tries really hard to hide the PM API and attempts to provide its own React-ish abstraction. This might be a totally fine choice, but I went with the route of building reusable components instead of abstractions.
However, when I look at your docs, it's not clear it's a different in approach from Remirror. The imports are all from bangle.dev which makes it seem like the same approach.
I would love to see a doc explaining the "API overhead" and how to use PM directly. I want to feel confident I can easily drop back down to PM if Bangle doesn't have a feature I need or implements it in a way that won't work for our use case.
Really excited to see this approach! Shared PM plugins are a great idea!
Prosemirror already has collaboration baked into it and I have a very rough initial version of it working (see https://github.com/bangle-io/bangle.dev/tree/master/collab). My question for you is what benefit will using Automerge provide over the inbuilt collaboration API?
I'll prefer simple textareas that accept markdown everytime.
[0] For example Kitemaker https://blog.kitemaker.co/building-a-rich-text-editor-in-rea... (AFAIK they use v0.47).
[1] Edit: TinyMCE team is focused to build their editor based on Slate - https://www.tiny.cloud/blog/real-time-collaborative-editing-...