Ontave Zero is in developer preview Explore the release
Noon, Rest from Work by Vincent van Gogh. Two field workers rest beside golden haystacks.
OPEN-SOURCE TYPESCRIPT FRAMEWORK

A data model forwhat comes next.

Ontave turns unexpected messages into useful records. Preserve the source, review the changes, and let your model grow without losing context.

01Source preserved
02Change reviewed
03Contract pinned
NOON, REST FROM WORK · VINCENT VAN GOGHA LITTLE ROOM FOR WHAT COMES NEXT
Your stack. Your decisions.
TypeScriptNode.jsPostgreSQLApache 2.0
Explore on GitHub ↗
YOUR SCHEMA DIDN’T SEE THIS COMING.

The data model your
information actually needs.

New information doesn’t always fit the model you started with. Ontave preserves the evidence, proposes what’s missing, and keeps you in control of what changes.

01 / PRESERVE

Keep the source in sight.

Every proposed value points back to its source. Keep the evidence alongside the interpretation.

Explore evidence
02 / REVIEW

Every change. Your call.

Inspect a proposal before it becomes accepted data. Model approval and fact acceptance stay separate.

Understand review
03 / EVOLVE

Room for the next concept.

Evaluate an additive model change before activating it. Keep existing application contracts pinned.

See model evolution
04 / READ

Read data. Skip the inference.

Query accepted records through a typed contract. Your database answers without another model call.

Explore structured reads
HOW ONTAVE WORKS

One message.
A new concept.

A familiar installation. An unexpected inspection. The source stays intact.

RameshSource 014

Before we install the panels,
Ramesh needs to inspect the roof.

Current modelv1
○ Person
□ Installation
?

Where does an inspection fit?

Scroll to follow the story ↓
Try this example yourself

Illustrative walkthrough

YOUR APPLICATION. YOUR INFRASTRUCTURE.

Keep the context.
Build what comes next.

Explore the API ↗
↳

Keep the source in sight.

Preserve the original message. Keep every proposed value connected to the evidence behind it.

Explore evidence ↗
Receipt ≠ accepted fact
preserve.ts
const receipt = await ontave.ingest(context, {
  source: "messages",
  idempotencyKey: "message-014",
  payload: {
    kind: "text",
    text: "Ramesh needs to inspect the roof.",
  },
});

// The source is durable. Interpretation comes next.
const job = await ontave.jobs.get(
  context, receipt.job_id,
);
YOUR APPLICATION→ontave→YOUR POSTGRESQL + MODELSee the architecture ↗

Fewer repeat calls.
More context kept.

How we measured it ↗
80%

Fewer extraction calls
on repeated deliveries.

100 sources. Five deliveries each. One extraction per source.

Compared with extracting every delivery.
Extraction calls across 500 deliveriesExtracting every delivery would require 500 calls. Ontave's idempotent fixture run used 100 calls, avoiding 400 calls.0250500 callsExtract every delivery · counterfactual500Ontave · measured fixture extractions100400 calls avoided
500 deliveries · deterministic fixture adapter · no live model
Local alpha.2 measurements. Human time savings and provider cost savings are unmeasured.View the data ↗
Inspect the numbers and environment

Apple M4 Pro · 24 GB · Node.js 24.22.0 · localhost PostgreSQL 18.4

Recorded synthetic workload results
MeasurementResult
Deliveries / distinct sources / extraction calls500 / 100 / 100
Model calls for 1,000 structured queries0
Source-referenced / accepted field assertions100 / 100
Ordered-read p95: 100 / 1,000 / 10,000 records0.95 / 1.37 / 8.27 ms

Synthetic fictional data and automated review. No provider calls. Not a production SLO, model accuracy score, billing comparison or human productivity study. Read the full method →

START BUILDING

One message.
See where it takes you.

A local SDK session. One command.
Node.js 24. No Docker. No API key.

terminal
npx --yes --package=https://github.com/smileplis/ontave/releases/download/v0.1.0-alpha.2/ontave-0.1.0-alpha.2.tgz ontave playground --install
A FEW THINGS TO KNOW

A few things,
made clear.

Is Ontave a database?

Ontave is an open-source TypeScript framework that runs on your server and uses your PostgreSQL database. It connects preserved evidence, reviewed assertions, and an evolving logical model—so your application can use information it didn’t anticipate.

What does the browser playground run?

The browser playground lets you explore fictional reference runs from the real SDK and PostgreSQL. Run the one-command local playground for live SDK and database operations. Both use a labelled fixture adapter, with no model calls.

Can I use my own messages?

Yes, through the SDK on your own server, with your database and a model adapter you choose. The guided playground uses supplied fictional scenarios. The Node.js integration guide shows how to connect your own data.

Does a new concept build my app for me?

Ontave makes room for a new concept in a reviewed data model. You build the screens and workflows around it. The generic playground can render a new contract dynamically; custom application interfaces still require development.

What can I install today?

Start with the developer preview: a versioned GitHub archive you can install with npm. It isn’t on the npm registry yet. The release status explains what’s available and what is still being qualified.

Green Wheat Fields, Auvers by Vincent van Gogh.
A LITTLE ROOM FOR WHAT COMES NEXT

Let your information
find its place.

Start with one unexpected message. Keep the context.
Decide what comes next.

GREEN WHEAT FIELDS, AUVERS · VINCENT VAN GOGH
Search concepts, guides and API methods.