ORY is a company building and maintaining developer tools for a safer, more accessible web. You
might also like our other Open Source projects! The ORY Editor is a smart, extensible and
modern editor ("WYSIWYG") for the web written in React. If you are fed up with the limitations of contenteditable
, you
are in the right place.
The ORY Editor is used at Germany's largest (~800k uniques per month) E-Learning Website www.serlo.org to improve the wiki experience.
Check out the demo at editor.ory.sh!
Please Note: ORY Editor is pre-release and backwards compatibility is not guaranteed. However, we try our best to make breaking changes visible and easy to recover from!
We have been running the Wikipedia for learning for almost a decade now. The experience and the lessons learned made us embark on the journey to build the ORY Editor. We wanted to make content editing on the web easy and enrich the Open Source Community with technology that moves the needle significantly for how content is created and edited on the web.
We had to realize that existing open source content editing solutions had one of the three flaws:
- The produced markup was horrific, a lot of sanitation had to take place and XSS is always a threat.
- The author must learn special mark up, like markdown, before being able to produce content. These text-based solutions are usually unable to specify a layout and complex data structures like tables are annoying to edit.
- Editors based on contenteditable are unable to work with layouts (e.g. flexbox or floating grids).
We concluded that a solution must meet the following principles:
- The state is a normalized JSON object, no HTML involved.
- It is a visual editor that does not require programming experience or special training.
- Based on reusable React Components, it gives developers, authors and designers new ways of working together and creating better and richer experiences more easily.
- It works on mobile and touch devices.
With these principles in mind, we went out and implemented the ORY Editor, which you are looking at right now.
Currently our focus is on optimizing the ORY Editor for usage with React. We will work on, and ship versions that do not require React in the future. Please check the ReactJS tutorial!
$ npm install --save ory-editor
Note: The ory-editor
package is a metapackage. It includes the core, our default ui and some plugins we
officially support. Use this package primarily for convenience.
Check out the user guide on gitbook.
Do you want to run, develop or contribute to the ORY Editor? For that you need Node installed on your system. Use git to check out this repository as followed.
$ git clone https://github.com/ory/editor.git
$ cd editor
The ORY Editor is a monorepo that you initialise with:
$ yarn i
To work properly, you'll need yarn.
Here are some examples that are a good starting point if you want to familiarize yourself with the editor. To run the examples, use one of the following commands:
$ yarn run build
$ cd examples
$ yarn run start
Our toolchain contains tests, eslint and flow types. We highly recommend to run this toolchain while developing.
# run the tests in watch mode
$ yarn run test:watch
# run eslint in watch mode
$ yarn run lint:watch
# run flowtype in watch mode
$ yarn run flow:watch
To run the guide in watch mode, do:
$ yarn run docs:guide
To generate API docs, run:
$ yarn run docs:api
We keep track of known issues in the issues tab.