Why Navios?
A modern approach to building type-safe APIs with TypeScript
Define Once, Use Everywhere
Create type-safe API definitions that work seamlessly on both client and server
// shared/api.ts
import { builder } from '@navios/builder'
import { z } from 'zod'
export const API = builder()
export const getUser = API.declareEndpoint({
method: 'GET',
url: '/users/$userId',
responseSchema: z.object({
id: z.string(),
name: z.string(),
email: z.string(),
}),
})
How Navios Compares
See how Navios stacks up against other popular frameworks
| Feature | Navios | NestJS | Express |
|---|---|---|---|
| TypeScript Native | ✅ | ✅ | ❌ |
| Shared Client/Server Types | ✅ | ❌ | ❌ |
| ES Decorators (TC39) | ✅ | Legacy | ❌ |
| Bun Support | ✅ | Limited | ✅ |
| Built-in Validation | Zod | class-validator | ❌ |
| Bundle Size | Small | Large | Minimal |
| DI Flexibility | Hierarchical | Module-bound | ❌ |
Ecosystem
Adapters, plugins, and integrations to build your application