Skip to main content
Bijection connects data from the systems your business uses, defines business objects over that data, and lets applications and agents make permitted changes through durable operations. Queries keep applications live as the underlying facts change. A Bijection app is written in TypeScript in a bijection/ directory. In it you declare:
  • Where facts come from. Integrations sync records from an ERP, a CRM, a PostgreSQL database or a mailbox into tables that only the source can write. Your own tables hold the facts your app owns.
  • How they relate. Link types associate records, with cardinality enforced on every write.
  • What the business objects are. Views define an object type, such as a customer, once. Queries read it like a table and stay live.
  • Who may see and change them. Access rules are attached to the data and enforced whichever function reads or writes.
  • Which changes are allowed. Operations are named business changes. Their local effects and their requests to external systems commit together, and each request is followed until the external system’s evidence settles it.
Underneath is a reactive database with TypeScript queries, transactional mutations and client libraries for web and native apps. Install the bijection command line on macOS or Linux, then create a project and start developing:
bijection create scaffolds a small reactive React/Vite counter. Use --template business for the full AuthKit business app; with --template bare it creates only a Bijection backend, which needs no Node.js install: the CLI manages its own toolchain. bijection dev pushes it to your dev deployment and serves the Bijection workspace at a local address. To build an app on it, follow a quickstart. See Install Bijection for PATH setup, supported platforms, upgrades and uninstalling.

Walkthrough

Build a reactive counter, share a preview and publish the app.

Understanding Bijection

How facts, objects, rules and operations fit together.

Tutorial: Build a chat app

Learn the reactive foundation: queries, mutations and live updates.

Get Started

With AI coding agents

Bijection works with coding agents. An agent runs the bijection CLI to inspect your deployment’s tables, functions and logs while it builds.

Claude Code

Build with Claude Code and the Bijection CLI.

Codex

Build with OpenAI Codex and the Bijection CLI.

Cursor

Build with Cursor and the Bijection CLI.

GitHub Copilot

Tips and best practices for using GitHub Copilot with Bijection.

Conductor

Tips and best practices for using Conductor with Bijection.

Manually

Install the CLI, then follow one of the quickstart guides. bijection create scaffolds a React (Vite) app with AuthKit, or a backend alone with --template bare; for other frameworks, follow the quickstart for your framework. Using your favorite frameworks:

React

Add Bijection to a React project

Next.js

Add Bijection to a Next.js project

Remix

Add Bijection to a Remix project

TanStack Start

Add Bijection to a TanStack Start project

React Native

Add Bijection to a React Native Expo project

Vue

Add Bijection to a Vue project

Nuxt

Add Bijection to a Nuxt project

Svelte

Add Bijection to a Svelte project

Node.js

Add Bijection to a Node.js project

Bun

Add Bijection to a Bun project

Script tag

Add Bijection to any website
Using your favorite languages:

JavaScript

JavaScript clients for Node.js and browser applications

Python

Generate typed business clients with the source SDK and Python runtime

Android Kotlin

Add Bijection to an Android Kotlin project

HTTP API

Call your functions from any language over HTTP

Learn the model

Integrations

Sync records from external systems into tables only the source can write.

Views and links

Define business objects and enforced relationships over your tables.

Access rules

Attach read, disclosure and write rules to your data.

Operations

Make business changes that commit locally and reach external systems durably.

Publications

Compute related tables and make them visible together.

Branches

Try changes against a fork of live data before applying them.