Litro is a greenfield fullstack web framework built on three pillars:
Most frameworks lock you into a proprietary component model and a tightly coupled server layer. Litro is different:
Litro's adapter system lets you pick the web component framework that fits your project:
| Adapter | DOM Model | SSR | Best For |
|---|---|---|---|
| Lit (default) | Shadow DOM | DSD streaming | General-purpose apps, largest ecosystem |
| FAST Element | Shadow DOM | DSD streaming | Fluent UI integration, observable reactivity |
| Elena | Light DOM | Direct rendering | Content sites, global CSS, smallest payloads |
The adapter is selected at project creation via --adapter lit|fast|elena. Everything else — routing, data fetching, content, deployment — stays the same. See the Adapter overview for details.
User Request
│
▼
Nitro Server
├── /api/** → server/api/ route files (plain H3 handlers)
└── /** → Page Handler
├── SSR mode: FrameworkAdapter.renderPage() → streams HTML
│ ├── Lit/FAST: @lit-labs/ssr or @microsoft/fast-ssr → DSD HTML
│ └── Elena: light DOM SSR → plain HTML
└── SSG: prerendered .html served statically
definePageData for server-side data fetchingLitroRouter) using the URLPattern APIssgPresetIf you're evaluating Litro from the perspective of a framework you already know:
Migration guides with step-by-step code walkthroughs: