---
title: "Examples"
description: "Whole applications generated from one aontu model and held to an external validation: the reference implementation's own tests, over HTTP."
source: "https://aontu.dev/examples/"
---

# Examples

These examples generate an application's routes, schemas, controllers, pages, seed data, and diagrams from an aontu model. Each application is checked against a reference implementation's tests over HTTP.

The validation script takes a base URL and calls the API. It tests the generated application's responses using the same expectations as the reference implementation.

Every page here is the example's own record, rendered from [`test/system/`](https://github.com/aontu-lang/aontu/tree/main/test/system/) in the engine repository: the model, the generators, what is hand-written, and how development goes on once the scaffold exists.

-   [rb-solar: a Rails application, generated](https://aontu.dev/examples/rb-solar)

    Ruby on Rails 8, SQLite, Hotwire: the Solar System API (Planet, Moon) and a human UI over the same data

    Held to [voxgig-sdk/voxgig-solardemo-sdk](https://github.com/voxgig-sdk/voxgig-solardemo-sdk), which supplies the OpenAPI description, the validation script and the Ruby SDK

    nine checks, including the reference's own twenty tests

## What "generated" means here

The generated application is **committed**, and a byte gate holds it to the model on every run: a generator answers a component tree, a generator runtime writes it, and the result is compared with what is committed. A change to the model or a generator is therefore a reviewable diff to the application, and a hand edit to a generated file is drift the check reports. Nothing is regenerated silently.

What is hand-written is only what the model does not decide (the framework's own boilerplate) and it carries no generated banner.

## Running them yourself

Each example is part of the engine repository, not a separate download. Its `check.sh` runs from any directory, honours `$AONTU` so either implementation drives it, and skips the legs that need a toolchain it cannot find rather than failing.

```sh
$ ./test/system/rb-solar/check.sh    # render, boot, validate
$ AONTU="aontu" ./test/system/rb-solar/check.sh   # the same check, the Go port
```

An example that stops passing is a defect in the renderer, the model or the generator: never a test to relax.
