Hi everyone,
I’m building a Python Shiny dashboard where non-technical users need to enter and edit rich text content (similar to how they would in a Word document).
What I’m trying to achieve
I want a WYSIWYG-style text editor inside a Shiny app that allows users to:
- Write normal text
- Apply bold, italic
- Add bullet points / numbered lists
- Insert multiple hyperlinks
- (Optional) simple headings
The key point is:
Users are not HTML or Markdown experts.
They should be able to type and format text visually, without learning syntax.
Data flow requirement
- User enters rich text in the Shiny UI
- The content is saved to a database (HTML or Markdown is fine)
- Later, the same content is rendered back in the UI exactly as it was written
What I’ve tried / limitations
ui.input_text_area()→ plain text onlyui.markdown()→ render-only, no editing- Markdown-based workflows work technically, but are not user-friendly for business users
- Integrating large JS editors (Quill, TinyMCE, CKEditor) directly feels heavy and hard to maintain in Python Shiny
- I’m trying to avoid complex custom JavaScript unless absolutely necessary
Context
- This is Python Shiny, not R Shiny
- App is already fairly large and modular
- Maintainability and simplicity matter
- Even a minimal WYSIWYG editor (bold, bullets, links) would be sufficient
What I’m looking for
I’d really appreciate suggestions on:
- Existing Shiny-compatible rich text editors (Python or JS-based)
- Patterns people are using in Python Shiny for this use case
- Lightweight JS editors that integrate cleanly with Shiny
- Any Posit roadmap or recommended approach for rich text editing
If anyone has implemented something similar or has ideas, I’d love to hear your thoughts.
Thanks in advance!