# GoJS

A Web Framework for Rapidly Building Interactive Diagrams

View Samples Take the Tutorial

## January 2022: GoJS 2.2 has been released! See changelog here

## Build Diagrams for the Web in JavaScript and TypeScript

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

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

### Subgraphs

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

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.

## Explore

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

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