Skip to content
This repository has been archived by the owner on Apr 27, 2023. It is now read-only.

RFC: Migrate away from Texture #39

Open
NuclearRedeye opened this issue Apr 6, 2020 · 0 comments
Open

RFC: Migrate away from Texture #39

NuclearRedeye opened this issue Apr 6, 2020 · 0 comments
Assignees
Labels
rfc A request for comments

Comments

@NuclearRedeye
Copy link
Contributor

Problem

Developing new features for Libero Editor is proving significantly more difficult than it should, and the development team are finding it increasingly more effort to implement new functionality into the tool.

The problems that the development team have encountered are as follows:

  • Lack of documentation or sample code for both Texture and the Substance library that it is built upon.
  • Very little use of existing libraries or frameworks means large amounts of code must be written to achieve trivial things.
  • The code base is overly abstracted, which makes it overly hard to follow or understand. This is particularly an issue when trying to implement a complex new feature.
  • The tool cannot be configured without making changes to the code.

These problems have given rise to the following concerns:

  • Lack of active development on either the Substance library or Texture will result in a large maintenance burden on the development team.
  • Unable to make use of existing frameworks, e.g. React, without making significant alterations to the underlying code.
  • The ease at which new developers can be on-boarded and make contributions to the project.
  • Implementation of complicated new functionality, e.g. Tracked Changes or Collaborative editing, will be extremely costly in effort to achieve.

Suggestion

After evaluation of other potential solutions, we recommend to restart development of the editor using ProseMirror.

We believe that actioning the above address the problems raised as follows:

  • ProseMirror has been proven in production environments, most notably in Atlasian’s AtlasKit. It is also used in several other smaller projects, such as Manuscripts.io, including many that are currently in development.
  • ProseMirror is still actively developed, and has an active community around it.
  • ProseMirror is well documented, with plenty of documentation discussing architecture and design, lots of sample code on how to implement various bits of functionality as well as TypeScript definition files.
  • Integrates well with existing frameworks, e.g. React.
  • There is plenty of existing code and plugins out there that we can potentially leverage to accelerate development and contribute back too. E.g. the Manuscripts.io developers have already developed a JATS plugin.
  • Complex functionality, for example tracked changes and collaborative editing, are significantly easier to implement.

Concerns

Although we have had success in rapidly prototyping with ProseMirror, that developing a new editor from scratch will take longer than planned or is considered ideal. Although we have mitigated this risk and feel confident that this is unlikely to occur, it is not 100% risk free.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
rfc A request for comments
Projects
None yet
Development

No branches or pull requests

1 participant