Skip to content

django-tiptap-editor

A reusable rich-text editor for Django, backed by TipTap (headless ProseMirror): a form Widget, an admin widget, a ModelAdmin mixin, a settings-driven config, and committed static assets — node-free for consumers.

Highlights

  • Stores HTML by default (render with |safe); optional JSON storage via TipTapJSONField (canonical doc + safe, server-derived HTML mirror).
  • Safe by construction — ProseMirror's schema drops scripts and unknown nodes on parse; link and image protocols are allowlisted. See Security.
  • Node-free — ships a committed, self-contained bundle. An optional glue-only ESM build supports bring-your-own-TipTap via CDN / import maps. See Asset modes.
  • Full editor — formatting, font size/family, colour, highlight, headings, lists, alignment, links, images, tables, and a raw-HTML source view.
  • Image upload + library picker, merge tags, and en/sv i18n built in.
  • Extensible without a build step — register custom extensions and toolbar buttons, and re-theme via CSS variables. See Extending and Theming.

Get started

Coming from another editor?

Swapping editors is a content-validation exercise, not an automatic conversion — see Migrating, which centers on running the fidelity corpus over your real content first.