Today we’re talking about how NetProtec teamed up with to bring Video Magistrate, an innovative video conferencing application for legal proceedings, to life.

In 2017, NetProtec came to us with their idea and a few questions. Our team created a working proof of concept in approximately one week. Since the project was technically feasible, we began working on it to make it a full-fledged, production-ready application. Since then, we’ve done multiple iterations on top of the initial project, adding new features and adapting it according to the user’s feedback.

What is Video Magistrate?

Video Magistrate, or V.M., is a real-time video application that, in its simplest configuration, allows a judge to perform legal proceedings with a prison using WebRTC. Here are some of its most prominent features:

  • Document and archive management
  • Template designer, which allows you to create document templates from PDFs
  • Collaborative, real-time document editing
  • Securely sign and encrypt generated documents
  • Signature pad support
  • Record legal proceedings

Technical challenges

One of the main technical challenges of V.M. was the need to edit and sign documents in real time. We couldn’t find a solution that matched our exact need, so we developed an ad-hoc solution using web technologies and a few supporting libraries from signature pad vendors.

Another of V.M.’s compelling features is the ability to create a template from a form PDF or image document. Users are then able to design their documents by drawing fields over the original document. These fields have different types and uses (e.g., text, option select, and signature) and will ultimately be filled in by users in real-time collaborative sessions. The filled-in values will be shown on the final rendered document.

At one point, we ran into an obscure bug that caused our servers to occasionally stop recording. After some debugging, we traced the issue to one of OpenTok’s server side libraries. We fixed the bug and submitted a PR upstream.

Lastly, one of our main areas of focus was security. This was especially important since NetProtec’s V.M. is an application that handles sensitive information. We worked with NetProtec to ensure that the application generated tamper-proof documents and legally-binding signatures.

Technical stack


It became apparent early on that V.M. would be a rich client application, so we decided to create a SPA using React, Redux, Apollo, and the tooling around them.


On the backend, we decided on a GraphQL API implemented on NodeJS. We really like the flexibility that GraphQL gives while querying the data model we designed.

Video sessions

We used OpenTok to implement the video call feature of the application for two main reasons:

  1. Its feature set aligned well with NetProtec’s needs
  2. It’s one of the CPaaS our team has the most experience with

Does your business need a custom real-time solution? Would you like to collaborate on a project that meets your needs? Our team has decades of experience in web application and software development and has invested over 200,000 hours in building real-time applications. We’re ready to help. Contact us today!

Recent Blog Posts