django-tiptap-editor
A reusable, pip-installable Django package providing a drop-in rich-text editor
backed by TipTap (headless ProseMirror): a form Widget, an
admin widget, a ModelAdmin mixin, a settings default, and vendored static assets —
node-free for consumers.
What this is
A reusable rich-text editor for Django: a form Widget, an admin widget, a
ModelAdmin mixin, a settings-driven config, and committed static assets — with a
clean, options-object surface and its own config schema.
- Stored value is HTML by default (render it with
|tiptap_html); optional JSON storage viaTipTapJSONFieldkeeps the canonical ProseMirror doc plus a safe, server-derived HTML mirror. - Sanitised on the server, not only in the browser: submitted markup is reduced to an allowlist built from the extensions the editor actually mounts, so a direct POST that skips the editor cannot store a script — and no extra dependency is needed.
- Node-free for consumers: the editor ships as a committed, self-contained bundle. An optional glue-only ESM build lets you bring your own TipTap via CDN / import maps.
- Extensible without a build step: a runtime registry for custom extensions, toolbar buttons, and layered (CSS-variable) theming.
- Full toolbar (formatting, font size/family, colour, highlight, lists, alignment, links, images, tables, source view), image upload + library picker, merge tags, and en/sv i18n out of the box.
Installation
pip install django-tiptap-editor
Add the app to INSTALLED_APPS (it ships the static bundle):
INSTALLED_APPS = [
# ...
"django_tiptap_editor",
]
Quickstart
from django import forms
from django_tiptap_editor.forms.fields import TipTapFormField
class ArticleForm(forms.Form):
body = TipTapFormField()
In the admin:
from django.contrib import admin
from django_tiptap_editor.admin.mixin import TipTapModelAdminMixin
@admin.register(Article)
class ArticleAdmin(TipTapModelAdminMixin, admin.ModelAdmin):
pass # every TextField (and TipTapJSONField) becomes a TipTap editor
Render the field with {{ form.media }} (or {% tiptap_media %}) in your template, and
display the stored HTML with {% load tiptap %}{{ article.body|tiptap_html }}. See the
documentation for configuration,
the upload/image-list contracts, theming, extension authoring, asset modes, and the
migration guide.
Documentation
Full documentation is published at artui.github.io/django-tiptap-editor.
License
MIT — see LICENSE.
Metadata
Release files for django-tiptap-editor 0.11.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| django_tiptap_editor-0.11.1.tar.gz | 468.6 kB | With provenance | Details for django_tiptap_editor-0.11.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| django_tiptap_editor-0.11.1-py3-none-any.whl | Python 3 | none | any | Details for django_tiptap_editor-0.11.1-py3-none-any.whl |
Total release size: 682.2 kB
Release files / django_tiptap_editor-0.11.1.tar.gz
| Download URL | django_tiptap_editor-0.11.1.tar.gz |
|---|---|
| Size | 468.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
821c772260dfdce2917fee955c44d2cdfa4fe506535141593a52125a993a5b79
|
|
BLAKE2b-256 checksum How to use checksums |
608d4b80176ce3c82d6a04c5f2f60877ccc4b73e254876c3cd97c26f64262a96
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.
Transparency logRelease files / django_tiptap_editor-0.11.1-py3-none-any.whl
| Download URL | django_tiptap_editor-0.11.1-py3-none-any.whl |
|---|---|
| Size | 213.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d84146673bc0b6ee2e7a37841adf6d18768a6f023aa52ca208acff5828e44357
|
|
BLAKE2b-256 checksum How to use checksums |
edd7d5b7fe7f8621abe01e8dae1f4ebaa2cc8cc36c0fbad0d591ed77a3ede13a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.
Transparency logSecurity for django-tiptap-editor 0.11.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for django_tiptap_editor-0.11.1.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.