Zero JavaScript, by default
Pages ship no client-side JavaScript unless a component is explicitly marked as an island.
Islands architecture · Preact-native SSR
Avalon is a full-stack framework for building fast websites. Author pages in JSX, add islands from any supported framework, and deploy to any JavaScript runtime.
01 · Architecture
Pages render to HTML on the server. Interactive components opt into hydration individually through the island prop, and Avalon loads their JavaScript on your chosen condition. The rest of the page stays static.
02 · Performance
Avalon's architecture is designed around the metrics that matter.
03 · Interoperability
Every island compiles through its own framework's renderer and ships as an independent client chunk. A page using three frameworks ships three small runtimes — not the union.
04 · Partial hydration
Built-in strategies for common patterns. Custom directives for everything else.
Hold the island's JavaScript until the component scrolls into view, then hydrate.
Best forCharts, carousels, anything below the fold.
05 · Deploy
Avalon builds on Nitro, so the same codebase ships to any JavaScript runtime. One build target. Every environment.
06 · Built on
Pages and layouts render server-side with Preact. JSX authoring, 3KB runtime, hooks API. The same component model you already know.
Instant HMR in development. Production builds with per-island code-splitting. Vite 8 environment API for SSR.
Universal server engine. API routes, middleware, edge deployment. One codebase, any JavaScript runtime.
07 · Features
Beyond islands and hydration — the full toolkit.
Pages ship no client-side JavaScript unless a component is explicitly marked as an island.
Each island hydrates independently. Static regions never load a runtime.
Use any combination in the same project.
│The filesystem is the router. No config.
HTML arrives in chunks. First byte is near-instant.
{ "id": 42, "name": "Ada" }Server endpoints alongside your pages. Full request access, typed params, any backend resource.
Modern formats, no layout shift, built-in.
Auth, redirects, logging — scoped or global.
Deploy to any Nitro target. One build, every runtime.
Zero config. One command: bun create-avalon.