Introducing Substance

Jan 18, 2016

Post by Coko collaborator, Michael Aufreiter,

Substance is a library for creating web-based WYSIWYG editors with all the features you would need.

Lens, a scientific content production suite built with Substance.

WYSIWYG editors like TinyMCE, Aloha, CKEditor etc are ‘widgets’. You place them in your webpage and you have little control over how they look or behave. Substance is not a widget. Substance is a sophisticated library that enables you to build exactly the editor you want.

Substance is an entirely new approach to editing software.

With Substance you can customize everything. And we make doing this as simple as possible.


What makes Substance unique?

• Produce and edit HTML, XML, or any kind of document format
• Multiple editing surfaces (titles, comments, content body etc)
• Sophisticated native annotation features
• Easily integrated with third party services (eg. CrossRef DOI API)
• Reusable, customizable, components (Scrollbars, Toolbars etc)

For a complete list of features see here.

Who is using it?

Substance has been used to power a scientific reading tool called eLife Lens, which is used by eLife, the American Mathematical Society and other publishers. From that evolved a scientific editor called Lens Writer. Substance is also used to power digital archives with Archivist, data-driven documents at Stencila and News editors at Infomaker.

Most importantly Substance will be a main building block of PubSweet, the decoupled full-featured content production system initiated by our friends at Coko.

When is it ready?

Use it now. We just released Substance 1.0 Beta 3. The API is fairly stable and most interfaces are documented. There will be two more beta releases, complementing the features before we freeze the API for a 1.0 release in April 2016.

Real time Collaboration?

Collaborative editing will be supported in the next beta version, supposedly ready in February 2016.

How much?

Substance is completely free and available as Open Source under an MIT license.

How do I get started?

As a web-developer, jump right over to the examples and learn how to define a custom article, write an HTML converter for it and build an editor component.

Tell us about your experiences and let us know what you liked and what’s missing to solve your use-case. We’re glad for feedback and contributions in any form.

Happy editor building!