Get Started
Quickstart β your first solution (Hello World)
Build, publish, and install a tiny working solution on AirawatOS in about ten minutes β first the fast, AI-assisted way, then the same thing by hand so you can see every moving part.
This quickstart uses Studio, the platform's own in-browser build workspace β no toolchain to install, and you never touch the servers; the platform certifies, delivers, and runs your work for you. Prefer to build in your own editor? The same lifecycle runs from the command line β see the aos CLI quickstart. Studio and the CLI are two front doors onto the same governed pipeline; use whichever fits you.
Before you start
- Sign in as a developer. You need a developer login with its own sandbox tenant β a safe, walled-off workspace with test data, where nothing you do affects a real deployment. If you don't have one, ask your operator to provision a developer participant for you.
- Know the shape of the goal. A component is one building block (a driver, an engine, an app). A solution bundles components into something installable in one click. "Hello World" is the smallest possible version: one component, published and installed as a one-member solution.
That's the whole mental model. Now let's build it.
The fast path β with the AI copilot
Studio has a built-in AI assistant, the Solution Expert, that helps you go from a sentence to working, certified components.
- Open Studio and create a New Project (pick it from the project dropdown, top-left). A project is your build workspace β it holds the components you're working on before they're published.
- Open the Solution Expert (the π§ panel on the right) and describe what you want in plain words β for example:
"A simple app that greets the signed-in user and shows which tenant they're in."
The assistant proposes a small set of components for your goal and can scaffold them into your project β each with a valid meta.yaml and a runnable starting point.
- Generate the code. Open a scaffolded component and use β¨ Generate with AI (or keep chatting with the Solution Expert). It drafts the code from your description. Read what it wrote β you're always in control; the AI drafts, you decide.
- Test it (safety gate 1). Run the component in the sandbox: Test for a driver/engine, or Preview for an app. It must produce a passing run before it can be published β broken code stops here.
- Publish it (safety gate 2). Publish certifies the component β checks it conforms and signs it β and lists it in the Marketplace. A component that hasn't passed a test can't be published.
- Compose a solution. Once your component is published, Compose the project into a solution β a one-click bundle. (Yours has a single member for now; real solutions bundle several.)
- Install it. Open the Marketplace, find your solution, and Install it into your tenant. Installing fans out and sets everything up.
- See it live. Open your app from the desktop (or, for a driver, check that it wrote its data in the Data browser). That's a working solution you built, certified, and installed β end to end.
You just used the full lifecycle: describe β generate β test β publish β compose β install. Everything you built is signed, sandboxed, and traceable, without you wiring any of that up.
The same thing by hand
The AI path did a few things for you. Here's what actually happened underneath β do it yourself once and the platform stops feeling like magic.
1 Β· Add a component
In your project's explorer, right-click a layer β οΌ New and pick a kind (app for our greeter). Studio scaffolds it: a folder with a meta.yaml and a starting entrypoint.
2 Β· Fill in the description file (meta.yaml)
meta.yaml is your component's contract β its identity and everything it's allowed to touch. A minimal app:
component_id: ds:<your-developer-id>:app/hello-world # its unique, resolvable name
kind: app
version: 0.1.0
entrypoint: index.html # apps ship a web page; the bundle lives under dist/
reads: [] # this greeter needs no governed data
writes: [] # β¦and writes none
For an app this is just identity β a greeter touches no governed data. A driver or engine touches more (data it reads / writes, outside sites it may call, secrets it needs), but you don't hand-write those lists: you write the code against ctx, and aos check (or Studio) derives them into meta.yaml for you. See What your code can touch and Anatomy of a component.
3 Β· Write the code
For our app, edit dist/index.html β a plain page. It reads the platform-provided config (which tells it the signed-in user's tenant) and says hello:
<!doctype html><meta charset=utf-8>
<h1 id=greeting>Helloβ¦</h1>
<script>
fetch('config.json').then(r=>r.json()).then(c=>{
document.getElementById('greeting').textContent = 'Hello β you are in tenant ' + (c.tenant || 'unknown');
});
</script>
An app holds no authority of its own β it acts as the signed-in user and reaches data only through the platform, never a side channel. A driver or engine instead has a run.py: a driver marks its entrypoint with @driver.main (it runs to completion); an engine marks each action with @engine.verb. Both do all their I/O through the one ctx surface β backed by the broker, the single guarded door described in Zero-Trust Architecture.
4 Β· Test, publish, compose, install
The rest is the same as the fast path, just done by clicking rather than chatting:
- Test / Preview β run it in the sandbox (gate 1).
- Publish β certify + sign + list in the Marketplace (gate 2).
- Compose β bundle the project into a solution.
- Install β from the Marketplace, into your tenant.
Open it, and you've hand-built your first solution.
What you just learned
- A solution is a bundle of components; you build components in Studio and install them from the Marketplace.
- Every component declares what it may touch in
meta.yaml, and nothing else is reachable β trust rests on the certificate and the host, not your code. - Two gates protect every release: it must test green, then it's certified and signed before it can be published or run.
- The AI copilot is a shortcut through that same governed path β never a bypass of it.
Where to go next
- Quickstart β the
aosCLI β the same lifecycle from your own editor:aos new β check β test β deploy --sandbox. - Tutorial β build a real solution (Air Intelligence) β the next step up: a driver, an engine, a cited recommendation, and the Inbox, on a real running solution.
- What is a component? and Anatomy of a component β the building block, in detail.
- Working with governed data β how a driver or engine reads and writes the shared record book.
- Build, test, publish β the lifecycle and its two gates, spelled out.
- Deep Dives β the concepts underneath: zero-trust, the shared vocabulary, components, runtimes, interaction, and more.