GoJS 2.1 Released: read about all new features and changes here

New animation capabilities, including the ability to specify custom animations. See the intro page on animation.

New: a React component, gojs-react, to simplify React integration, and a React sample using that component, gojs-react-basic. See the GoJS with React introduction page for more information.

New: an Angular component, gojs-angular, to simplify Angular integration, and a Angular sample using that component, gojs-angular-basic. See the GoJS with Angular introduction page for more information.

GoJS is a JavaScript and TypeScript library for building interactive diagrams and graphs

From simple flowcharts and org charts to highly-specific industrial diagrams, SCADA and BPMN diagrams, medical diagrams such as genograms and outbreak modeling diagrams, and more. GoJS makes constructing graphs of complex nodes, links, and groups easy with customizable templates and layouts.

GoJS offers advanced features for user interactivity such as drag-and-drop, copy-and-paste, in-place text editing, tooltips, context menus, automatic layouts, templates, data binding and models, transactional state and undo management, palettes, overviews, event handlers, commands, extensible tools for custom operations, and customizable animations.

We maintain hundreds of sample diagrams, detailing different examples of interactivity, templates, and user logic for you to start from. We offer free developer-to-developer support during evaluation.



Build interactive flowcharts or flow diagrams. Let your users build, modify, and save Diagrams with JSON model output.
State Chart

State Charts

Visualize State Charts and other behavior diagrams. Create diagrams with live updates to monitor state, or interactive diagrams for planning.
Sankey Diagram

Sankey Diagrams

GoJS allows considerable customization of Links and Nodes to build all kinds of diagrams. Visualize flow, or connect pipes
Leaflet Map

Genogram Diagrams

Create Genogram and Medical diagrams, or editable family trees with collapsible levels.
Org Chart

Org Charts

Create classic org charts for viewing or editing. Automatic layouts make different visualization options easy.
Dynamic Ports Demo

Dynamic Ports

Dynamically add ports and custom link routing. Use data-bindings to save and load routes within the Model JSON.
Data Visualization

Industrial Processes

Model industrial processes, workflows, SCADA diagrams and more. Permissions and validation make it easy to add rules and constraints when your customers build diagrams.
Regrouping Demo

Dynamic Grouping

Use groups as containers and subgraphs, with group members bounds by their own rules and layouts.

GoJS is implemented in TypeScript and can be used as a JavaScript library or built into your project from TypeScript sources. GoJS normally runs completely in the browser, rendering to an HTML Canvas element or SVG without any server-side requirements. It can also run in headless or server environments, like Node. GoJS does not depend on any libraries or frameworks, and can work alongside Angular, React, within Electron, or with no framework at all.

Build custom modeling environments and domain-specific visual languages using the powerful features of GoJS. Provide both a system editor and a read-only status monitor using shared code and templates. Simultaneously show alternative visualizations of the same data in different diagrams. Implement drill-down using expansion of subtrees and subgraphs or a detailed view in another diagram.

Our thorough documentation introduces the basic concepts and demonstrates typical features that most apps want to offer. Nodes and links can be arbitrarily detailed according to the needs of the application. There are many properties that permit simple permissions and customizations, and some methods may be overridden for more complicated customizations.

Use GoJS with your favorite frameworks

We publish a react component, gojs-react to simplify React integration, and host a React sample using GoJS called gojs-react-basic. See the GoJS with React introduction page for more information.

We publish an Angular component, gojs-angular to simplify Angular integration, and host a Angular sample using GoJS called gojs-angular-basic. See the GoJS with Angular introduction page for more information.

We have a sample on using Vue.js with GoJS.


Run over 200 sample apps that demonstrate flowcharts, org charts, mind maps, UML diagrams, BPMN diagrams, graph editors, data visualization, custom tools and layouts, and much more.

Run Interactive Samples


Get started with a step-by-step description of how to build a JavaScript diagram in HTML using GoJS and some model data.

Learn with GoJS Tutorials Watch Videos


Get a copy of the library and all of the samples, extensions, and documentation. Search the JavaScript code and modify the samples to start your app.

Download Clone us from GitHub Install via npm

Technical Introduction

Read our introduction for a overview of GoJS concepts and features, including hundreds of live interactive examples embedded right in each page.

Read the Introduction Pages

Unlimited Evaluation

Evaluate the full library without any limitations. Register with us and get free support for a month to help build your app.

Register for Support Contact Us

API Documentation

Read our comprehensive documentation for an in-depth reference of the properties and methods of all of the JavaScript classes.

View the API

When upgrading to a newer version, please read the Change Log.