1
Install the Bijection CLI
2
Create a new Bun project
Create a new directory for your Bun project.
3
Add a Bijection backend
Run
bijection init in the project. It adds a bijection/ folder, where
you write your backend functions, with a sample schema, query and mutation,
and bijection.json. It also writes the Bijection SDK to
node_modules/bijection, where Bun finds it; you don’t add it with
bun add.4
Set up a Bijection dev deployment
Log this machine in to Bijection, once per machine, then run
bijection dev. The first run creates your dev deployment and saves its URL
in .env.local as BIJECTION_URL, which Bun loads by itself. The dev
command then keeps running to push your functions in bijection/ to your
dev deployment on every change.Bijection’s hosted service is not yet open for public sign-up, and the CLI
has no default management service. Before running
bijection login, set
BIJECTION_MANAGEMENT_URL to the management service URL you were given, in
your shell’s startup file so that every later bijection command sees it too:5
Create sample data for your database
In a new terminal window, create a
sampleData.jsonl
file with some sample data.6
Add the sample data to your database
Now that your project is ready, add a
tasks table
with the sample data into your Bijection database with
the import command.7
Declare the tasks table
bijection init created bijection/schema.ts, which declares the tables of
your database, starting with a sample messages table. Add a tasks table
beside it. The schema gives your functions TypeScript types, and Bijection
enforces it at runtime.bijection/schema.ts
8
Expose a database query
Add a new file
tasks.ts in the bijection/ folder
with a query function that loads the data.Exporting a query function from this file
declares an API function named after the file
and the export name, api.tasks.get.9
Connect the script to your backend
In a new file
index.ts, create a BijectionClient using
the URL of your development environment.10
Run the script
Run the script from the same directory and see the list of tasks logged to the terminal.