Back in early 2021, we released WebViewer Collaboration , a set of plug and play modules to enable real-time collaboration in any WebViewer-enabled digital content workflow. Webviewer Collaboration features include real-time annotation syncing and conversations, browser and email notifications, and a database-agnostic architecture to enable seamless integration with existing workflows.

After a year of tirelessly working with customers, implementing their feedback, and refining the system in our own applications, we’ve learned a lot about how the collaboration system actually needs to work. We believe it has evolved into a great product.

Today, we’re happy to announce version 2.0 of the WebViewer Collaboration modules!

But don't just take our word for it! See or yourself by viewing the live demo, reading the guides, or checking out one of our open source samples.

Building a Fully Featured Collaborative Experience

Implementing a full collaboration experience into an application is no small feat. It requires vast knowledge in many areas of software development and architecture, and can quickly become hard to maintain and scale.

We’ve experienced this struggle for many years at PDFTron, building out many separate collaboration implementations for many different use cases. However, none of these implementations felt complete and one implementation could only work in one application.

The experience we gained from building out many separate implementations of collaboration gave us a solid foundation for building WebViewer Collaboration modules.

What's New In 2.0?

WebViewer Collaboration 2.0 ships with many new features, most of them focused on developer experience and ease of integration. Below you’ll find the major new features, but there are many more!

Brand New API

This release comes with an entirely rebuilt client-side API. We believe this new API is much easier to use than the previous one, and we’re sure you'll agree!

It’s now much easier to track the state of your application, thanks to a granular event system and a logical way of tracking a user's documents and annotations.

See the changelog for the new API here.

New Document Annotation Versioning Workflow

In any collaborative workflow, tracking changes is vitally important. To support this requirement, V2 lets you track changes to annotations as they occur via a new “versioning” or “snapshot” system. This system also lets you restore a previous version of the annotations from the document history so no work is ever lost.

Read more about this feature here.

Automatic Configuration for SQL Databases

Ease of integration is a priority for all of our software at PDFTron and we wanted to make it as easy as possible to integrate our collaboration software with SQL databases. We therefore built the SQL Resolver Generator module for WebViewer Collaboration.

This module automatically generates the SQL queries required to read and write data from your database, which simplifies integration and decreases setup time. Before this module, you had to write queries yourself, which was time consuming and error prone.

This module works with any SQL-like database, including PostgreSQL, MS SQL, MySQL, SQLite, and Oracle.

All the Tools You Need for Collaboration

In our experience, a fully featured collaboration flow requires many pieces. As a result, we have integrated all of the following features into our Collaboration service to use at your disposal.

Agnostic Database Support

We realize that every project has different requirements, and therefore the database you choose might vary from project to project. You may even have an existing database and application that you would like to add real-time collaboration to. Our collaboration system is database agnostic, meaning that you can use any database to store your data.

Let’s say that you’re starting from scratch and don’t yet have a database. In this case, we provide a preconfigured Postgres database. Requiring almost zero configuration, this database is the recommended way to get started with WebViewer Collaboration.

Real-Time Annotation Syncing

Real-time annotation syncing is the core feature of our collaboration system. When one user adds, edits, or deletes an annotation, all other users viewing the document see that change in real time. This also applies to comments on annotations, which work like conversation threads.

Gif of real time annotation syncing

User Authentication and Single Sign On (SSO)

WebViewer Collaboration integrates seamlessly into your existing authentication system, allowing your existing users to authenticate with the collaboration system.

Once a user is signed in and authenticated, we provide many useful APIs to get information about the user, including documents they belong to and any unread messages they may have.

Document Annotation Versioning

Snapshots

Versioning is an important part of any collaboration workflow. Viewing a previous version of a document's annotations allows users to see the progress that has been made since the collaboration process started.

WebViewer Collaboration includes document annotation versioning features, such as the snapshot feature.

The snapshot feature allows you to take a "snapshot" of a document's annotations at a certain point in time. Users can then preview the snapshot and even revert the annotations to that point in time.

Flexible User Permissions

User permissions

In any application, it is important to control which users are allowed to perform certain actions. Our robust permission control feature lets you set user permissions at a granular level.

The server allows you to specify which users are allowed to add, edit, or delete documents, annotations, and snapshots.

If our settings are not flexible enough for you, you may provide your own custom logic to define user permissions.

Email and Browser Notifications

Our powerful, built-in notification features keep your users in the loop when certain actions happen, like an invitation to a document or a mention in a comment.

They will also let you show customized notifications in real time in the browser, or send them to users via email. (We even have a default SendGrid implementation!)

Active Users & Scroll Synchronization

Similar to Google Docs, the collaboration modules allow you to show your users who is currently viewing a document, and even display which page each user is viewing.

If that's not enough, the collaboration modules ship with a scroll sync feature, which allows multiple users to view the same part of a document, in sync. One user controls the position of the document, and the rest of the users follow.

Scroll sync

Developer Focused

We take great pride in creating a great developer experience for all of our products, and WebViewer Collaboration is no exception.

All modules come with extensive logging support to help you track down bugs in your implementation. You can customize the types of logs you see, and even provide your own Winston transports for custom logging implementations.

To ice the cake, the collaboration server includes a built-in testing suite to help you catch configuration issues. Provide your configuration to the testing suite and let it catch any issues for you.

// test.js
const TestResolvers = require('@pdftron/collab-server/tests/resolvers')
const myConfig = require('./server/config');
(async () => {
  const errors = await TestResolvers(myConfig);
  console.log(errors);
})()

GIF of testing the collaboration server

Conclusion

We hope that our collaboration software inspires you and helps you build effective, user friendly collaboration into your application.

We’ll continue to enhance this product based on customer feedback, so you can look forward to more updates in the future! In the meantime, we hope you enjoy version 2.0.

As always, if you have any questions, run into issues, or have a cool idea for our product, please get in touch! We’re always happy to hear from you.

Happy collaborating!