www.jointjs.com Open in urlscan Pro
34.249.200.254  Public Scan

Submitted URL: http://www.jointjs.com/
Effective URL: https://www.jointjs.com/
Submission: On October 16 via api from US — Scanned from DE

Form analysis 6 forms found in the DOM

<form>
  <fieldset>
    <legend class="visuallyhidden">Consent Selection</legend>
    <div id="CybotCookiebotDialogBodyFieldsetInnerContainer">
      <div class="CybotCookiebotDialogBodyLevelButtonWrapper"><label class="CybotCookiebotDialogBodyLevelButtonLabel" for="CybotCookiebotDialogBodyLevelButtonNecessary"><span
            class="CybotCookiebotDialogBodyLevelButtonDescription">Necessary</span></label>
        <div class="CybotCookiebotDialogBodyLevelButtonSliderWrapper CybotCookiebotDialogBodyLevelButtonSliderWrapperDisabled"><input type="checkbox" id="CybotCookiebotDialogBodyLevelButtonNecessary"
            class="CybotCookiebotDialogBodyLevelButton CybotCookiebotDialogBodyLevelButtonDisabled" disabled="disabled" checked="checked"> <span class="CybotCookiebotDialogBodyLevelButtonSlider"></span></div>
      </div>
      <div class="CybotCookiebotDialogBodyLevelButtonWrapper"><label class="CybotCookiebotDialogBodyLevelButtonLabel" for="CybotCookiebotDialogBodyLevelButtonPreferences"><span
            class="CybotCookiebotDialogBodyLevelButtonDescription">Preferences</span></label>
        <div class="CybotCookiebotDialogBodyLevelButtonSliderWrapper"><input type="checkbox" id="CybotCookiebotDialogBodyLevelButtonPreferences" class="CybotCookiebotDialogBodyLevelButton CybotCookiebotDialogBodyLevelConsentCheckbox"
            data-target="CybotCookiebotDialogBodyLevelButtonPreferencesInline" checked="checked" tabindex="0"> <span class="CybotCookiebotDialogBodyLevelButtonSlider"></span></div>
      </div>
      <div class="CybotCookiebotDialogBodyLevelButtonWrapper"><label class="CybotCookiebotDialogBodyLevelButtonLabel" for="CybotCookiebotDialogBodyLevelButtonStatistics"><span
            class="CybotCookiebotDialogBodyLevelButtonDescription">Statistics</span></label>
        <div class="CybotCookiebotDialogBodyLevelButtonSliderWrapper"><input type="checkbox" id="CybotCookiebotDialogBodyLevelButtonStatistics" class="CybotCookiebotDialogBodyLevelButton CybotCookiebotDialogBodyLevelConsentCheckbox"
            data-target="CybotCookiebotDialogBodyLevelButtonStatisticsInline" checked="checked" tabindex="0"> <span class="CybotCookiebotDialogBodyLevelButtonSlider"></span></div>
      </div>
      <div class="CybotCookiebotDialogBodyLevelButtonWrapper"><label class="CybotCookiebotDialogBodyLevelButtonLabel" for="CybotCookiebotDialogBodyLevelButtonMarketing"><span
            class="CybotCookiebotDialogBodyLevelButtonDescription">Marketing</span></label>
        <div class="CybotCookiebotDialogBodyLevelButtonSliderWrapper"><input type="checkbox" id="CybotCookiebotDialogBodyLevelButtonMarketing" class="CybotCookiebotDialogBodyLevelButton CybotCookiebotDialogBodyLevelConsentCheckbox"
            data-target="CybotCookiebotDialogBodyLevelButtonMarketingInline" checked="checked" tabindex="0"> <span class="CybotCookiebotDialogBodyLevelButtonSlider"></span></div>
      </div>
    </div>
  </fieldset>
</form>

<form><input type="checkbox" id="CybotCookiebotDialogBodyLevelButtonNecessaryInline" class="CybotCookiebotDialogBodyLevelButton CybotCookiebotDialogBodyLevelButtonDisabled" disabled="disabled" checked="checked"> <span
    class="CybotCookiebotDialogBodyLevelButtonSlider"></span></form>

<form><input type="checkbox" id="CybotCookiebotDialogBodyLevelButtonPreferencesInline" class="CybotCookiebotDialogBodyLevelButton CybotCookiebotDialogBodyLevelConsentCheckbox" data-target="CybotCookiebotDialogBodyLevelButtonPreferences"
    checked="checked" tabindex="0"> <span class="CybotCookiebotDialogBodyLevelButtonSlider"></span></form>

<form><input type="checkbox" id="CybotCookiebotDialogBodyLevelButtonStatisticsInline" class="CybotCookiebotDialogBodyLevelButton CybotCookiebotDialogBodyLevelConsentCheckbox" data-target="CybotCookiebotDialogBodyLevelButtonStatistics"
    checked="checked" tabindex="0"> <span class="CybotCookiebotDialogBodyLevelButtonSlider"></span></form>

<form><input type="checkbox" id="CybotCookiebotDialogBodyLevelButtonMarketingInline" class="CybotCookiebotDialogBodyLevelButton CybotCookiebotDialogBodyLevelConsentCheckbox" data-target="CybotCookiebotDialogBodyLevelButtonMarketing" checked="checked"
    tabindex="0"> <span class="CybotCookiebotDialogBodyLevelButtonSlider"></span></form>

<form class="CybotCookiebotDialogBodyLevelButtonSliderWrapper"><input type="checkbox" id="CybotCookiebotDialogBodyContentCheckboxPersonalInformation" class="CybotCookiebotDialogBodyLevelButton"> <span
    class="CybotCookiebotDialogBodyLevelButtonSlider"></span></form>

Text Content

Powered by Cookiebot
 * Consent
 * Details
 * [#IABV2SETTINGS#]
 * About


COOKIES?

We use cookies to provide the best experience on our website. This includes
cookies for website functionality, to manage our commercial objectives and
optimisation. You can decide which cookie categories you would like to permit.
Consent Selection
Necessary

Preferences

Statistics

Marketing

Show details
Necessary 15

Necessary cookies help make a website usable by enabling basic functions like
page navigation and access to secure areas of the website. The website cannot
function properly without these cookies.
 * Codepen
   3
   Learn more about this provider
   __cfruid [x2]This cookie is a part of the services provided by Cloudflare -
   Including load-balancing, deliverance of website content and serving DNS
   connection for website operators.
   Expiry: SessionType: HTTP
   cf_clearanceThis cookie is used to distinguish between humans and bots.
   Expiry: 1 yearType: HTTP
 * Google
   1
   Learn more about this provider
   test_cookieUsed to check if the user's browser supports cookies.
   Expiry: 1 dayType: HTTP
 * LinkedIn
   2
   Learn more about this provider
   li_gcPending
   Expiry: 180 daysType: HTTP
   bscookiePending
   Expiry: 1 yearType: HTTP
 * New Relic
   1
   Learn more about this provider
   JSESSIONIDPreserves users states across page requests.
   Expiry: SessionType: HTTP
 * YouTube
   1
   Learn more about this provider
   CONSENTUsed to detect if the visitor has accepted the marketing category in
   the cookie banner. This cookie is necessary for GDPR-compliance of the
   website.
   Expiry: 2 yearsType: HTTP
 * adaptivecards.io
   messagecardplayground.azurewebsites.net
   
   2
   ARRAffinitySameSite [x2]Used to distribute traffic to the website on several
   servers in order to optimise response times.
   Expiry: SessionType: HTTP
 * changelog.jointjs.com
   consent.cookiebot.com
   
   3
   CookieConsent [x3]Stores the user's cookie consent state for the current
   domain
   Expiry: 1 yearType: HTTP
 * codepen.io
   hubspot.com
   
   2
   __cf_bm [x2]This cookie is used to distinguish between humans and bots. This
   is beneficial for the website, in order to make valid reports on the use of
   their website.
   Expiry: 1 dayType: HTTP

Preferences 3

Preference cookies enable a website to remember information that changes the way
the website behaves or looks, like your preferred language or the region that
you are in.
 * Hubspot
   1
   Learn more about this provider
   messagesUtkStores a unique ID string for each chat-box session. This allows
   the website-support to see previous issues and reconnect with the previous
   supporter.
   Expiry: 180 daysType: HTTP
 * LinkedIn
   1
   Learn more about this provider
   lidcPending
   Expiry: 1 dayType: HTTP
 * www.jointjs.com
   1
   om-countryThis cookie is used to determine the preferred country setting
   selected by the visitor.
   Expiry: PersistentType: HTML

Statistics 24

Statistic cookies help website owners to understand how visitors interact with
websites by collecting and reporting information anonymously.
 * Google
   6
   Learn more about this provider
   collectUsed to send data to Google Analytics about the visitor's device and
   behavior. Tracks the visitor across devices and marketing channels.
   Expiry: SessionType: Pixel
   _gaRegisters a unique ID that is used to generate statistical data on how the
   visitor uses the website.
   Expiry: 2 yearsType: HTTP
   _ga_#Used by Google Analytics to collect data on the number of times a user
   has visited the website as well as dates for the first and most recent visit.
   Expiry: 2 yearsType: HTTP
   _gatUsed by Google Analytics to throttle request rate
   Expiry: 1 dayType: HTTP
   _gidRegisters a unique ID that is used to generate statistical data on how
   the visitor uses the website.
   Expiry: 1 dayType: HTTP
   tdRegisters statistical data on users' behaviour on the website. Used for
   internal analytics by the website operator.
   Expiry: SessionType: Pixel
 * Hotjar
   10
   Learn more about this provider
   _hjRecordingEnabledCollects data on the user’s navigation and behavior on the
   website. This is used to compile statistical reports and heatmaps for the
   website owner.
   Expiry: SessionType: HTML
   _hjRecordingLastActivitySets a unique ID for the session. This allows the
   website to obtain data on visitor behaviour for statistical purposes.
   Expiry: SessionType: HTML
   hjActiveViewportIdsThis cookie contains an ID string on the current session.
   This contains non-personal information on what subpages the visitor enters –
   this information is used to optimize the visitor's experience.
   Expiry: PersistentType: HTML
   hjViewportIdSaves the user's screen size in order to adjust the size of
   images on the website.
   Expiry: SessionType: HTML
   _hjAbsoluteSessionInProgressThis cookie is used to count how many times a
   website has been visited by different visitors - this is done by assigning
   the visitor an ID, so the visitor does not get registered twice.
   Expiry: 1 dayType: HTTP
   _hjFirstSeenThis cookie is used to determine if the visitor has visited the
   website before, or if it is a new visitor on the website.
   Expiry: 1 dayType: HTTP
   _hjIncludedInSessionSample_#Collects statistics on the visitor's visits to
   the website, such as the number of visits, average time spent on the website
   and what pages have been read.
   Expiry: 1 dayType: HTTP
   _hjSession_#Collects statistics on the visitor's visits to the website, such
   as the number of visits, average time spent on the website and what pages
   have been read.
   Expiry: 1 dayType: HTTP
   _hjSessionUser_#Collects statistics on the visitor's visits to the website,
   such as the number of visits, average time spent on the website and what
   pages have been read.
   Expiry: 1 yearType: HTTP
   _hjTLDTestRegisters statistical data on users' behaviour on the website. Used
   for internal analytics by the website operator.
   Expiry: SessionType: HTTP
 * Hubspot
   4
   Learn more about this provider
   __hsscIdentifies if the cookie data needs to be updated in the visitor's
   browser.
   Expiry: 1 dayType: HTTP
   __hssrcUsed to recognise the visitor's browser upon reentry on the website.
   Expiry: SessionType: HTTP
   __hstcSets a unique ID for the session. This allows the website to obtain
   data on visitor behaviour for statistical purposes.
   Expiry: 180 daysType: HTTP
   hubspotutkSets a unique ID for the session. This allows the website to obtain
   data on visitor behaviour for statistical purposes.
   Expiry: 180 daysType: HTTP
 * LinkedIn
   3
   Learn more about this provider
   AnalyticsSyncHistoryPending
   Expiry: 30 daysType: HTTP
   ln_or [x2]Registers statistical data on users' behaviour on the website. Used
   for internal analytics by the website operator.
   Expiry: 1 dayType: HTTP
 * Twitter Inc.
   1
   Learn more about this provider
   personalization_idPending
   Expiry: 400 daysType: HTTP

Marketing 50

Marketing cookies are used to track visitors across websites. The intention is
to display ads that are relevant and engaging for the individual user and
thereby more valuable for publishers and third party advertisers.
 * Meta Platforms, Inc.
   1
   Learn more about this provider
   _fbpUsed by Facebook to deliver a series of advertisement products such as
   real time bidding from third party advertisers.
   Expiry: 3 monthsType: HTTP
 * Codepen
   1
   Learn more about this provider
   cp_sessionRegisters user behaviour and navigation on the website, and any
   interaction with active campaigns. This is used for optimizing advertisement
   and for efficient retargeting.
   Expiry: 30 daysType: HTTP
 * Google
   6
   Learn more about this provider
   IDEPending
   Expiry: 1 yearType: HTTP
   pagead/landing [x2]Collects data on visitor behaviour from multiple websites,
   in order to present more relevant advertisement - This also allows the
   website to limit the number of times that they are shown the same
   advertisement.
   Expiry: SessionType: Pixel
   ads/ga-audiencesPending
   Expiry: SessionType: Pixel
   pagead/1p-user-list/#Pending
   Expiry: SessionType: Pixel
   _gcl_auUsed by Google AdSense for experimenting with advertisement efficiency
   across websites using their services.
   Expiry: 3 monthsType: HTTP
 * Hubspot
   1
   Learn more about this provider
   __ptq.gifSends data to the marketing platform Hubspot about the visitor's
   device and behaviour. Tracks the visitor across devices and marketing
   channels.
   Expiry: SessionType: Pixel
 * LinkedIn
   3
   Learn more about this provider
   bcookiePending
   Expiry: 1 yearType: HTTP
   li_sugrPending
   Expiry: 3 monthsType: HTTP
   UserMatchHistoryPending
   Expiry: 30 daysType: HTTP
 * Microsoft
   7
   Learn more about this provider
   _uetsidUsed to track visitors on multiple websites, in order to present
   relevant advertisement based on the visitor's preferences.
   Expiry: PersistentType: HTML
   _uetsid_expContains the expiry-date for the cookie with corresponding name.
   Expiry: PersistentType: HTML
   _uetvidUsed to track visitors on multiple websites, in order to present
   relevant advertisement based on the visitor's preferences.
   Expiry: PersistentType: HTML
   _uetvid_expContains the expiry-date for the cookie with corresponding name.
   Expiry: PersistentType: HTML
   MUIDPending
   Expiry: 1 yearType: HTTP
   _uetsidCollects data on visitor behaviour from multiple websites, in order to
   present more relevant advertisement - This also allows the website to limit
   the number of times that they are shown the same advertisement.
   Expiry: 1 dayType: HTTP
   _uetvidUsed to track visitors on multiple websites, in order to present
   relevant advertisement based on the visitor's preferences.
   Expiry: 1 yearType: HTTP
 * Reddit
   2
   Learn more about this provider
   rp.gifNecessary for the implementation of the Reddit.com's share-button
   function.
   Expiry: SessionType: Pixel
   _rdt_uuidUsed to track visitors on multiple websites, in order to present
   relevant advertisement based on the visitor's preferences.
   Expiry: 3 monthsType: HTTP
 * Twitter Inc.
   3
   Learn more about this provider
   i/adsct [x2]The cookie is used by Twitter.com in order to determine the
   number of visitors accessing the website through Twitter advertisement
   content.
   Expiry: SessionType: Pixel
   muc_adsPending
   Expiry: 400 daysType: HTTP
 * YouTube
   18
   Learn more about this provider
   LAST_RESULT_ENTRY_KEYUsed to track user’s interaction with embedded content.
   Expiry: SessionType: HTTP
   LogsDatabaseV2:V#||LogsRequestsStorePending
   Expiry: PersistentType: IDB
   nextIdUsed to track user’s interaction with embedded content.
   Expiry: SessionType: HTTP
   remote_sidNecessary for the implementation and functionality of YouTube
   video-content on the website.
   Expiry: SessionType: HTTP
   requestsUsed to track user’s interaction with embedded content.
   Expiry: SessionType: HTTP
   TESTCOOKIESENABLEDUsed to track user’s interaction with embedded content.
   Expiry: 1 dayType: HTTP
   VISITOR_INFO1_LIVEPending
   Expiry: 180 daysType: HTTP
   VISITOR_PRIVACY_METADATAPending
   Expiry: 180 daysType: HTTP
   YSCPending
   Expiry: SessionType: HTTP
   yt.innertube::nextIdRegisters a unique ID to keep statistics of what videos
   from YouTube the user has seen.
   Expiry: PersistentType: HTML
   YtIdbMeta#databasesUsed to track user’s interaction with embedded content.
   Expiry: PersistentType: IDB
   yt-remote-cast-availableStores the user's video player preferences using
   embedded YouTube video
   Expiry: SessionType: HTML
   yt-remote-cast-installedStores the user's video player preferences using
   embedded YouTube video
   Expiry: SessionType: HTML
   yt-remote-connected-devicesStores the user's video player preferences using
   embedded YouTube video
   Expiry: PersistentType: HTML
   yt-remote-device-idStores the user's video player preferences using embedded
   YouTube video
   Expiry: PersistentType: HTML
   yt-remote-fast-check-periodStores the user's video player preferences using
   embedded YouTube video
   Expiry: SessionType: HTML
   yt-remote-session-appStores the user's video player preferences using
   embedded YouTube video
   Expiry: SessionType: HTML
   yt-remote-session-nameStores the user's video player preferences using
   embedded YouTube video
   Expiry: SessionType: HTML
 * resources.jointjs.com
   www.jointjs.com
   
   4
   optiMonkClientId [x2]Collects information on what products the visitor has
   viewed and the content of the shopping-cart. This is used to increase the
   website's conversion rate through targeted advertisement and product
   promotions through emails.
   Expiry: 1 yearType: HTTP
   optiMonkSession [x2]Implements pop-up advertisement on the website.
   Expiry: SessionType: HTTP
 * www.jointjs.com
   2
   OptiMonkShopAttributesImplements pop-up advertisement on the website.
   Expiry: PersistentType: HTML
   OptiMonkVisitorAttributesImplements pop-up advertisement on the website.
   Expiry: PersistentType: HTML
 * www.jointjs.com
   youtube.com
   
   2
   ytidb::LAST_RESULT_ENTRY_KEY [x2]Used to track user’s interaction with
   embedded content.
   Expiry: PersistentType: HTML

Unclassified 3
Unclassified cookies are cookies that we are in the process of classifying,
together with the providers of individual cookies.
 * cdn.jsdelivr.net
   1
   63061d4ee85b5a18644f221c#pagesPending
   Expiry: PersistentType: IDB
 * resources.jointjs.com
   www.jointjs.com
   
   2
   optiMonkEmbedded119289 [x2]Pending
   Expiry: 1 yearType: HTTP

Cross-domain consent3 Your consent applies to the following domains:
List of domains your consent applies to: changelog.jointjs.com
resources.jointjs.com www.jointjs.com
Cookie declaration last updated on 23.09.23 by Cookiebot


[#IABV2_TITLE#]

[#IABV2_BODY_INTRO#]
[#IABV2_BODY_LEGITIMATE_INTEREST_INTRO#]
[#IABV2_BODY_PREFERENCE_INTRO#]
[#IABV2_LABEL_PURPOSES#]
[#IABV2_BODY_PURPOSES_INTRO#]
[#IABV2_BODY_PURPOSES#]
[#IABV2_LABEL_FEATURES#]
[#IABV2_BODY_FEATURES_INTRO#]
[#IABV2_BODY_FEATURES#]
[#IABV2_LABEL_PARTNERS#]
[#IABV2_BODY_PARTNERS_INTRO#]
[#IABV2_BODY_PARTNERS#]

Cookies are small text files that can be used by websites to make a user's
experience more efficient.

The law states that we can store cookies on your device if they are strictly
necessary for the operation of this site. For all other types of cookies we need
your permission.

This site uses different types of cookies. Some cookies are placed by third
party services that appear on our pages.

You can at any time change or withdraw your consent from the Cookie Declaration
on our website.

Learn more about who we are, how you can contact us and how we process personal
data in our Privacy Policy.

Please state your consent ID and date when you contact us regarding your
consent.



Do not sell or share my personal information
Deny Allow selection Customize

Allow all
Powered by Cookiebot by Usercentrics
NEW: ELEMENT NEIGHBORHOOD DIALOG WINDOW
learn more
NEW: ELEMENT NEIGHBORHOOD DIALOG WINDOW
learn more
discover
Demos & examples
Boilerplates for your project
Features
Explore all functionalities
Customer stories
How companies use JointJS+
JointJS+
All about our extended library
Build vs. Buy
In-depth ROI analysis
Compatibility
React
Angular
Vue
Svelte
HTML
TypeScript
Salesforce Lightning
develop
Documentation
Get tutorials & guides
Support
Gain confidence in your work
Community
Connect with others
Custom development
Bring in an experienced partner
newspricing
start free trial

GET STARTED FOR FREE





JAVASCRIPT DIAGRAMMING LIBRARY POWERING EXCEPTIONAL UIS

Build advanced visual and No-Code/Low-Code applications quickly and confidently
with a proven library.
start free trial

explore demos

20 000+
weekly downloads
50 000+
Developers worldwide
10+
years on the market
Empowering industry leaders worldwide

DEMOS


ONE LIBRARY,
‍UNLIMITED UI OPTIONS

Enjoy interactive flowcharts, BPMN and other diagramming studios directly inside
your app. Tap into our templated apps and cut development time to days.

CHATBOT

Create an advanced Chatbot solution with an intuitive drag-and-drop editor.

MINDMAP

Develop a diagramming solution that visually organises information into a
hierarchy.

ORGANIZATIONAL CHART

Experience the power of JointJS+ on one of the most widely used diagram types.

FLOWCHART

Let your users design the sequence of movements or actions with this flowchart
application.

SANKEY DIAGRAM

Build a drag & drop UI to create a dynamic visual representation of your data.




Explore all demos


KEY FEATURES


WHY DEVELOPERS LOVE US

10+ years of work and experience has led to several areas where we excel today.

SCALABLE VECTOR GRAPHICS

Vector graphics is the building block of our library. It renders perfectly,
supports accessibility and makes interaction easier.
more information


VERSATILITY

Our library is used in a wide variety of industries and fields for all kinds of
applications. Use one of our many demos as a boilerplate for your project and
get results in no time.
more information


CUSTOMIZABILITY

Our library can serve everyone from novice programmers who benefit from a range
of pre-built features, to experienced developers who need as much customization
as possible.
more information


BROWSER & FRAMEWORK FRIENDLINESS

Our library works on all devices and is compatible with all major JavaScript
frameworks such as React, Angular, Vue and others.
more information


EXCEPTIONAL SUPPORT

Our library is built by developers, for developers. We know things get
complicated, and we're proud to provide top-notch support, including conference
calls, expert code reviews and other services to help you overcome any
obstacles.
more information


FLEXIBLE PRICING

JointJS+ is priced per developer, making it suitable for projects of any size.
This means you can develop any number of products for any number of users on any
number of machines without paying more.

more information

Explore all features


COMPATIBILITY


IT WORKS EVERYWHERE

Our library is based on a strong HTML5 and SVG foundation that allows it to run
seamlessly in all major JavaScript frameworks and modern browsers.

IMPLEMENTATION IN LEADING JAVASCRIPT FRAMEWORKS

Vue
Angular
React
Svelte
Salesforce Lightning

OUR CUSTOMERS


JOINTJS+, THE FIRST CHOICE OF INDUSTRY LEADERS

We empower industry giants, startups and solopreneurs to build visual and
No-Code/Low-Code applications faster and with confidence.




HONEST TESTIMONIALS FROM OUR CUSTOMERS

JointJS+ allowed CELUS to focus all our efforts on developing our core
technology, while still providing our users with a great diagramming experience.
The library is fast to integrate and comes with a wide set of advanced features
out of the box that saved us countless development hours. A great partner to
have!
Rui Calsaverini
Engineering Director, CELUS GmbH
JointJS+ was really a great find, as it gave us a great boost in the diagramming
frontend of our application. These guys know their business and give you a great
support on your development. One of our requirements was to have a BPMN diagram
support in our app and they quickly supplied this as a plugin to JointJS+!
José Miguel Gonçalves
Project Manager, Nov Inesc Inovação
The JointJS+ toolkit is the best solution we found as a full fledged diagramming
library for the web. The JointJS team has been extremely responsive to our needs
and it’s been great to help contribute back to the product throughout our
development process.
Kevin Mansel
Senior Software Engineer, Patent Navigation
JointJS+ was the perfect product for us. We have used JointJS+ as the foundation
to create an illustration tool for Sales relationships within a target
organization. The product has been reliable, flexible, straightforward to
integrate, and very easy for end users to understand.
Phil Cederstrom
Chief Technology Officer, Polaris I/O
read customer stories


VERSIONS


JOINTJS & JOINTJS+

Choose our community version for basic solutions, or go professional to create
advanced visual applications without limitations.


COMMUNITY

Community version for basic apps
JointJS is a community-driven diagramming library that helps developers create
simple applications in less time by offering essential UI features.
Open-source code
Essential features
Basic support


PROFESSIONAL

Swiss-army knife on the road to cutting-edge apps
JointJS+ extends the functionality of JointJS and offers a wide range of
customizable features, ready-to-implement demo apps and white-glove support.
Commercial license and source code
40+ UI features
150+ ready-to-use demo apps
Dedicated developer support
see full comparison


MISSION


CREATING AN ENVIRONMENT FROM WHICH THE NEXT BIG IDEAS ARISE

We support developers, innovative thinkers and entrepreneurs who pursue ideas
that make a positive impact on the world.
About us

community

JavaScript diagramming library powering exceptional UIs.
The latest news


DISCOVER

FeaturesDemos & examplesCustomer storiesJointJS+About usFAQContact usBuild vs.
Buy: ROI analysis

DEVELOP

DocumentationSupportCommunityCustom developmentResellersCustomer portal

USEFUL

NewsPricingLicensingSupport termsTry JointJS+ for freeBuy JointJS+JointJS+
comparison

COMPATIBILITY

ReactAngularVueSvelteHTMLTypescriptSalesforce Lightning
discover
FeaturesDemos & examplesCustomer storiesJointJS+About usFAQContact usBuild vs.
Buy: ROI analysis
develop
DocumentationSupportCommunityCustom developmentResellersCustomer portal
useful
NewsPricingJointJS+ comparisonLicensingSupport termsTry JointJS+ for freeBuy
JointJS+
Compatibility
ReactAngularVueSvelteHTMLTypesciptSalesforce Lightning
client.IO
We are part of client.IO, a company dedicated to developing Low-Code/No-Code
tools and empowering innovative thinkers to create amazing products faster.
Learn more
Appmixer
We are proud creators of Appmixer, an embedded iPaaS and workflow automation
system. Powered by JointJS+. Learn more
Cookie PolicyPrivacy Policy
This website is haunted