The web framework with zero boilerplate

  • HTML-first: real HTML, hydrated in place
  • Drop in React components, ship zero React
  • let x = 0 is reactive, no hooks or setState
  • Modals, toasts and transitions in one line
  • Platform-first: native dialogs, not JS clones
Get Started
<script>
let count = 0
</script>

<button onclick="count++">
  Clicks: {count}
</button>
Result

Just Another Framework...

But with everything you need, and no pointless complexity and boilerplate!

HTML-First Output

Prerender every route to real HTML and hydrate in place. Content before JavaScript, SEO out of the box, zero-config.

Signals Reactivity

Write let x = 0 and it's reactive. No useState, no refs, no decorators.

HTML Components

Components are .html files. No JSX, no special syntax. Just HTML and JavaScript.

React Interop, Zero React

Drop .tsx components in: they compile to signals and direct DOM. 8 KB where React ships 59.

UI Built In

await ui.confirm('Sure?') is a complete accessible dialog. Modal, toasts, drawers: native top-layer, CSS-var themeable.

File-Based Routing

Drop files in pages/ and they become routes. Dynamic params with [id].html.

Batteries Included

Stores, query caching, scoped styles, directives and typed routes ship in the core. Strict TypeScript throughout.

LLM-Ready

Every scaffold ships a skills library and AGENTS.md, so your AI assistant writes correct JAF from the first prompt.

Terminal

Ready to build?

Get started in under a minute