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
      .output.apptsconfig.app.jsonapppageslayoutscomponentscomposablesglobalspluginsmiddlewarescssapp.vueerror.vuemodulesnode_modulespublic.env.gitignorerunable.config.tsserver.tspackage.jsontsconfig.jsontsconfig.node.json

runable.config.ts

Configure conventions, SSR, modules, and Vite from the project's central file.

This file is Runable's source of truth. Place it at the root and export the result of defineConfig().

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

export default defineConfig({
  ssr: true,
  head: {
    title: "My application",
  },
  css: ["./app/css/main.css"],
  modules: [],
});

Relative paths are resolved from the configuration directory. Main conventions use these defaults:

OptionValue
appDirapp
output.app
distdir.output
publicDirpublic
ssrtrue

The pages, layouts, components, composables, globals, plugins, and middlewares options replace their conventional sources when defined.

Use vite to add an allowed Vite plugin or option:

export default defineConfig({
  vite: {
    server: { port: 5173 },
  },
});

Use extendConfig to modify an application's or module's own resolved configuration. Every hook runs after the complete configuration graph has been resolved but before module setup hooks. It receives the current resolved configuration as the first argument and that configuration's resolved options as the second argument. The hook may mutate its configuration or return a replacement:

export default defineConfig({
  extendConfig(config, _options) {
    return {
      ...config,
      baseUrl: "/app",
    };
  },
});

For the main application configuration, the options argument is an empty object. A module receives its defaults merged with the consumer's overrides. Changes made by a module's extendConfig hook apply only to that module's resolved configuration, not to the main application configuration.

See Configuration for all options.

Report an issue Edit this page
.gitignore

Ignore dependencies, builds, generated files, and local secrets.

server.ts

Start your backend and mount the Runable adapter as the last middleware.

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