Built on Hono · Plugin-first TypeScript backend framework
Enterprise architecture for every JavaScript runtime.
Hono's performance and runtime portability, with the enterprise capabilities you need — across Node.js, Deno, Bun, and Cloudflare Workers.
npm create @setu-ts my-app npm install @setu-ts/kernel @setu-ts/runtime deno add npm:@setu-ts/kernel npm:@setu-ts/runtime Core principles
-
Plugin-first
Every capability is a plugin; the kernel ships with zero features.
-
Runtime independent
Node.js, Deno, Bun, and Cloudflare Workers — business logic never touches runtime APIs.
-
Optional DI & decorators
Dependency injection and decorators are plugins, not requirements. Everything has a programmatic API.
-
Type safe
Strict TypeScript throughout; no any in public APIs; tree-shakeable ES modules.
Capabilities
52 published packages — common, kernel, runtime, exceptions, 41 plugins, three starters,
the SDK, test utilities, the setu CLI and its create launcher. Add only what you use; heavy dependencies
are injected or lazily loaded, never installed by default.
Browse every package · Runnable examples
-
Core
Plugin kernel, middleware pipeline, Hono routing, runtime abstraction, RFC 9457 exceptions, test utilities.
-
Request path
Logging, configuration, validation, security headers/CSRF, JWT & API-key auth with RBAC, GraphQL over HTTP.
-
Data
Repositories over memory, Prisma, Drizzle, MongoDB, DynamoDB, Cosmos DB, Bigtable, D1; caching; storage; multi-tenancy.
-
Messaging & background
Domain events, CQRS, seven message brokers, queues & cron scheduling, CPU-bound worker pools.
-
Service-to-service
Service discovery (Consul, Kubernetes, DNS), gRPC/Connect co-serving, Cloudflare bindings, static files.
-
Real-time & rendering
SSE, WebSocket rooms, cross-replica backplane, React Router SSR, server-rendered views.
-
Operations
Health probes, Prometheus metrics, OpenTelemetry tracing, OpenAPI 3.1, audit trail, resilience patterns, secrets.
-
Delivery & ergonomics
Mail, notifications, feature flags, optional DI and decorators, the setu CLI, client SDK, starter bundles.
Quick example
The smallest possible application — just the kernel and a runtime:
1import { createApplication } from '@setu-ts/kernel';
2import { RuntimePlugin } from '@setu-ts/runtime';
3import { LoggerPlugin } from '@setu-ts/logger-plugin';
4
5const app = createApplication({
6 plugins: [RuntimePlugin(), LoggerPlugin({ level: 'info' })],
7});
8
9app.router.get('/', (ctx) => {
10 return ctx.response.json({ message: 'Hello, World!' });
11});
12
13await app.start({ port: 3000 }); No decorators. No DI. No modules. Add capabilities as you need them — see Getting started and the plugin catalog.