Skip to content

Developers

Build once. Every workspace can install it.

An app is metadata and, when it needs one, code. The CLI scaffolds, tests, packs and publishes it; the kernel does the rest.

The command line

Everything from a new app to a published version.

zanfira init my-app
Scaffold an app: manifest and metadata
zanfira dev --workspace acme
Run a local kernel, Studio and the workspace
zanfira generate types
Typed clients from your metadata
zanfira lint
Check metadata before it is promoted
zanfira test
Run the app's scenarios and permission cases
zanfira pack && zanfira publish
Build a signed package and publish it

The TypeScript SDK

Typed records, a query builder, realtime and sign-in. It refreshes tokens once under concurrency and retries only what is safe to retry.

import { ZanfiraClient, Query } from "@zanfira/client";

const client = new ZanfiraClient({ baseUrl, workspace: "acme" });
await client.signIn("acme", email, password);

// Unpaid invoices over 1,000, newest first,
// as the signed-in person is allowed to see them.
const page = await client.query(
  new Query("acme.billing.sales_invoice")
    .where({
      status: { eq: "Unpaid" },
      grand_total: { gte: "1000" },
    })
    .orderBy("created_at", "desc"),
);

Every way in, generated from the same metadata

REST and OQL

Records, queries, batch, import and export — with exact decimals and cursor paging.

GraphQL

A schema generated per person: a field you cannot read is not in your schema at all.

Realtime

Subscribe to a query and receive diffs, including when a record leaves your view.

MCP

Every Object and action as a tool an agent can call, within the caller's permissions.

WebAssembly functions

Extensions in any language that targets the Component Model, with capabilities and resource limits.

Packages

An app is metadata, functions and UI in one signed archive that the registry reviews before anyone installs it.

Documentation

The documentation ships with the source, in the docs directory. The revenue share for publishers is a proposal: 85% up to the first million dollars a year, then 80%, and 90% for templates and components.

  • Getting started docs/getting-started.md
  • Concepts: metadata, permissions, workflows, CEL, OQL docs/concepts/
  • Building an app docs/apps/building-an-app.md
  • Publishing to the marketplace docs/apps/publishing.md
  • The API reference docs/api/README.md
  • The TypeScript SDK docs/sdk/typescript.md