Everything a full-stack app needs, none of it required upfront.
Start with the runtime and a route registry. Pull in themed components, a server, and production tooling as the app actually grows into them.
Four packages you'll actually reach for, in order
Each one builds on the last — adding a server later doesn't mean rewriting the routes and components you already have.
- 01Build
Start with a component
Core runtime, CLI scaffolding, and Vite Plus.
@askrjs/askr · @askrjs/cli · @askrjs/vite - 02Compose
Shape the application
State, routes, data, headless components, themes, schemas, and an optional server.
@askrjs/ui · @askrjs/themes · @askrjs/schema · @askrjs/server - 03Deliver
Choose when HTML happens
Single Page Application, Server Side Rendering with hydration, Static Site Generation, or full-stack delivery.
SPA · SSR + hydration · SSG - 04Operate
Ship the production site
Static files or Node output, with clear security, localization, probe, and telemetry seams.
@askrjs/node · @askrjs/auth · @askrjs/i18n · @askrjs/otel
You don't have to decide the shape of the app up front
A static marketing site and a full-stack dashboard can share the same route registry and component code. What changes is which packages you add and which adapter renders the output — not how you write routes or components.
That means a project that starts as static HTML doesn't hit a wall the day it needs a server: you add @askrjs/server and a route policy, not a second framework.