Skip to content

Astro first

Frasto is designed from Astro’s rendering model outward. It is not a wrapper around a client-framework component library.

Use .astro for components whose structure can be rendered on the server. Props are typed in the frontmatter, markup remains semantic, and styles are delivered without a client application runtime.

---
interface Props {
label: string;
value: string | number;
}
const { label, value } = Astro.props;
---
<section aria-labelledby="stat-label">
<p id="stat-label">{label}</p>
<p>{value}</p>
</section>

React, Vue, and Svelte can coexist in an Astro application, but Frasto core must not require one. A component should not hydrate merely because its implementation was convenient in a client framework.

Prefer Astro props, slots, content collections, server rendering, and route composition where they match the problem. Product-specific data loading remains in the consuming application.

Interactive behavior may use a small browser script or Web Component. A framework-specific adapter belongs outside the core until real demand justifies it.