Skip to content

What is KickJS?

KickJS is a production-grade, decorator-driven Node.js framework built on Express 5 and TypeScript. It provides the developer experience of NestJS without the heavy dependencies.

Why KickJS?

KickJSNestJSExpress
DI containerBuilt-in (lightweight)Built-in (heavy)None
TypeScript decoratorsFullFullNone
DDD code generatorsFirst-classPartialNone
Zod validationNativeVia pipesNone
OpenAPI from decoratorsAutomaticAutomaticNone
Vite HMR (backend)NativeNoneNone
Bundle sizeMinimalHeavyMinimal

Design Principles

Lightweight — No RxJS, no class-transformer, no class-validator. Just TypeScript, Zod, and decorators.

Pluggable — Everything is an adapter or interface. Swap Zod for Yup, Drizzle for Prisma, Redis for in-memory. No vendor lock-in.

DDD-first — Code generators produce proper domain-driven structure, not flat CRUD files.

Vite-native — The only backend framework with built-in Vite hot reload that preserves connections.

Extensible CLIkick.config.ts lets teams define project-specific commands (db:migrate, proto:gen, seed).

Architecture

@forinda/kickjs (unified: core + http + config)
       ↓ (peer dependency)
┌──────┼──────────┬───────────┬──────────┐
auth  swagger  ws  devtools  ...
                                    (adapter packages)

@forinda/kickjs-cli (standalone)
@forinda/kickjs-vite (dev tooling)
  • @forinda/kickjs — Unified framework: DI container, 20+ decorators, Express 5, middleware, routing, logger, Zod env config
  • @forinda/kickjs-swagger — OpenAPI spec generation, Swagger UI, ReDoc
  • @forinda/kickjs-auth — JWT, API key, OAuth strategies, JWKS URI support
  • @forinda/kickjs-ws — WebSocket with @WsController, rooms, heartbeat
  • @forinda/kickjs-devtools — Debug dashboard at /_debug
  • @forinda/kickjs-ai — AI/LLM integration adapter
  • @forinda/kickjs-mcp — Model Context Protocol adapter
  • @forinda/kickjs-cli — Project scaffolding, DDD code generators, custom commands
  • @forinda/kickjs-vite — Vite HMR plugin, envWatchPlugin, dev tooling
  • @forinda/kickjs-testing — Test utilities for integration testing