Documentation

Project structure

The files an Orb program is made of, and the ones the compiler writes.

An Orb program can be a single .lolo file. As it grows, a few more files join it, and the compiler writes others you never edit.

What you write

text
1 2 3 4 5 6 7 8 my-app/ ├── app.lolo the program: orbitals, entities, traits, pages ├── locales/ │ ├── en/my-app.json copy for (i18n/t "key") in each declared locale │ └── ar/my-app.json ├── blocks/ │ └── Invoices.lolo your own building blocks, imported as "@app/blocks/Invoices" └── public/ files copied as-is to the built site (logos, downloads)
  • .lolo is the language you write. It is a Lisp-flavoured notation: every operator call is a parenthesised list, (op args…).
  • locales/<locale>/<app>.json holds the text for each language a program declares with locales [en, ar, sl]. See localization.
  • blocks/ holds building blocks you import with uses X from "@app/blocks/<Name>".
  • public "./public" in the app header names a folder copied verbatim to the built site's root.

What the compiler writes

  • .orb is the JSON form of a program: .lolo lowers to it losslessly, and it is what the runtime and the validator read. orb emit orb app.lolo prints it.
  • orb resolve app.lolo --output app.orb writes the fully resolved program: every import flattened, every reference inlined. A program that uses uses lazy also gets a lazy/ folder with one .orb per lazily loaded behavior, and a program with locales gets one merged catalog per locale beside it.
  • orb compile writes a full application (TypeScript by default) to --output. Never edit it: change the program and compile again.

Imports

uses names where a behavior comes from:

text
1 2 3 uses Browse from "std/behaviors/std-browse" the public standard library uses Invoices from "@app/blocks/Invoices" your own blocks uses lazy Guide from "./guide" loaded only when one of its pages opens

Behavior packages are installed, not built in: orb list shows what is available, and orb add <package> adds one to a project.

Orb

A programming language of composable state machines.

© 2026 Almadar. Ljubljana, Slovenia.
Not reported here