Runable v1.0.0-alpha.20
Why Runable? Docs Modules Work with AI Blog About Changelog
  • 01Why Runable?
  • 02Docs
  • 03Modules
  • 04Work with AI
  • 05Blog
  • 06About
  • 07Changelog
Vue without a fixed server runtime.
Getting Started Structure Integrations Guide MCP API
  • Getting Started Structure Integrations Guide MCP API
  • Why Runable
  • Installation
  • Quick Start
  • Runable vs Nuxt
  • Configuration
  • Concepts

Installation

Install Runable in an existing backend project and prepare a minimal Vue application with Express.

Add Runable to your backend, create the Vue directory, then connect HTTP requests to the rendering engine.

Play Online

If you just want to try Runable in your browser without setting up a local project, use this online sandbox:

stackblitz

Run it before you install it.

Open a ready-to-use Runable project with a code editor, terminal, and live preview directly in your browser.

Prerequisites

Use a Node.js version supported by runable:

ToolVersion
Node.js22.18.0 or newer, or 24.12.0 and later
Vue3.5 or newer

This page uses Express and TypeScript. The same principle applies to other backends.

Prefer an automated setup?

The steps below are manual, to show exactly what's involved. runable create automates most of them interactively.

Install dependencies

pnpm add runable vue vue-router express
pnpm add -D @runablejs/cli tsx typescript @types/node @types/express
npm install runable vue vue-router express
npm install --save-dev @runablejs/cli tsx typescript @types/node @types/express
yarn add runable vue vue-router express
yarn add --dev @runablejs/cli tsx typescript @types/node @types/express
bun add runable vue vue-router express
bun add --dev @runablejs/cli tsx typescript @types/node @types/express

Add scripts

Configure development, type preparation, and the production build:

{
  "type": "module",
  "scripts": {
    "dev": "tsx watch server.ts",
    "app:prepare": "runable prepare",
    "app:build": "runable build"
  }
}

runable prepare generates files required during development. runable build produces the application build. See CLI for the full command reference.

Create the configuration

Add runable.config.ts at the project root:

// runable.config.ts
import { defineConfig } from "runable";

export default defineConfig({
  ssr: true,
});

With this minimal configuration, Runable uses these conventions:

ItemDefault location
Vue sourcesapp/
Pagesapp/pages/
Static assetspublic/
Generated files.app/
Production build.output/

Create the first page

<!-- app/pages/index.vue -->
<template>
  <main>
    <h1>Hello Runable</h1>
    <p>This page is generated from app/pages/index.vue.</p>
  </main>
</template>

You do not need to declare the / route. Runable creates it from index.vue.

Connect Express to Runable

// server.ts
import Express from "express";
import { express } from "runable/adapters/express";

const server = Express();

server.get("/api/health", (_req, res) => {
  res.json({ status: "ok" });
});

// The adapter initializes Runable once and serves the frontend.
server.use(express());

server.listen(3000, () => {
  console.log("http://localhost:3000");
});

Place the Runable adapter after your API routes. /api/health remains handled by Express, while / is rendered by Vue.

The adapter calls createRunableApp() once. In development, it lets Vite respond to modules and assets before rendering the page.

Install only your backend

Supported frameworks are not runtime dependencies of runable. Install the one used by your application:

AdapterConsuming project dependency
express()express
fastify()fastify
hono()hono
koa()koa
RunableModule.register()@nestjs/common, @nestjs/core, and the Express platform
adonis()@adonisjs/core
bun()No additional npm dependency
deno()No additional npm dependency

Start the project

pnpm dev

Open http://localhost:3000. The page should display “Hello Runable”.

Alpha CLI

The interactive create-runable command exists, but its starters are still evolving. The manual installation above shows every file added to your backend.

Installation complete

Now build a small application with Quick Start.

Report an issue Edit this page
Why Runable

Get a Nuxt-like experience in Vue while keeping the backend and HTTP server of your choice.

Quick Start

Create a Runable application with two pages, a layout, an API route, and server-rendered data.

On this page

  • 1Play Online
  • 2Prerequisites
  • 3Install dependencies
  • 4Add scripts
  • 5Create the configuration
  • 6Create the first page
  • 7Connect Express to Runable
  • 8Install only your backend
  • 9Start the project
Runable

The Vue framework that brings productive conventions to any backend.

Product

  • Why Runable
  • Documentation
  • Installation
  • Integrations

Project

  • About
  • Blog
  • Changelog
  • Sponsor

Community

  • GitHub
  • Issues
  • Discussions
  • Bluesky

© 2026 Runable. Released under the MIT License.

Open source Built with Vue and Runable