File-based routing, signal-driven UI, and a multi-runtime backend. What Framework for the frontend, CelsianJS for the backend, Vura to wire them together.
import { signal } from 'what-framework';
const count = signal(0);
export default function Home() {
return (
<main>
<h1>Hello, Vura</h1>
<button onClick={() => count.set(count() + 1)}>
Clicks: {count}
</button>
</main>
);
}
export const page = {
mode: 'hybrid',
title: 'My App',
};Each layer works independently. Together, they cover frontend, backend, and deployment without gaps.
Signal-based reactive UI. Components run once at mount, signals drive updates. Islands architecture for partial hydration. 12 KB runtime.
Documentation →TypeScript backend on Web Standard APIs. Runs on Node, Bun, Deno, Cloudflare Workers, Lambda, Vercel, Fly, and Railway.
Documentation →The full-stack framework that connects them. File-based page and API routing, build pipeline, and deployment adapters.
Source →Sensible defaults that get out of your way. Every feature earns its place.
Pages and API routes live in the filesystem. Dynamic segments, nested layouts, and catch-all routes work out of the box.
Static, server, hybrid, or client. Choose per page. Static pages ship zero JS. Hybrid pages hydrate only the interactive islands.
Interactive components hydrate independently inside a static shell. Control when each island loads: on page load, on idle, or on visible.
No virtual DOM. Components run once. Fine-grained signals update only the DOM nodes that changed. Fast by default.
CelsianJS uses Web Standard Request/Response. Write once, deploy to Node, Cloudflare Workers, AWS Lambda, or any adapter target.
What Framework includes MCP DevTools. AI agents can inspect every signal, effect, and component in a running app over WebSocket.
Create a project, write a page, add an API route, and start developing.
Scaffold a Vura project with pages, API routes, and dev tooling preconfigured.
$ npx create-then my-app
$ cd my-app
$ npm installEach file in pages/ becomes a route. Export a component and a page config to control rendering mode, title, and meta tags.
export default function About() {
return (
<main>
<h1>About</h1>
<p>This page ships zero JavaScript.</p>
</main>
);
}
export const page = {
mode: 'static',
title: 'About',
meta: { description: 'About us' },
};Files in api/ export handlers for each HTTP method. Uses standard Request / Response APIs.
export function GET() {
return Response.json({
message: 'Hello from Vura',
time: new Date().toISOString(),
});
}The dev server compiles your pages, watches for changes, and serves everything locally with hot reloading.
$ npx vura dev
Vura dev server running
> Local: http://localhost:3000
> Pages: 2 routes compiled
> API: 1 endpoint readyDeploy to managed infrastructure or bring your own. Adapter-based architecture means your code stays portable.
Push-to-deploy hosting built for Vura apps. Preview deployments on every branch, production on merge. Currently in private beta.
npx vura deploy
Build once, deploy anywhere. Swap the adapter to target the runtime you already use.