# GoJS

## Interactive JavaScript Diagrams for the Web

See samples »

### NEW! GoJS version 2.0: read about the new features and changes here

GoJS is a JavaScript and TypeScript library for building interactive diagrams and graphs. GoJS allows you to build all kinds of diagrams and graphs for your users, from simple flowcharts and org charts to highly-specific industrial diagrams, SCADA and BPMN diagrams, medical diagrams like genograms, and more. GoJS makes constructing JavaScript diagrams of complex nodes, links, and groups easy with customizable templates and layouts.

GoJS offers many 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, and an extensible tool system for custom operations.

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.

### Flowcharts

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

### State Charts

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

### Sankey Diagrams

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

### Genogram Diagrams

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

### Org Charts

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

### Dynamic Ports

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

### 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.

### 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 HTML5 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.

## Explore

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

## Learn

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

## Download

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.