A Web Framework for Rapidly Building Interactive Diagrams


Build Diagrams for the Web in JavaScript and TypeScript



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 users build diagrams.
Regrouping Demo

Dynamic Grouping

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

Built-in features and interactivity to develop your projects faster

Automatic Layouts

GoJS includes several built-in layouts, and many samples of custom layouts to be used or adapted.

Node and Link Templates

Quickly set the look for your diagram parts while keeping appearance separate from data.

Data Binding

GoJS models can automatically keep your data in sync with your display, and vice versa.

Undo & Redo

GoJS has built-in state management to record a history of Diagram and Model changes. Users can easily undo and redo, and cancelled tool operations can be rolled back. This state can be inspected for futher customization.

Keyboard Shortcuts

GoJS implements a number of common keyboard commands and gestures, which can be customized.


GoJS Groups provide subgraphs to apply different rules or layouts to their members.

Extensible Tools

GoJS input is routed through tools that can be customized and extended to give your users the interaction they need.

Customizable Events and Permissions

Execute custom logic or notifications when users do certain actions or key presses, or disable different interactions altogether.

Context Menus and Tooltips

GoJS has built-in Context Menu and tooltips, which can be extended in-canvas or with HTML.

Compatible with Modern Frameworks

react angular vue

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.


Start from 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.

View 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 Install via npm

Technical Introduction

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

Read the Introduction Pages

Free Evaluation

Evaluate the full library without any limitations. Register for 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

By Northwoods Software