Slides in .mdx, components in .axo, output that is just HTML.
The tools that make slides beautiful make them fragile: a runtime to boot, a CDN to reach, a framework to keep upgrading.
Hydration, client islands, a bundle to ship. It renders — until the wifi drops, or the CDN moves, or the framework majors.
HTML, CSS and vendored assets. No client framework, no hydration, no CDN
link. client:* is a compile error, not a warning.
Write slides as .mdx. Write components as .axo. Everything is decided at
compile time, and what lands in dist/ is a static site.
dist/, and nothing pointing outside it.Drop Tier.axo in components/ and you have <Tier>. No registration, no
import, no list to update.
---
const { name, price } = Axo.props;
---
<div class:list={['tier', price && 'paid']}>
<span class="n">{name}</span>
<h4>{price}</h4>
<p><slot /></p>
</div>
npx @ambystech/axo new my-deck
www.ambystech.com
Xolotl Byteworks S.A de C.V