Manuscripts.io

Manuscripts.io is an open source ProseMirror-based editor in a React application, served as a PWA that works offline and can be installed as a desktop application via Chrome.

Manuscripts.io takes a fully offline-first approach: instead of using ProseMirror’s standard collaboration plugin, Manuscripts serializes each block of the document to a JSON object with an id, which is stored in the browser’s local storage (IndexedDB) using RxDB/PouchDB and then synced with Couchbase via Sync Gateway, which handles permissions and validates each object according to a defined schema. Conflict resolution is handled in each client, with any conflicting changes in the document’s content presented to the user for them to choose the most appropriate resolution.

The same schema used for model validation is also used to generate TypeScript types, and ensures backwards-compatibility of data with the macOS version of Manuscripts, which the current editor is based on.

Collaboration in Manuscripts.io works at the project level — each project can contain several manuscripts — and collaborators can either be responsible for editing parts of the document or can simply comment by adding annotations to blocks or ranges of the manuscript. A new project management feature allows fine-grained control of who is assigned to each part of the manuscript, with configurable deadlines.

Manuscripts can be created from a library of templates covering thousands of journals. As well as a journal-specific citation style, templates can also define requirements such as word and character limits, and these requirements are evaluated continuously while the manuscript is being edited.

As well as the standard manuscript features (text formatting, figures, tables, citations, lists, equations, etc), Manuscripts.io includes some innovations: figures that can be (re)generated dynamically by evaluating code in a hosted Jupyter kernel; built-in searching of online reference databases; configurable paragraph, section and inline styles, and output to multiple formats (DOCX, PDF, JATS XML, HTML, and others).

The initial launch of Manuscripts.io was at the end of 2019, and the Manuscripts editor code is due to be restructured to incorporate the lessons we’ve learned while building the current version and to increase modularity so that it’s easier for developers to contribute. If you’d like to make some impact on the new architecture or would simply like to take part in growing Manuscripts into new areas, Atypon would like to hire developers with ProseMirror experience and would be delighted to hear from you by email at mpiipari@atypon.com.

Manuscripts.io is built by a team within Atypon, the leading provider of SaaS for online content delivery, content marketing, and content sales for publishers, and Atypon has recently started sponsoring ProseMirror with a monthly contribution to the maintenance fund.

9 Likes

Looks wonderful!

Looks fantastic! As someone who uses a lot of math notation in their writing, I would love to see more advanced math support added in the future! See here for an example of the type of math input users like me expect.

2 Likes

love this!

Very cool!