Skip to content

orvaLearn the framework by building with it

Start with a small Fetch API server, then grow into validator, typed RPC, OpenAPI, and production middleware without switching mental models.

Start here

If this is your first time with orva, use this order:

  1. Quickstart: run a real service in a few minutes
  2. Context and Responses: learn request reads and response helpers
  3. Routing and Composition: split routes without losing type information
  4. Type Flow: understand how middleware, validator, RPC, and OpenAPI connect
  5. Recipes: build something close to production

If you are moving from another Node or Fetch framework, read Migrate from Express or Hono early.

What orva is good at

  • small request-handling model based on the Fetch API
  • explicit subpath exports for framework core, RPC, adapters, validator, middleware, and OpenAPI
  • contract reuse across runtime validation, handler context, RPC clients, and OpenAPI output
  • deployment across Node, Bun, Deno, serverless, and edge targets
01

Request

Every request enters through the Fetch API shape, and adapters only bridge host-specific request objects into that model.

02

Validator

JSON, form, query, param, header, cookie, and text inputs can all flow through one type-safe validation path.

03

Route

Context, middleware, and route composition stay readable, so business logic can stay concentrated inside handlers.

04

Contracts

Validation metadata can keep flowing into RPC and OpenAPI, reducing drift between runtime code, docs, and clients.

Your first useful app

ts
import { createOrva } from 'orvajs';
import { serveNode } from 'orvajs/adapters/node';
import { requestId, secureHeaders } from 'orvajs/middlewares';

const app = createOrva()
  .use(requestId(), secureHeaders())
  .get('/health', (c) => c.json({
    ok: true,
    requestId: c.get('requestId'),
  }));

serveNode(app, { port: 3000 });

Learn by task

GoalGo here
Run the first serviceQuickstart
Understand the request modelContext and Responses
Understand contract propagationType Flow
Build a REST APIREST API Recipe
Build a typed client workflowTyped RPC App Recipe
Assemble a production middleware stackMiddleware Cookbook
Port an existing service from another frameworkMigration Guide
Look up exports and modulesReference

Reference areas

AreaEntry
Core frameworkReference overview
ValidatorValidator
RPCRPC
OpenAPIOpenAPI
MiddlewareMiddleware catalog
AdaptersAdapters

Built with VitePress. Structured for production docs, multilingual delivery and long-term versioning.