{"id":13422168,"url":"https://github.com/remirror/remirror","last_synced_at":"2025-05-12T05:17:54.481Z","repository":{"id":37089302,"uuid":"166780923","full_name":"remirror/remirror","owner":"remirror","description":"ProseMirror toolkit for React 🎉","archived":false,"fork":false,"pushed_at":"2025-05-10T15:36:22.000Z","size":80153,"stargazers_count":2889,"open_issues_count":201,"forks_count":254,"subscribers_count":19,"default_branch":"main","last_synced_at":"2025-05-11T10:16:35.286Z","etag":null,"topics":["browser","editor","mobile","prosemirror","react","react-prosemirror","rich-text-editor","text-editor","typescript","wysiwyg"],"latest_commit_sha":null,"homepage":"https://remirror.io","language":"TypeScript","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/remirror.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":"docs/contributing.md","funding":".github/funding.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":"support/actions/CHANGELOG.md","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":["ifiokjr","remirror","whawker","ocavue","ronnyroeller"]}},"created_at":"2019-01-21T08:59:53.000Z","updated_at":"2025-05-11T07:17:41.000Z","dependencies_parsed_at":"2023-02-16T02:45:57.021Z","dependency_job_id":"ab667603-a8d5-432e-a687-94aee77d62ae","html_url":"https://github.com/remirror/remirror","commit_stats":{"total_commits":2829,"total_committers":88,"mean_commits":32.14772727272727,"dds":0.4128667373630258,"last_synced_commit":"b3c8b02f7562afb7de08b4308a3302a500386d33"},"previous_names":["ifiokjr/remirror"],"tags_count":638,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/remirror%2Fremirror","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/remirror%2Fremirror/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/remirror%2Fremirror/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/remirror%2Fremirror/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/remirror","download_url":"https://codeload.github.com/remirror/remirror/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253547300,"owners_count":21925551,"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":["browser","editor","mobile","prosemirror","react","react-prosemirror","rich-text-editor","text-editor","typescript","wysiwyg"],"created_at":"2024-07-30T23:00:38.454Z","updated_at":"2025-05-12T05:17:54.456Z","avatar_url":"https://github.com/remirror.png","language":"TypeScript","readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://remirror.io\"\u003e\u003cimg width=\"300\" height=\"300\" src=\"https://raw.githubusercontent.com/remirror/remirror/next/support/assets/logo-animated-light.svg?sanitize=true\" alt=\"animated remirror logo\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  A React \u003cem\u003etoolkit\u003c/em\u003e for building \u003cem\u003ecross-platform\u003c/em\u003e text editors, based on \u003ca href=\"https://github.com/ProseMirror/prosemirror\"\u003eProseMirror\u003c/a\u003e.\n\u003c/p\u003e\n\n\u003cbr /\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"#motivation\"\u003e\u003cstrong\u003eMotivation\u003c/strong\u003e\u003c/a\u003e ·\n  \u003ca href=\"#status\"\u003e\u003cstrong\u003eStatus\u003c/strong\u003e\u003c/a\u003e ·\n  \u003ca href=\"https://remirror.io/docs\"\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/a\u003e ·\n  \u003ca href=\"https://remirror.vercel.app\"\u003e\u003cstrong\u003eStorybook\u003c/strong\u003e\u003c/a\u003e ·\n  \u003ca href=\"https://remirror.io/docs/contributing\"\u003e\u003cstrong\u003eContributing\u003c/strong\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cbr /\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://unpkg.com/@remirror/core/dist/core.browser.esm.js\"\u003e\n    \u003cimg src=\"https://img.shields.io/bundlephobia/minzip/@remirror/core/next\" alt=\"Bundled sized of core library\" title=\"@remirror/core bundle size\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/remirror/remirror/actions?query=workflow:ci\"\u003e\n    \u003cimg src=\"https://github.com/remirror/remirror/workflows/ci/badge.svg?branch=next\" alt=\"Continuous integration badge for automatic releases\" title=\"GitHub Actions CI Badge\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/remirror/remirror/actions?query=workflow:docs\"\u003e\n    \u003cimg src=\"https://github.com/remirror/remirror/workflows/docs/badge.svg?branch=next\" alt=\"Continuous integration badge for docs deployment\" title=\"Docs Deployment CI Badge\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://codeclimate.com/github/remirror/remirror/maintainability\"\u003e\n    \u003cimg src=\"https://api.codeclimate.com/v1/badges/f4d8dcd5c2228524a53a/maintainability\" alt=\"Project maintainability provided by CodeClimate\" title=\"Maintainability score\"/\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://codeclimate.com/github/remirror/remirror/test_coverage\"\u003e\n    \u003cimg src=\"https://api.codeclimate.com/v1/badges/f4d8dcd5c2228524a53a/test_coverage\" alt=\"Unit test coverage for the codebase\" title=\"Code coverage\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://remirror.io/chat\"\u003e\n    \u003cimg alt=\"Discord\" src=\"https://img.shields.io/discord/726035064831344711\" alt=\"Join our discord server\" title=\"Discord server link\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"./packages/remirror/package.json\"\u003e\n    \u003cimg src=\"https://img.shields.io/npm/v/remirror?style=flat\" alt=\"Version\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/sponsors/remirror\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/-Sponsor-7963d2\" alt=\"Sponsor\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cbr /\u003e\n\n## Introduction\n\n```jsx\nimport React from 'react';\nimport { BoldExtension, ItalicExtension, UnderlineExtension } from 'remirror/extensions';\nimport { Remirror, useRemirror, OnChangeJSON } from '@remirror/react';\n\nconst extensions = () =\u003e [new BoldExtension(), new ItalicExtension(), new UnderlineExtension()];\n\nconst Editor = ({ onChange }) =\u003e {\n  const { manager, state } = useRemirror({\n    extensions,\n    content: '\u003cp\u003eHi \u003cstrong\u003eFriend\u003c/strong\u003e\u003c/p\u003e',\n    stringHandler: 'html',\n    selection: 'end',\n  });\n\n  return (\n    \u003cRemirror manager={manager} initialContent={state}\u003e\n      \u003cOnChangeJSON onChange={onChange} /\u003e\n    \u003c/Remirror\u003e\n  );\n};\n```\n\nWith this code snippet your editor now supports basic editing functionality.\n\nAlternatively, take a look at our [5 minute tutorial](https://remirror.io/docs/5-min-tutorial) to get up and running with an out-of-the-box WYSIWYG editor.\n\n\u003cbr /\u003e\n\n## Installation\n\n```bash\nnpm install remirror @remirror/react @remirror/pm\n# Or\nyarn add remirror @remirror/react @remirror/pm\n# Or\npnpm add remirror @remirror/react @remirror/pm\n```\n\nIf you run into any issues we recommend any of the following:\n\n- Open an issue in our [github repo](https://github.com/remirror/remirror/issues).\n- [Join our discord server](https://remirror.io/chat) and discuss the problem with our community.\n- Create a pull request with your proposed improvement by clicking the edit button on the relevant page.\n\nWhatever you decide thanks for taking the time to explore the **remirror** project.\n\n\u003cbr /\u003e\n\n## Our community\n\n### Sponsors\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003ca href=\"https://www.nextapp.co/\" rel=\"nofollow\"\u003e\n        \u003cimg src=\"https://user-images.githubusercontent.com/2003804/170265084-f3f7a605-612d-4799-86dc-2f8f0b4a3c21.png\" height=\"100\" style=\"max-width: 100%;\" alt=\"NEXT logo\"\u003e\u003cbr\u003e\n        \u003cstrong\u003eNEXT\u003c/strong\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003ca href=\"https://reflect.app/\" rel=\"nofollow\"\u003e\n        \u003cimg src=\"https://user-images.githubusercontent.com/2003804/170265087-fb7bf84e-0413-49d5-8a30-15b71bc9055b.png\" height=\"100\" style=\"max-width: 100%;\" alt=\"Reflect logo\"\u003e\u003cbr\u003e\n        \u003cstrong\u003eReflect\u003c/strong\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n**[Become a sponsor!](https://github.com/sponsors/remirror)**\n\n### Community spotlight\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003ca href=\"https://www.hellobenefex.com/\" rel=\"nofollow\"\u003e\n        \u003cimg src=\"https://user-images.githubusercontent.com/2003804/173526360-6f432f7b-014f-44b6-ac8d-cbb03e5bd6e2.png\" width=\"80\" style=\"max-width: 100%;\" alt=\"Benefex logo\"\u003e\u003cbr\u003e\n        \u003cstrong\u003eBenefex\u003c/strong\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003ca href=\"https://cobudget.com/\" rel=\"nofollow\"\u003e\n        \u003cimg src=\"https://user-images.githubusercontent.com/2003804/170274003-89c8ff79-c5b7-4a59-b78b-b540f2fe308e.jpeg\" width=\"50\" style=\"max-width: 100%;\" alt=\"Cobudget logo\"\u003e\u003cbr\u003e\n        \u003cstrong\u003eCobudget\u003c/strong\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003ca href=\"https://eftax.co.jp/\" rel=\"nofollow\"\u003e\n        \u003cimg src=\"https://user-images.githubusercontent.com/2003804/170274006-133e9f20-1d01-47a1-92af-7cac9a8c2fb6.png\" width=\"80\" style=\"max-width: 100%;\" alt=\"eftax logo\"\u003e\u003cbr\u003e\n        \u003cstrong\u003eeftax Co., Ltd.\u003c/strong\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003ca href=\"https://www.labkey.com/\" rel=\"nofollow\"\u003e\n        \u003cimg src=\"https://user-images.githubusercontent.com/2003804/170284116-672d0048-31aa-4b3c-8889-648ecc6e01b9.png\" width=\"50\" style=\"max-width: 100%;\" alt=\"LabKey logo\"\u003e\u003cbr\u003e\n        \u003cstrong\u003eLabKey\u003c/strong\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003ca href=\"https://www.onethread.app/\" rel=\"nofollow\"\u003e\n        \u003cimg src=\"https://user-images.githubusercontent.com/2003804/170278624-631b4030-1f5e-4fb9-832f-783d0806dd61.jpeg\" width=\"50\" style=\"max-width: 100%;\" alt=\"Onethread logo\"\u003e\u003cbr\u003e\n        \u003cstrong\u003eOnethread\u003c/strong\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n## Documentation\n\nView our documentation website [**here**][introduction].\n\n- [Introduction]\n- [Use an out-of-the-box editor](https://remirror.io/docs/5-min-tutorial)\n- [Create your own editor](https://remirror.io/docs/getting-started/installation)\n- [Extensions](https://remirror.io/docs/extensions/)\n- [Storybook]\n- [CodeSandbox starter](https://codesandbox.io/s/github/remirror/remirror-starter)\n\n\u003cbr /\u003e\n\n## Features\n\n- A11y focused and ARIA compatible.\n- I18n support via [lingui](https://lingui.dev).\n- Great support for mobile devices.\n- Out-of-the-box editors, or create own by composing extensions.\n- Create your own extensions for bare-metal ProseMirror integration.\n- Collaborative editing with [yjs](https://github.com/yjs/yjs) or [prosemirror-collab](https://github.com/ProseMirror/prosemirror-collab).\n- 30+ extensions for creating fully customized editing experiences.\n- TypeScript as a first class citizen for great developer experience.\n\n\u003cbr /\u003e\n\n## Getting Started\n\nSee our [5 minute tutorial](https://remirror.io/docs/5-min-tutorial) to get started!\n\n## Contributing\n\nPlease read our [contribution guide] for details on our code of conduct, and the process for submitting pull requests. It also outlines the project structure so you can find help when navigating your way around the codebase.\n\n\u003cbr /\u003e\n\n## Versioning\n\nThis project uses [SemVer](http://semver.org/) for versioning. For the versions available, see the [tags on this repository](https://github.com/remirror/remirror/tags).\n\n\u003cbr /\u003e\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details\n\n[introduction]: https://remirror.io/docs\n[contribution guide]: https://remirror.io/docs/contributing\n[projects]: https://remirror.io/projects\n[installation]: https://remirror.io/docs/installation\n[storybook]: https://remirror.vercel.app\n[typescript]: https://github.com/microsoft/Typescript\n[react]: https://github.com/facebook/react\n[prosemirror]: https://prosemirror.net\n","funding_links":["https://github.com/sponsors/ifiokjr","https://github.com/sponsors/remirror","https://github.com/sponsors/whawker","https://github.com/sponsors/ocavue","https://github.com/sponsors/ronnyroeller"],"categories":["Editor Components","UI Components","By Industry","TypeScript","By Language","browser","Editors","Editor","Uncategorized"],"sub_categories":["Form Components","Mobile Development","TypeScript","Uncategorized"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fremirror%2Fremirror","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fremirror%2Fremirror","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fremirror%2Fremirror/lists"}