Greg Zapp <ProTip>

Founder of StepWise

Announcing ProseMirror.Net

StepWise is on a mission to re-invent open-source IT process automation through what we call “process documentation”; the tight integration of documentation and workflow automation..

When it comes to integrating with a rich text editor, ProseMirror was an obvious choice.

With nearly 1m weekly downloads from npmjs.com, being relied on by Confluence, and seemingly hundreds of millions in VC funded “collaborative x” startups relying on it, it’s a very capable and widely used project.

One of the technical design goals of the StepWise project is to minimize external service dependencies. We are chasing the monolith and limiting our required services to just one where possible; PostgreSQL. This presents an interesting challenge with processing ProseMirror steps on the backend since we are building on DotNet, and ProseMirror is a TypeScript project.

What kind of processing would need to be done on the backend?

  • Validation: With backend validation we can assure that the steps don’t violate the schema. Bugs in implementation on the frontend can cause invalid steps to be submitted to the backend
  • Creating or modifying documents server-side
  • Snapshotting documents for performance and versioning
  • Server-side step mapping (more on this coming soon!)

An early POC was built using Microsoft ClearScript to load and communicate with ProseMirror in embedded v8 instances. This was surprisingly successful but came with certain downsides:

  • Calling to v8 is surprisingly expensive; nearly 1ms round trip just for the call!
  • An extra API surface had to be created and maintained on the C# and the TypeScript side.
  • Large-ish amounts of data need to be transferred frequently to process steps(schema, doc, steps, etc).

What if we could process document changes entirely in DotNet?

We are happy to announce the release of ProseMirror.Net . This MIT licensed project is a direct translation of the core ProseMirror projects to C# including the test suites with 419 passing tests.

By translating Prosemirror to DotNet we are adding another environment where the community can grow, and explore potential benefits of running under DotNet.

Sign up for our newsletter

Stay up to date with the roadmap progress, announcements and exclusive discounts feel free to sign up with your email.