# See Libertas in Action

Three interactive pages show what an App declares and what clients draw from
it. Each runs in your browser on its own; nothing is installed and no account
is needed. Each one has an explanation page that shows the same content
without JavaScript.

<div>
<article>
<a href="assets/interactive/declaration-to-page.html"><picture><source srcset="assets/screenshots/in-action/declaration-to-page-dark.webp" data-loop="assets/screenshots/in-action/declaration-to-page-dark-loop.webp" media="(prefers-color-scheme: dark)"><img src="assets/screenshots/in-action/declaration-to-page-light.webp" data-loop="assets/screenshots/in-action/declaration-to-page-light-loop.webp" alt="The step-through: Rust App code on the left, Avro bytes in the middle, and the page a client draws on the right."></picture></a>
<h3>From Declaration to Page</h3>
<p>Everything is in source code and its comments: a GUI for people, tool calls for AI, and the same library for other programs.</p>
<p><a href="assets/interactive/declaration-to-page.html"><strong>Try it →</strong></a> · <a href="concepts/declaration-to-page.md">Explanation</a></p>
</article>
<article>
<a href="assets/interactive/data-is-everything.html"><picture><source srcset="assets/screenshots/in-action/data-is-everything-dark.webp" data-loop="assets/screenshots/in-action/data-is-everything-dark-loop.webp" media="(prefers-color-scheme: dark)"><img src="assets/screenshots/in-action/data-is-everything-light.webp" data-loop="assets/screenshots/in-action/data-is-everything-light-loop.webp" alt="One W-2 declaration beside the screen a client draws from it, at a width the page sweeps from phone to web."></picture></a>
<h3>Data is everything.</h3>
<p>Presentation takes care of itself. Adjust it with AI, on live data.</p>
<p><a href="assets/interactive/data-is-everything.html"><strong>Try it →</strong></a> · <a href="concepts/data-is-everything.md">Explanation</a></p>
</article>
<article>
<a href="assets/interactive/simple-data-rich-semantics.html"><picture><source srcset="assets/screenshots/in-action/simple-data-rich-semantics-dark.webp" data-loop="assets/screenshots/in-action/simple-data-rich-semantics-dark-loop.webp" media="(prefers-color-scheme: dark)"><img src="assets/screenshots/in-action/simple-data-rich-semantics-light.webp" data-loop="assets/screenshots/in-action/simple-data-rich-semantics-light-loop.webp" alt="Declarations beside the phone questions a client draws from them, from a plain Boolean to a Union whose answers bring their own questions."></picture></a>
<h3>Simple Data. Rich Semantics. Adaptive Interaction.</h3>
<p>A few declared words turn one Boolean into the right question.</p>
<p><a href="assets/interactive/simple-data-rich-semantics.html"><strong>Try it →</strong></a> · <a href="examples/default-and-nullable.md">Explanation</a></p>
</article>
</div>
