{"id":177,"url":"https://github.com/nikgraf/awesome-draft-js","last_synced_at":"2025-09-11T05:31:27.377Z","repository":{"id":38360188,"uuid":"53355489","full_name":"nikgraf/awesome-draft-js","owner":"nikgraf","description":"Awesome list of Draft.js resources","archived":false,"fork":false,"pushed_at":"2022-05-04T08:19:29.000Z","size":99,"stargazers_count":2514,"open_issues_count":0,"forks_count":137,"subscribers_count":62,"default_branch":"master","last_synced_at":"2025-08-31T06:10:16.215Z","etag":null,"topics":["awesome","awesome-list","draft-js","list"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nikgraf.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"contributing.md","funding":null,"license":null,"code_of_conduct":"code-of-conduct.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-03-07T20:09:53.000Z","updated_at":"2025-08-14T22:21:44.000Z","dependencies_parsed_at":"2022-07-17T03:49:24.796Z","dependency_job_id":null,"html_url":"https://github.com/nikgraf/awesome-draft-js","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/nikgraf/awesome-draft-js","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nikgraf%2Fawesome-draft-js","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nikgraf%2Fawesome-draft-js/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nikgraf%2Fawesome-draft-js/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nikgraf%2Fawesome-draft-js/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nikgraf","download_url":"https://codeload.github.com/nikgraf/awesome-draft-js/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nikgraf%2Fawesome-draft-js/sbom","scorecard":{"id":687137,"data":{"date":"2025-08-11","repo":{"name":"github.com/nikgraf/awesome-draft-js","commit":"f1262ec2efacbdb4ca3da3a7d386b55e4911572f"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.8,"checks":[{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Code-Review","score":9,"reason":"Found 15/16 approved changesets -- score normalized to 9","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":0,"reason":"license file not detected","details":["Warn: project does not have a license file"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 29 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-22T01:13:39.772Z","repository_id":38360188,"created_at":"2025-08-22T01:13:39.772Z","updated_at":"2025-08-22T01:13:39.772Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273948907,"owners_count":25196401,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-06T02:00:13.247Z","response_time":2576,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["awesome","awesome-list","draft-js","list"],"created_at":"2024-01-05T20:12:48.501Z","updated_at":"2025-09-11T05:31:27.148Z","avatar_url":"https://github.com/nikgraf.png","language":null,"readme":"# Awesome Draft.js [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome)\n\n[Draft.js](https://draftjs.org/) is a framework for building rich text editors in React.\n\n**Table of Contents**\n\n- [Community](https://github.com/nikgraf/awesome-draft-js#community)\n- [Presentations](https://github.com/nikgraf/awesome-draft-js#presentations)\n- [Projects on Top of Draft.js](https://github.com/nikgraf/awesome-draft-js#standalone-editors-built-on-draftjs)\n- [Common Utilities](https://github.com/nikgraf/awesome-draft-js#common-utilities)\n- [Blog Posts \u0026 Articles](https://github.com/nikgraf/awesome-draft-js#blog-posts--articles)\n- [Live Demos](https://github.com/nikgraf/awesome-draft-js#live-demos)\n- [Usage in Production](https://github.com/nikgraf/awesome-draft-js#usage-in-production)\n- [License](https://github.com/nikgraf/awesome-draft-js#license)\n\n## Community\n\n* [Slack channel](https://draftjs.herokuapp.com/)\n\n## Presentations\n* [Rich Text Editing with React @ React.js Conf 2016 by Isaac Salier-Hellendag ](https://www.youtube.com/watch?v=feUYwoLhE_4)\n* [Rich text editing with Draft.js \u0026 DraftJS Plugins by Nik Graf](https://www.youtube.com/watch?v=gxNuHZXZMgs)\n* [React Ep. 37: Draftjs by What I Learned Today – Atomic Jolt](https://www.youtube.com/watch?v=0k9suXgCtTA)\n* [008 - Draft.js Plugins @ React30](https://www.youtube.com/watch?v=w-PqnpMizcQ)\n* [Draft.js at HubSpot by Ben Briggs](https://product.hubspot.com/blog/tech-talk-at-night-react-meetup)\n* [Draft.js under the hood - React Melbourne meetup](https://www.youtube.com/watch?feature=player_embedded\u0026v=vOZAO3jFSHI)\n\n## Standalone Editors Built on Draft.js\n\n* [Draft WYSIWYG](https://github.com/bkniffler/draft-wysiwyg) - WYSIWYG editor that with drag\u0026drop, resizing \u0026 tooltips.\n* [Draft.js Editor](https://github.com/AlastairTaft/draft-js-editor/) - A Rich text editor inspired by Medium \u0026 Facebook Notes.\n* [React-RTE](https://github.com/sstur/react-rte/) - A full-featured textarea replacement similar to CKEditor or TinyMCE.\n* [Facebook Notes Clone(ish)](https://github.com/andrewcoelho/react-text-editor) - Rich text editor similar to Facebook notes.\n* [Megadraft](https://github.com/globocom/megadraft) - A rich text editor with a nice default base of plugins and extensibility.\n* [Medium Draft](https://github.com/brijeshb42/medium-draft) - Medium-like rich text editor with a focus on keyboard shortcuts.\n* [React-Draft-Wyiswyg](https://github.com/jpuri/react-draft-wysiwyg) - A WYISWYG editor, with various text editing options and corresponding HTML generation.\n* [Dante 2](https://github.com/michelson/dante2) - Just another Medium clone built on top of DraftJs.\n* [Last Draft](https://github.com/vacenz/last-draft) - A Draft editor built with Draft.js plugins.\n* [Z-Editor](https://github.com/Z-Editor/Z-Editor) - Online Z-notations editor.\n* [Draftail](https://github.com/springload/draftail/) -  A configurable rich text editor based on Draft.js, built for Wagtail.\n* [Braft](https://github.com/margox/braft-editor) - Extensible Draft JS Editor\n\n## Plugins and Decorators Built for Draft.js\n\n* [Draft.js Plugins](https://github.com/draft-js-plugins/draft-js-plugins) - A Plugin architecture on top of Draft.js\n  - [Alignment](https://www.draft-js-plugins.com/plugin/alignment)\n  - [Block Breakout](https://github.com/icelab/draft-js-block-breakout-plugin) - Break out of block types as you type.\n  - [Buttons](https://github.com/vacenz/last-draft-js-plugins)\n  - [Color Picker](https://github.com/vacenz/last-draft-js-plugins)\n  - [Counter](https://www.draft-js-plugins.com/plugin/counter) - Character, word \u0026 line counting.\n  - [Divider](https://github.com/simsim0709/draft-js-plugins/tree/master/draft-js-divider-plugin)\n  - [Drag and Drop](https://www.draft-js-plugins.com/plugin/drag-n-drop)\n  - [Embed](https://github.com/vacenz/last-draft-js-plugins)\n  - [Emoji](https://www.draft-js-plugins.com/plugin/emoji) - Slack-like emoji support\n  - [EmojiPicker](https://github.com/vacenz/last-draft-js-plugins)\n  - [Focus](https://www.draft-js-plugins.com/plugin/focus)\n  - [GifPicker](https://github.com/vacenz/last-draft-js-plugins)\n  - [Hashtags](https://www.draft-js-plugins.com/plugin/hashtag) - Twitter-like hashtag support\n  - [Image](https://www.draft-js-plugins.com/plugin/image)\n  - [Inline Toolbar](https://www.draft-js-plugins.com/plugin/inline-toolbar)\n  - [Katex](https://github.com/letranloc/draft-js-katex-plugin) - Insert and render LaTeX using Katex.\n  - [Link](https://github.com/vacenz/last-draft-js-plugins)\n  - [Linkify](https://www.draft-js-plugins.com/plugin/linkify) - Automatically turn links into anchor-tags.\n  - [List](https://github.com/samuelmeuli/draft-js-list-plugin) - Automatic list creation, nested lists\n  - [Markdown Shortcuts](https://github.com/ngs/draft-js-markdown-shortcuts-plugin/) - Markdown syntax shortcuts.\n  - [Mathjax](https://github.com/tarjei/draft-js-mathjax-plugin) - Edit math using (La)TeX rendered by Mathjax.\n  - [Mention](https://www.draft-js-plugins.com/plugin/mention) - Twitter-like mention support\n  - [Modal](https://github.com/vacenz/last-draft-js-plugins)\n  - [Prism](https://github.com/withspectrum/draft-js-prism-plugin) - Syntax highlight code blocks with Prism.\n  - [Resizeable](https://www.draft-js-plugins.com/plugin/resizeable)\n  - [RichButtons](https://github.com/jasonphillips/draft-js-richbuttons-plugin) - Add and customize rich formatting buttons.\n  - [Side Toolbar](https://www.draft-js-plugins.com/plugin/side-toolbar)\n  - [Sidebar](https://github.com/vacenz/last-draft-js-plugins)\n  - [Single Line](https://github.com/icelab/draft-js-single-line-plugin) - Restrict to a single line of input.\n  - [Sticker](https://www.draft-js-plugins.com/plugin/sticker) - Facebook-like sticker support\n  - [Toolbar](https://github.com/vacenz/last-draft-js-plugins)\n  - [Undo](https://www.draft-js-plugins.com/plugin/undo) - Undo \u0026 Redo button.\n  - [Video](https://www.draft-js-plugins.com/plugin/video)\n* [Draft.js Gutter](https://github.com/seejamescode/draft-js-gutter) - Compliments line number gutter.\n* [Draft.js Basic HTML Editor](https://github.com/dburrows/draft-js-basic-html-editor) - Accept html as its input format, and return html to an onChange.\n* [Draft.js Prism](https://github.com/SamyPesse/draft-js-prism)- Highlight code blocks using Prism.\n* [Draft.js Typeahead](https://github.com/dooly-ai/draft-js-typeahead) - Support for typeahead functionality.\n* [Draft Extend](https://github.com/HubSpot/draft-extend) - Build extensible Draft.js editors with configurable plugins and integrated serialization.\n* [Draft.js Code](https://github.com/SamyPesse/draft-js-code) - A collection of low-level utilities for nicer code editing\n* [Draft.js Annotatable](https://github.com/cltk/annotations) - Out of the box annotation system for Draft.js with support for user-created annotations.\n* [Draft.js Regex](https://github.com/YozhikM/draft-regex) - The set of flexible helpers, like regex, blank lines preventing and pasted HTML clearing.\n\n## Common Utilities\n\n* [BackDraft.js](https://github.com/evanc/backdraft-js) - Function to turn a rawContentBlock into a marked-up string.\n* [Draft.js Exporter](https://github.com/rkpasia/draft-js-exporter) - Export and format the content from Draft.js.\n* [Draft.js: Export ContentState to HTML](https://github.com/sstur/draft-js-utils/tree/master/packages/draft-js-export-html) - Export ContentState to HTML.\n* [Draft.js: Export ContentState to PDFMake](https://github.com/datagenno/draft-js-export-pdfmake) - Export ContentState to PDFMake.\n* [Redraft](https://github.com/lokiuz/redraft) - Renders the result of Draft.js convertToRaw using provided callbacks, works well with React\n* [Draft.js exporter (Ruby)](https://github.com/ignitionworks/draftjs_exporter) - Export Draft.js content state into HTML.\n* [Draft.js exporter (Python)](https://github.com/springload/draftjs_exporter) - Library to convert Draft.js raw ContentState to HTML\n* [Draft.js AST Exporter](https://github.com/icelab/draft-js-ast-exporter) - Export content into an abstract syntax tree (AST).\n* [Draft.js AST Importer](https://github.com/icelab/draft-js-ast-importer)- Import an abstract syntax tree (AST) output from the companion draft-js-ast-exporter.\n* [Draft.js Multidecorators](https://github.com/SamyPesse/draft-js-multidecorators) - Combine multiple decorators.\n* [Draft.js SimpleDecorator](https://github.com/Soreine/draft-js-simpledecorator) - Easily create flexible decorators.\n* [DraftJS Utils](https://github.com/jpuri/draftjs-utils) - Set of utility functions for DraftJS.\n* [DraftJs to HTML](https://github.com/jpuri/draftjs-to-html) - Library for generating HTML for DraftJS editor content.\n* [Draft Convert](https://github.com/HubSpot/draft-convert) - Extensibly serialize \u0026 deserialize Draft.js ContentState with HTML.\n* [HTML to DraftJS](https://github.com/jpuri/html-to-draftjs) - Convert plain HTML to DraftJS Editor content.\n* [Draft.js Exporter (Go)](https://github.com/ejilay/draftjs) - Export Draft.js content state into HTML.\n* [React Native Draft.js Render](https://github.com/globocom/react-native-draftjs-render) - A React Native render for Draft.js model.\n* [Draft.js filters](https://github.com/thibaudcolas/draftjs-filters) - Filter Draft.js content to preserve only the formatting you allow.\n* [Sticky](https://github.com/nadunindunil/sticky) - A simple note taking and clipboard managing desktop application\n\n## Blog Posts \u0026 Articles\n\n* [Facebook open sources rich text editor framework Draft.js](https://code.facebook.com/posts/1684092755205505/facebook-open-sources-rich-text-editor-framework-draft-js/)\n* [This Blog Post Was Written Using Draft.js](https://dev.to/ben/this-blog-post-was-written-using-draftjs)\n* [How Draft.js Represents Rich Text Data](https://medium.com/@rajaraodv/how-draft-js-represents-rich-text-data-eeabb5f25cf2#.7gd8psdvi)\n* [A Beginner’s Guide to Draft.js](https://medium.com/@adrianli/a-beginner-s-guide-to-draft-js-d1823f58d8cc#.uufeulpl5)\n* [Implementing todo list in Draft.js](http://bitwiser.in/2016/08/31/implementing-todo-list-in-draft-js.html)\n* [Draft.js Pieces](https://cannibalcoder.com/2016/12/02/draft-js-pieces/)\n* [Learning Draft.js](https://reactrocket.com/series/learning-draft-js/) - Series of blog posts on how to develop with draft.js\n* [Why Wagtail’s new editor is built with Draft.js](https://wagtail.io/blog/why-wagtail-new-editor-is-built-with-draft-js/)\n* [Rethinking rich text pipelines with Draft.js](https://wagtail.io/blog/rethinking-rich-text-pipelines-with-draft-js/)\n\n## Live Demos\n* [Draft-js Samples - An app with examples and code explanations](https://github.com/Mair/react-meetup-draftjs)\n* [Draftail Playground](https://draftail-playground.herokuapp.com/) – Wagtail’s Draft.js dependencies as a standalone demo.\n* [Draft drag and drop demo for mobile browser](https://github.com/jan4984/draft-dnd-example)\n\n## Playgrounds for Examples from Official Repository (v.0.10.0)\n* [Rich Text Editor](https://codepen.io/Kiwka/pen/YNYvyG)\n* [Color Editor](https://codepen.io/Kiwka/pen/oBpVve)\n* [Convert from HTML Editor](https://codepen.io/Kiwka/pen/YNYgWa)\n* [Entity Editor](https://codepen.io/Kiwka/pen/wgpOoZ)\n* [Link Editor](https://codepen.io/Kiwka/pen/ZLvPeO)\n* [Media Editor](https://codepen.io/Kiwka/pen/rjpRzj)\n* [Plain Text Editor](https://codepen.io/Kiwka/pen/jyYJzb)\n* [Decorators Editor - Tweet example](https://codepen.io/Kiwka/pen/KaZERV)\n\n## Usage in Production\n* [StoryChief](https://www.storychief.io/)\n* [HKW Technosphere Magazine](https://technosphere-magazine.hkw.de/)\n* [Douban Read](https://read.douban.com/editor_ng)\n* [Dooly](https://www.dooly.ai)\n* [Wagtail](https://wagtail.io/)\n* [Patreon](https://www.patreon.com/)\n\n## License\n\n[![CC0](http://mirrors.creativecommons.org/presskit/buttons/88x31/svg/cc-zero.svg)](https://creativecommons.org/publicdomain/zero/1.0/)\n\nTo the extent possible under law, [Nikolaus Graf](https://github.com/nikgraf/) has waived all copyright and related or neighboring rights to this work.\n","funding_links":["https://www.patreon.com/"],"categories":["Front-End Development","Technical","Others","miscellaneous","Uncategorized","Framework \u0026 Library","Live Site:   [searchAwesome](https://search-awesome.vercel.app/)","Other Lists","前端开发","Themed Directories"],"sub_categories":["awesome-*","Uncategorized","TeX Lists","Misc"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnikgraf%2Fawesome-draft-js","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnikgraf%2Fawesome-draft-js","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnikgraf%2Fawesome-draft-js/lists"}