Taking control of the element API

June 25, 2026

Over the past couple of weeks I've been looking into WO's .api format, thinking on how it might be extended to make it more useful and informative. The format can be made far more valuable, for both developers and tooling, by adding both human-readable documentation and a more detailed structural contract — what types bindings accept, how attributes outside the declared API are handled (if at all) and so on. A richer more informative API makes the elements both easier to use, and increases the ability of tools to validate and verify templates statically, catching whole classes of binding errors that can currently go unnoticed.

Of course, like everything I do in WO, this all eventually leads to ng-objects, since this work doubles as the creation of ng's eventual canonical element API.

The format's design is happening in in a designated github repository; github.com/undur/apiext-format. The format's current development version is based on and backwards-compatible with WO's original .api format. But if that compatibility turns out to hinder the design, we might change the design direction.

I encourage anyone with thoughts or ideas to pipe up and let me know, either directly or by filing an issue on the github repo.

Latest commits

🤸‍♀️ wonder-slim AjaxModalContainer: clicking outside the dialog closes it Aug 9
🌶 cayenne ClassGenerationAction cleanup Aug 8
🌶 cayenne ClassGenerationAction cleanup Aug 8
🌶 cayenne ClassGenerationAction cleanup - maximally immutable state Aug 8
🌶 cayenne ClassGenerationAction cleanup Aug 8
🔌 wo-adaptor-jetty Update jetty v12.1.10 -> v12.1.12 Aug 8
🤖 modulo Update jetty v12.1.10 -> v12.1.12 Aug 8
🤸‍♀️ wonder-slim Update json v20240303 -> v20260719 Aug 8
🦡 vermilingua Update junit v6.1.0 -> v6.1.3 Aug 8
⚙️️ wonder-slim-deployment Update junit v6.1.0 -> v6.1.3 Aug 8

Latest releases

🤸‍♀️ wonder-slim 8.0.3 Jun 26
🌿 parsley 1.6.0 Jun 26
🌿 parsley 1.5.0 Jun 18
🤸‍♀️ wonder-slim 8.0.2 Jun 18
🦡 vermilingua 1.1.5 Jun 15
🤸‍♀️ wonder-slim 8.0.1 Jun 1
🌿 parsley 1.4.2 Jun 1
🦡 vermilingua 1.1.4 Apr 24
🚀 ng-objects 0.1.1 Apr 22
🦡 vermilingua 1.1.3 Apr 15