{
  "id": 18517010,
  "title": "Aontu says no clearly, but only when you ask it to",
  "url": "https://urgent.news/2026/11/06/aontu-says-no-clearly-but-only-when-you-ask-it-to",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-11-06T15:08:41.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/enos_omenda_35affdc043dba/aontu-says-no-clearly-but-only-when-you-ask-it-to-59jn"
  },
  "original_language": "en",
  "account": "The author, a Nairobi-based full-stack developer, recently created two small tasks for Voxgig: an open-source SDK with Voxgig's SDK generator and a critical review of Aontu, the language the generator utilizes. This report covers both aspects.\n\nFirstly, the author built a TypeScript client for PokéAPI using the Voxgig SDK generator. The model behind this client consists of 102 .aontu files, totaling 11,622 lines. The complete project can be found on GitHub: github.com/Enos2/my-sdk-work.\n\nNext, the author decided not to use Aontu and instead took the Aontu 0.76.1 that came with the generator to test its breaking capabilities. Aontu is described as a language for system entities, their required types, and necessary relations. It combines schema and data notation, with statements unifying to narrow each other; contradictory statements result in an error.\n\nThe review found several strengths in Aontu. The example on the front page runs as intended when published, and error messages are clear. Two values for one key, such as \"server: { port: 8080 }\" and \"server: { port: 9090 }\", cannot be unified, resulting in a clear error message. This distinct error message indicates a problem, but unfortunately, there is no fix-and-rerun loop.\n\nThe review also brought attention to Aontu's offline help options. The 'aontu help language' command prints a grammar card, while 'aontu explain closed' explains an error code without needing a browser. Additionally, struct types are open by default, and wrapping the schema in 'close()' fixes a specific issue. Aontu is consistent with most people's knowledge of JSON Schema, which is also open by default.\n\nHowever, the review also highlights some drawbacks of Aontu. The default behavior of accepting misspelled or invented keys leaves the guardrail off for users who haven't read about 'close()'. JSON Schema, being open by default, shares this characteristic. The site pitches Aontu as a set of guardrails for coding agents, which could be a potential issue for those unfamiliar with the language.\n\nIn conclusion, the author recommends using Aontu for a hand-written model that a team wants checked in CI, with 'close()' applied to every schema. However, they advise against using Aontu for data generated by a model, as it may lead to unexpected results.",
  "summary": "I'm a full-stack developer in Nairobi, and I recently took on two small tasks for Voxgig : build an open-source SDK with their SDK generator, then write a critical review of Aontu, the language the generator is built on. This post covers both. First, what I built. Then what I found when I tried to break Aontu. What I built I used the Voxgig SDK generator to produce a TypeScript client for PokéAPI…",
  "key_points": [],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}