GoJS and JointJS+ are indeed both leading diagramming frameworks which you can use to carve tech products of high quality. They have similar purposes and share common functionalities. However, one shall not assume they are like two peas in a pod.

In this article, we will take a closer look at what exactly GoJS and JointJS+ are and what similarities and differences exist between them. After reading it, you will be able to decide which one is better for your diagramming use case, may it be floorplanning, visualization of business process modeling, or something else.

Let’s start!

diagramming code

Are GoJS and JointJS+ the same?

No, but they share some common assets. For example, in both GoJS and JointJS+, you can build powerful diagramming apps. Although there are differences which we will discuss later on, one can claim in good conscience that their potential for diagramming is similar.

What’s the difference then?

What is GoJS?

GoJS is a JavaScript library that lets users create interactive diagrams. It was launched in 2012 by Northwoods Software, a company providing high-end graphical user interfaces. GoJS library provides users with a great deal of ready-to-use features, templates, and layouts, ensuring a high level of customization. It runs the gamut of charts, from BPMN diagrams, through SCADA systems, to medical genograms.

What is JointJS+?

JointJS+ is the new brand for good old Rappid, launched in 2012 by Client.io as a diagramming toolkit. It is the commercial extension for the JointJS Core library, a diagramming framework for advanced applications. JointJS is a powerful open-source library that allows businesses to create complex diagrams and graphs in JavaScript apps. In addition, it has many built-in features which support visualization and interaction with graphs.

visualization diagramming

Similarities between GoJS and JointJS+

Let’s take a look at what GoJS and JointJS+ have in common.

Purpose

First of all, both frameworks can be used for building all kinds of interactive diagrams such as:

  • flowcharts that depict computer algorithms or processes,
  • org charts that are meant to display the internal structure of a company,
  • SCADA (Supervisory Control And Data Acquisition) diagrams which provide information about the control status, such as event failure,
  • genograms to show the relationships between family members,
  • and so on…

Those diagrams can help your company better track results, manage floor planning or show the dependencies between the company’s departments. Wherever data visualization can improve a specific process, you can think of shaking the helpful hand of both GoJS and JointJS+.

Scalability

Let’s say you would like to build a bespoke app for process management. For now, you only need graphs to illustrate Business Process and Notation models. However, in the future, you’d like to integrate the app with Business Score Cards. Which one is better for this use case: GoJS or JointJS+?

Both of them are good enough. If you wish to introduce new add-ons to your product, it does not matter which framework you choose. Both technologies allow programmers to write fully scalable applications. And so they do!

scalability

Software Architectural Pattern 

Both frameworks use MVC (Model-View-Controller), an architectural pattern envisioned by Trygve Reenskauf in the 1970s. The inventor said that “the essential purpose of MVC is to bridge the gap between the human user’s mental model and the digital model that exists in the computer.”

In MVC, the related program logic is divided into three interconnected elements. Those parts are the model of an application, the presentation of data in the model, and the user interaction. The main benefit of this solution is that the responsibilities can be split into three roles:

  1. developers who take care of how the program logic works,
  2. developers responsible for how the application looks and feels,
  3. and developers responsible for the integration – they check if the previous two roles cooperate well.

With the use of MVC, developers do not have to worry about the elasticity of view (that can be modified more often and at a lower cost as they do not influence the program logic) and can stay concentrated on their own parts.

From a business perspective, apps built in the MVC pattern have greater security level as the responsibility is split into three roles and it is easier to find any mistakes. Moreover, if a new developer joins the team, he or she can quickly dive into the app’s code as the structure is clear and well-determined.

Of course, diagramming components are often only features in the whole app. If your product uses a different architectural pattern, developers will write the code according to the pattern of the whole product.

architectural pattern

Ready-to-use components

Both JointJS+ and GoJS run the gamut of ready-to-use components, including:

  • node templates,
  • automatic layouts,
  • data binding,
  • customizable events,
  • and much more!

It is important as using already built-in features accelerates the development process. Also, stakeholders can see how the application looks and feels based on templates covered with random data. Therefore, you can see what the application will look like before it is already built.

What are the differences?

As you could see, both frameworks share similar features and are good for diagramming projects. But now, let’s dive into differences between them that may affect your decision whether to choose GoJS or JointJS+.

Rendering engine

First, the main difference between GoJS and JointJS+ is the rendering engine they operate on. The type of the engine impacts the app’s performance and speed of development (which we’ll talk about later). That is why we should take a closer look at the mechanisms of SVG for JointJS+, and HTML5 canvas for GoJS.

JointJS+ uses SVG (The Scalable Vector Graphics), which is an XML-based image format used for defining vector-based graphics. SVG contains multiple elements that are part of the DOM (Document Object Model) tree. As the name suggests, DOM is a model where HTML code is presented as a tree structure of tags. It means that there are parenthood relationships between nodes: <html> is a root, and <head> or <body> are its children.

On the other hand, GoJS uses HTML5 canvas, which is raster-based, and composed of pixels (not shapes). The elements are just containers for graphics, and developers have to use scripting (in the diagramming – usually JavaScript) to make an action such as drawing. And it can be done only through scripts, not in CSS itself.

The meaningful question arises: how does a specific image format affect software development? Let’s see!

rendering engine

Performance

Canvas performs better with large numbers of objects than SVG. And thereby, GoJS handles displaying large amounts of data better than JointJS+.

Because of the DOM structure, SVG is not recommended to use while simultaneously displaying a large amount of data. It stems from the fact that performance problems (such as lags) may occur due to a rapid expansion in the size of the DOM tree. Suppose your diagramming project needs to operate on much data (for example: combining visual layer with audio). In that case, you may encounter problems with JointJS+ that uses SVG, and it would be wiser to think about GoJS.

Speed of development

The software development process will bring your app to life faster if you choose JointJS+.

Having the visual representation of objects described in DOM simplifies finding specific elements and their identification and enables introducing changes without the necessity of re-rendering the whole diagram. Therefore, working in SVG accelerates the testing of the applications and, as a result, the whole app development.

In the case of GoJS, which uses HTML5 canvas, there is no simple way to see the effects of re-rendering, which extends the development process. 

So, if you have strict time limitations (for example, the app has to be finished before getting another founding round or the stakeholders wish to see the app as soon as possible), it would be wiser to choose JointJS+.

Let’s leave the matter of the graphic engine apart and take a look at other factors crucial to choosing the tech stack for your digital product. 

speed of development

Knowledge base

Whether you build your diagramming app in-house or with the help of a software agency, it is worth paying attention to how strong the framework’s education base is. It is a natural thing that unexpected problems may occur at every stage of the software development process. In such cases, developers can look for solutions in a proven knowledge base, such as the technology’s official website. And the more examples the provider showcases, the faster the developers team finds solutions to problems. As a result, the development process is also faster. 

For now, and we’re in 2022, GoJS provides the developers with more examples of apps you can build with this solution. On its website, you can see how to make diverse diagram types, including flowcharts, entity relationships, sankeys, genograms, BPMNs, or beloved by science enthusiasts, Games of Lifes. And much more! The base is really impressive and also showcases specific features and layouts.

Life can’t be too easy, though. 

If we look at the number of tutorials, it is JointJS+ that wins. On its website, you can find information on handling various technical issues such as, for example, integration with React or Angular, adding Kanban Application, or proceeding with changelogs.

It seems that it is 1:1 in this duel. 

The choice between GoJS and JointJS+ in that case depends on educational material the developers would like to dive into. On the one hand, the GoJS knowledge hub is more focused on how to design various forms of diagrams. JointJS+, on the other hand, puts more effort into explaining how to approach specific complications that may occur.

Community

One must admit that a well-developed tech community is a strong asset. For example, suppose developers encounter a problem not described in documentation or official materials. In that case, they will likely ask for advice on forums where other technology enthusiasts spend time. It is much easier (and faster) to write a question on the dedicated forum and get a response within a few hours rather than wait for the answer from the customer support team.

tech community

We can see on Stack Overflow that there are already 415 questions tagged “GoJS” which has a bigger tech community than JointJS+. In comparison, so far, there are 93 topics marked with “Rappid”. However, no one tagged a post with “JointJS+”.

Nevertheless, let’s see how providers of JointJS+ see the future of the framework. It seems that their goal is to build a community of developers who will be able to create products that improve our world. As we can read on the framework’s official website:

I am excited that we are improving not only on the product level, but also in our communication with customers and the community. It has always been our number one priority to be a valuable partner in their journey to success, and clear communication certainly plays an important role in that mission.” says Roman Brückner, CTO at Client.io

So, fingers crossed!

Popularity

Popularity of a technology often means bigger tech communities. But, apart from this argument, it can help you assess how difficult it is to find developers specializing in the given framework. Low popularity can lead to problems in finding, for instance, professionals for your in-house projects. 

As JointJS+ was released this year, it is a challenging task (and probably not a good idea) to find statistics comparing the popularity of the discussed frameworks. However, for this reason, we can glimpse at JointJS as it is still a JavaScript library strongly related to JointJS+.

According to Awesome JS, both frameworks’ popularity is predicted to grow. But GoJS hit 7.9 stars out of 10, making it more popular than JointJS, which scored 6 stars. The main metric taken into account was the number of downloads.

So this time the Oscar goes to GoJS.

Which technology should I choose?

Tl;dr: The one that better meets your expectations and needs.

We would recommend focusing on the following decision criteria:

  • Does your app need to visualize a large amount of data in various formats? If yes, it would be safer to invest the resources in GoJS.
  • Are you running out of time, and would you like to have the app built in 3 months rather than 9? It is JointJS+ that buys you a time advantage.
  • Are you planning to build an in-house team for diagramming development? Keep in mind that GoJS is more popular, and it would be easier to find professionals specialized in this language.
  • Are you planning to form a tech partnership? It would be wise to ask the prospect partner on which technology they can provide better recommendations. All in all, this is the tech expertise of professional developers that counts the most.

GoJS vs JointJS+ – summary

Let’s recap what we’ve learned.

First of all, both JointJS+ and GoJS are leading diagramming technologies. Their potential to develop advanced apps is similar. Both frameworks have many built-in features and enable programmers to build scalable applications. 

However, if your product requires processing a large amount of data, JointJS+ is likely to cause lags. Therefore, it would be wiser to choose GoJS. If it is not your case, you can freely decide on JointJS+, especially if you are under time pressure. Development in JointJS+ is much faster than in GoJS due to using a different rendering engine. 

Another question is whether you would like to handle the development in-house or partner with a software agency. Unfortunately, it is more difficult to hire developers specialized in JointJS+ as it is not as popular as GoJS. That is why you could encounter problems in finding developers for your in-house project. However, if you are thinking about a tech partnership, the problem of low popularity disappears as there are agencies focused on development mainly in the JointJS+. 

If you are still unsure whether to choose JointJS+ or GoJS, how about jumping on a call with our consultant?

Looking for an IT business partner?

Tell us about your challenges!

Let's talk