Skip to content

Introduction

Rouage is a minimal server-side rendering (SSR) solution for SolidJS.

Designed to be fast, flexible, and unopinionated. It provides the essentials: server rendering and client hydration, powered by a Vite plugin — no full-stack framework required.

⚙️ “Rouage” means “cog” in French

A small, precise part that powers a larger system.

Quick Start

The recommended way to create a new Rouage project:

sh
npm create rouage@latest
sh
yarn create rouage
sh
pnpm create rouage@latest
sh
bun create rouage@latest
sh
deno init --npm rouage@latest

Server Focused

Rouage is purpose-built for SSR, integrating seamlessly with custom servers and runtimes enabling complete control over the server environment and ecosystem.

SSR is hard to set up right: streaming, async rendering, asset manifests, styles, preloads, caching, HMR. Rouage handles these complexities in a straightforward and maintainable way.

Rendering ModeIdeal StackBest For
Static Site GenerationSolidJS + AstroPre-rendered static pages
Client-Side RenderingSolidJS + ViteRich client-side interactions
Server-Side RenderingSolidJS + RouageDynamic pages, custom backends
Edge / Cloud RenderingSolidJS + SolidStartServerless and edge deployments

Acknowledgements

Rouage is inspired by several innovative projects in the JavaScript ecosystem:

  • SolidStart – SolidJS's official meta-framework, full-stack capabilities.
  • SolidHop – A minimal and unopinionated Vike + Solid + Hono starter.
  • Vike – A framework-agnostic SSR solution, formerly known as vite-plugin-ssr.

Released under the MIT License.