Documentation
Docs
Introduction
Getting Started
Tutorial: build an app
Core Concepts
Routing
Server-Side Rendering
Mimir, state management
Pages & Layouts
API Routes
Styling & Theming
Building & Deploying
API Reference
Recipes
ekko:rune
rune is the full-stack application framework built into EkkoJS. It turns a folder of .tsx files
into a server-rendered, instantly-navigable web application, with typed routing, a built-in state layer
(Mimir), SSR caching, SEO, and a single-command production build, and no bundler config, no node_modules,
no separate API server to wire up.
You write React components. rune renders them on the server for the first paint, ships a tiny hydration
bundle, and from then on every navigation happens on the client with zero network round-trips. State lives
in atoms that survive navigation and page reloads. The same server.tsx that serves your pages also
serves your API routes. One runtime, one process, one mental model.
What you get
- File-based routing ,
pages/about.tsxbecomes/about,pages/blog/[slug].tsxbecomes/blog/:slug. - Server-side rendering with three strategies (eager, background, lazy) and a built-in HTML cache with
tag and path invalidation.
- Client-side navigation , after the first load the router swaps pages in place; no reloads, no flashes.
- Mimir , an atom-based state store that is reactive, server-hydratable, and optionally persisted to
IndexedDB so it survives an F5.
- Layouts , a root shell and nested per-segment layouts composed automatically.
- API routes ,
app.api("GET", "/api/...", handler)in the same app. - SEO ,
createSEO()emits<title>, Open Graph, Twitter, canonical, robots and sitemaps. - A real build ,
ekko build --clientproduces a content-hashed, code-split browser bundle and a
manifest the server reads to wire up <script> and modulepreload tags.
How to read these docs
If you are new, start with What is rune and the Philosophy, then follow the Tutorial to build an app end to end. The Core Concepts and per-area chapters (Routing, SSR, Mimir, API, Styling) go deep, and the API Reference is the exhaustive, signature-level companion.
This site is itself a rune application. Everything you read here is server-rendered on first load and then navigated entirely on the client, the very behaviour the docs describe.