Introduction
MiiaJS is a lightweight, decorator-driven HTTP framework for TypeScript.
MiiaJS is a lightweight HTTP framework for TypeScript, inspired by Angular/NestJS architectural ideas, Koa's onion-model middleware, and Hono's multi-runtime philosophy. Built from scratch on modern standards.
Why MiiaJS?
- TC39 Native Decorators - no
reflect-metadata, no experimental TypeScript flags - Web Standards - built on the
Request/ResponseAPI, no proprietary abstractions - Multi-Runtime - runs on Bun, Deno, Node.js, Cloudflare Workers, AWS Lambda
- Koa-style Middleware - clean onion model replaces interceptors, pipes, and filters
- Flat DI - per-app container with
inject()function, no global singletons - ESM-only - ES2025 target,
nodenextmodule resolution
Packages
| Package | Description |
|---|---|
@miiajs/core | DI, decorators, router, middleware, exceptions |
@miiajs/config | ConfigModule, ConfigService, validated env |
@miiajs/serve-static | Static file serving with Range, ETag, charset, SPA fallback |
@miiajs/cli | Dev server, build, start, type checking, project scaffolding |
@miiajs/node-server | Node.js HTTP server adapter |
@miiajs/uws-server | uWebSockets.js HTTP server adapter |
@miiajs/auth | Strategy primitives, AuthGuard, token extractors |
@miiajs/jwt | Injectable JWT sign/verify service (jose wrapper) |
@miiajs/drizzle | Drizzle ORM integration (Postgres/MySQL/SQLite) |
@miiajs/papr | MongoDB integration via Papr |
@miiajs/mongoose | MongoDB integration via Mongoose |
@miiajs/swagger | OpenAPI 3.1 spec generation, Swagger UI |
@miiajs/messaging | Decorator-driven event bus with retry, DLQ, pluggable transports |
@miiajs/messaging-redis | Redis Streams transport for @miiajs/messaging |
What's next
See the roadmap for what's coming - hardening current packages, file upload, rate limiting, WebSocket support, OpenTelemetry, more transports, and beyond.