ARO is where features become code.
Built for humans. Perfected for AI.
Write plugins in any language. Compile to a standalone binary.
Data flows through ARO as lazy streams. Process gigabytes with minimal memory.
In ARO, data doesn't sit in memory waiting to be processed. It flows.
When you write Filter the <records> where status = "active",
ARO doesn't load all records first. It creates a lazy pipeline that
processes data as it arrives.
Chain operations like Filter, Transform, and Aggregate
without intermediate allocations. ARO fuses them into a single pass.
Every statement follows the natural pattern of how we describe work.
Write code the way you write user stories. Each feature set maps directly to a business capability.
Extract the <user> from the <request>.
The first language designed for AI collaboration. Natural language syntax that LLMs understand.
Validate the <data> against <schema>.
Your OpenAPI contract is your routing table. Define your API, ARO handles the rest.
Extract the <id> from the <pathParameters: id>.
When you ask AI to write code, you describe what you want in natural language. Then the AI translates that into Python, JavaScript, or Rust.
That translation step? It's where bugs are born.
ARO eliminates the gap. The language is the specification. When you write
Store the <user> into the <database>, there's no ambiguity.
"The best code reads like a conversation between business and computer."
The same destination. Without the detour.
Real examples that show how ARO makes complex tasks simple.
(* Fetch weather data from an external API *) (Application-Start: Weather Client) { Log "Fetching weather..." to the <console>. Create the <api-url> with "https://api.open-meteo.com/v1/forecast?latitude=52.52&longitude=13.41¤t_weather=true". Request the <weather> from the <api-url>. Log <weather> to the <console>. Return an <OK: status> for the <startup>. }
The Request action fetches from external APIs.
Use from for GET, to for POST, PUT, or DELETE.
JSON responses are parsed automatically.
The IDE that stops lying about your code.
Solaro draws every feature set as a container, every statement as a node, every value passed between them as an edge. Hit Run and that same canvas lights up as the runtime fires each statement, with the value it bound printed underneath.
Not a re-execution, not a guess — the runtime's own bindings, streamed to the editor while your program runs. When something goes wrong you see where before you see what.
Join the developers writing the future
one feature at a time.