Block Orchestrated Architecture

The first AI-native software framework. Build modular, polyglot, self-testing applications with blocks that any language — and any AI — can understand.

Get Started

🧠

AI-Native

Blocks are < 200 lines with explicit contracts, INTENT metadata, and FIXTURE tests. AI understands and modifies them without losing context.

🌐

Polyglot

Write blocks in Node, Python, Go, Rust, Java, or any language. The Universal Runtime Protocol connects them all via STDIN/STDOUT JSON.

🖥

Full-Stack

Backend blocks for business logic. UI blocks for the browser. Workflows orchestrate both — same patterns, same tools, same CLI.

Self-Testing

Every block declares FIXTURE tests inline. Run boa validate to test everything in one command. No separate test files needed.


How It Works

BOA decomposes software into small, isolated blocks. Each block has one responsibility, explicit inputs/outputs, and built-in tests. Workflows chain blocks together declaratively.

Define a Block

BLOCK CalculateOrderValue 1.0.0
LAYER domain
RUNTIME node
ENTRY index.js
DESC Computes subtotal from order items.
INTENT Calculate the total value of a cart.

RULE subtotal = sum of price * quantity.
RULE Round to 2 decimal places.

IN items:array!
OUT subtotal:number

FIXTURE {"items":[{"price":50,"quantity":2}]}
  -> {"subtotal":100}

Chain into Workflows

WORKFLOW OrderProcessing 1.0.0
DESC Calculate value and tax for an order.

STEP calcValue = CalculateOrderValue@1.0.0
  MAP items <- _initial.items

STEP calcTax = ComputeTax@1.0.0
  MAP subtotal <- calcValue.subtotal

STEP format = FormatString@1.0.0
  MAP template <- _initial.template
  MAP total <- calcTax.total

Run with a single command

# Test everything
$ boa validate

  Blocks: 5 registered
  Fixtures: 12 passed, 0 failed
  Status: OK All valid

# Or run a specific workflow
$ boa run workflows/order/workflow.boa --input-file order.json

Works in the Browser Too

The UI Framework brings the same block architecture to the client. Pure UI blocks, capability blocks for side effects, and a framework-agnostic SDK that works with React, Vue, Angular, or vanilla JS.

import { createBoaUI } from "@boa-framework/ui";

const boa = createBoaUI();

// Register blocks and workflows, then run:
const result = await boa.run("CheckoutUIWorkflow", { cartId: 42 });

// Works with any framework — React, Vue, Angular, jQuery, vanilla JS

Why BOA?

Small & Focused Each block is under 200 lines with a single responsibility. AI and humans can understand the full context at a glance.
Isolation Modifying one block cannot break another. Explicit I/O contracts mean no hidden dependencies or shared mutable state.
Version Pinned Workflows reference exact block versions (e.g., Add@1.0.0). Upgrades are intentional, never accidental.
Low Blast Radius Run boa impact BlockName@1.0.0 to see exactly what a change affects before making it.
Get Started    Learn the Architecture