Orchestrate your data.

GET STARTED

More than Just Another ORM

Orbit can work in the browser and on the server, offline and online, to manage whatever sources of data your app needs.

Orbit's more than just another ORM, it's a flexible and composable data framework.

// Query example: filtering, sorting, & paginating

source.query(q => q.findRecords('planet')
                  .filter({ attribute: 'classification', value: 'terrestrial' })
                  .sort('name')
                  .page({ offset: 0, limit: 10 }));
Disparate data

Coordinate Multi-Source Data Flows

Your application may need to interact with data from a variety of sources: a REST server, a WebSocket stream, an IndexedDB backup, an in-memory source, etc.

Orbit can coordinate data flows across any number of sources through a standard set of interfaces using normalized data structures.

learn more
Deterministic tracking

Maintain Data Correctness

Data correctness is vital to user trust, so you need a deterministic approach to manage it.

Orbit uses a Git-like approach to track changes across data sources. Changes are expressed as "transforms", which are similar to Git commits. Logs provide a per-source history. Like Git repos, sources can be diffed, forked, merged, and reset.

learn more
Connect sources

Pessimistic and Optimistic Strategies

Not all data should be treated uniformly. Some data is transient, while other data can persist for the life of your app. Some changes should be made pessimistically and be confirmed by a remote server. Other changes can be made optimistically, cached locally, and pushed eventually.

Orbit provides coordination strategies which can be customized to the needs of your application.

learn more
Offline

Offline Data

In an increasingly mobile world, it's ideal to keep applications available even when the Internet is not.

Orbit provides the tools needed to build robust offline experiences. Backup your application's state, including data caches, logs, and queues, to browser storage. Query and change local data when offline, while queueing changes for synchronization when online again.

learn more
Isomorphic

Orbit is Isomorphic

Orbit can be run in modern browsers as well as in the Node.js runtime.

Orbit is written in TypeScript. Its libraries are distributed on npm through the @orbit organization in several module formats and ES language levels.

learn more

PROUDLY SPONSORED BY

[Your Name Here]
Sponsor Development