{"id":20365188,"url":"https://github.com/udecode/editor-protocol","last_synced_at":"2026-03-05T23:07:43.827Z","repository":{"id":39051628,"uuid":"457397939","full_name":"udecode/editor-protocol","owner":"udecode","description":"The open editor protocol","archived":false,"fork":false,"pushed_at":"2023-04-11T03:04:16.000Z","size":54,"stargazers_count":27,"open_issues_count":75,"forks_count":1,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-01-15T04:38:50.808Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/udecode.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"zbeyens"}},"created_at":"2022-02-09T14:41:57.000Z","updated_at":"2024-09-04T16:13:56.000Z","dependencies_parsed_at":"2025-01-15T03:58:37.472Z","dependency_job_id":"8fb8b641-3e8a-4fb2-9932-f2cb732664bd","html_url":"https://github.com/udecode/editor-protocol","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/udecode%2Feditor-protocol","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/udecode%2Feditor-protocol/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/udecode%2Feditor-protocol/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/udecode%2Feditor-protocol/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/udecode","download_url":"https://codeload.github.com/udecode/editor-protocol/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241904719,"owners_count":20040021,"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","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":[],"created_at":"2024-11-15T00:16:11.207Z","updated_at":"2026-03-05T23:07:38.778Z","avatar_url":"https://github.com/udecode.png","language":null,"funding_links":["https://github.com/sponsors/zbeyens"],"categories":["Others"],"sub_categories":[],"readme":"# Editor Protocol\n\nThe Editor Protocol is an open standard for building a rich text editor. Editors developed in accordance with the protocol allow you to develop applications following the state of the art. The protocol aims to cover all use-cases as there is no clear definition of what the standard should be. The choice is yours.\n\n- UI/UX\n- Data structure\n- Editor operations\n- Collaboration\n- Technical architecture\n- Comparison between many existing editors\n- ...\n\n## Getting Started\n\n- The [Protocol](https://github.com/udecode/editor-protocol/issues/1), Docs and Specs format is using issues to leverage the activity log.\n- The Protocol is composed of Docs.\n- Each Doc is a list of Spec related to a subject (e.g. paragraph).\n- Each Spec should be mappable to one Unit Test (_\"when..., it should be...\"_), not less, not more.\n- Anyone can create Docs and Specs by opening an issue.\n- Maintainers will link the new Docs and Specs to the Protocol Docs.\n- If a Doc gets too big, it will be split into smaller Docs.\n\n## Usage\n\n[Plate](https://github.com/udecode/plate) is an example framework that will follow the Editor Protocol.\n\n## Roadmap\n\n_We’ll be publishing a public roadmap for the Editor Protocol soon._\n\n\u003c!-- See the [open issues](https://github.com/udecode/editor-protocol/issues?q=is%3Aissue+is%3Aopen) for a list of some proposed features (and known issues). --\u003e\n\n### Documentation-Driven Development\n\nThe Editor Protocol follows Documentation-Driven Development principles.\n\nThe philosophy behind Documentation-Driven Development is a simple: **from the perspective of a user, if a feature is not documented, then it doesn't exist, and if a feature is documented incorrectly, then it's broken.**\n\n- Document the feature *first*. Figure out how you're going to describe the feature to users; if it's not documented, it doesn't exist. Documentation is the best way to define a feature in a user's eyes.\n- Whenever possible, documentation should be reviewed by users (community) before any development begins.\n- Once documentation has been written, development should commence, and test-driven development is preferred.\n- Unit tests should be written that test the features as described by the documentation. If the functionality ever comes out of alignment with the documentation, tests should fail.\n- When a feature is being modified, it should be modified documentation-first.\n- When documentation is modified, so should be the tests.\n- Documentation and software should both be versioned, and versions should match, so someone working with old versions of software should be able to find the proper documentation.\n\n## Contributing\n\nThe Editor Protocol is an open-source standard, and community contributions are what make open-source such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.\n\nSteps to follow for new Docs and Specs:\n- Editor Protocol (Documentation-driven development):\n  - Open an issue documenting the new Doc or Spec.\n  - Mention the issue where the new Doc or Spec should be linked to.\n  - _Semantic versioning – after beta_\n- Application (Test-driven development):\n  - Open a PR testing the corresponding Editor Protocol Spec(s), mentioning the Spec issue(s).\n  - Develop the feature in that PR so that the unit test(s) pass.\n  - Review then merge.\n  - Release.\n\n🌟 Please consider **starring** the project and watching it on GitHub, to be kept abreast of future developments and show your appreciation.\n\n📥 If you’ve got an idea for a new Spec, would like to make a suggestion that improves the protocol itself, or want to contribute to a better developer experience for users of the protocol, please comment the existing issues or open a new issue.\n\n\u003c!-- If you’re looking for inspiration regarding new specs to write, or contributions you could make, please check the [open issues](https://github.com/udecode/editor-protocol/issues?q=is%3Aissue+is%3Aopen). --\u003e\n\n[Become a Sponsor!](https://github.com/sponsors/zbeyens)\n\nFind us on [Slack](https://slate-js.slack.com/messages/plate), we will take the time to guide you.\n\n## License\n\n[MIT](https://github.com/udecode/editor-protocol/blob/main/LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fudecode%2Feditor-protocol","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fudecode%2Feditor-protocol","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fudecode%2Feditor-protocol/lists"}