[Plugin] BlockDocs — Notion-style block editor for Bubble (rich text, JSON output, 10+ blocks)

Hey Bubble community! :waving_hand:

I just published my first plugin and wanted to share it here — would love your feedback!

:memo: BlockDocs — Rich Text Editor

Notion-style block editing, natively in Bubble.

If you’ve ever tried to build a blog editor, a knowledge base, or any content-heavy feature in Bubble, you know the pain: native input fields are too limited, and integrating external editors is always a headache.

BlockDocs solves this. It brings a clean, modular block editor directly into your Bubble app, with zero code required.


:sparkles: What it does

  • 10+ content blocks — Headings, paragraphs, lists, checklists, tables, quotes, code blocks, delimiters, images, and more

  • Rich text formatting — Bold, italic, underline, inline code, and text highlight

  • Clean JSON output — Content is stored as structured JSON in your Bubble database (not raw HTML)

  • Read-only mode — Toggle between edit and view mode via a simple Yes/No property

  • Auto-save pattern — Use the content_changed event to save on every keystroke, no Save button needed

  • Programmatic Clear — Reset the editor via a workflow action

  • Theme-aware — Inherits your Bubble element styles (background, font, border, shadow) — no custom CSS needed

  • Fit to content — Works perfectly with Bubble’s native “fit height to content” layout option


:wrench: How it works in practice

Auto-save (3 steps):

  1. Drop a BlockDocs element on your page

  2. Create a workflow → Trigger: BlockDocs content_changed

  3. Action: Make changes to a Thing → set your field to BlockDocs's Editor Data

Load saved content:

  • Set the Initial Data property to your database field — the editor decrypts and renders it automatically

Read-only display:

  • Add a second BlockDocs element, pass the saved data as Initial Data, set Read Only = Yes

:puzzle_piece: Bubble states exposed

| State | Type | Description |

|—|—|—|

| editor_data | text | Full content as encrypted JSON |

| block_count | number | Number of blocks (use for empty checks) |

| is_ready | yes/no | True once the editor finishes loading |


:light_bulb: What I built it for

I needed a structured content editor for an internal knowledge base app. Bubble’s rich text input wasn’t enough, and iframe-based solutions were brittle. I wanted something that:

  • Stored content as structured data (not HTML soup)

  • Could toggle between edit/read-only without rebuilding the UI

  • Respected Bubble’s native styling system

BlockDocs is what I ended up building — and I figured others might find it useful too.


:link: Links


Happy to answer any questions about the implementation or how I structured the plugin. This is my first Bubble plugin, so any feedback on the listing, docs, or UX is genuinely appreciated! :folded_hands: