Chapter 01
Meet Block.
Block is a local-first orchestration language for composing native runtimes inside one readable program. It coordinates language boundaries without asking you to replace the ecosystems you already trust.
What Block changes
Modern projects frequently cross language boundaries. Python may own analysis, JavaScript may shape an application payload, SQLite may hold local state, and Rust may handle a performance-sensitive stage. The traditional answer is to split those responsibilities into separate programs and connect them with files, services or custom process glue.
Block keeps the boundary visible but removes much of that ceremony. A .blk file declares an ordered sequence of language blocks. The C# orchestrator parses the file, prepares compatible state, calls the native runtime for each stage and routes the result forward.
Your Python still runs through Python. Your JavaScript still runs through Node.js. Block provides the execution plan and transfer boundary around them.
The mental model
Think of a Block program as a small execution graph written from top to bottom.
One source of intent
The file shows what runs, in which language and in what order.
Explicit boundaries
Runtime transitions remain visible instead of disappearing inside opaque glue.
Progressive power
Start with scripting runtimes and expand when the project requires more.
A first look
This example prepares a list in Python and uses it immediately in JavaScript.
message = "Hello from Block"
<py>
values = [2, 4, 6, 8]
doubled = [value * 2 for value in values]
</py>
<js>
console.log(message);
console.log(doubled.join(", "));
</js>Execution is sequential. When the Python stage completes, compatible values such as doubled can be prepared for the next runtime context.
Choose an edition
The language model stays consistent across editions. The main difference is the available runtime surface.
LITE
Learn and prototype
STANDARD
Build everyday workflows
BLOCK+