Xeno.JS Framework LogoXeno.JS

Application architecture for Typescript

Your HTTP framework handles HTTP.
Xeno.JS handles the application.

Xeno.JS gives TypeScript applications explicit boundaries for domain logic, use cases, dependencies, request context, and cross-cutting execution.

Keep Fastify, Express, Hono, Vue, or the transport you already use. Build
the application layer underneath it.

TypeScriptNode.jsDDDCQRSExplicit Dependency Injection
Architecture

Build a large TypeScript application without framework coupling.

Xeno.JS gives you a cohesive set of decoupled primitives designed for long-lived systems, keeping your domain pure and maintainable.

Ideal Use Cases

Xeno.JS is for you if...

Recognize the exact inflection point where standard framework conventions start slowing your team down.

✓Explicit dependency injection
✓Native CQRS (Commands & Queries)
✓Strict application boundaries
✓Request-scoped execution context
✓Modular infrastructure adapters
✓Full-stack Vue integration
✓Your backend is becoming large and difficult to scale.
✓Your domain logic is getting mixed with database code.
✓You want CQRS without assembling 10 different libraries.
✓You don't want decorator-driven DI or hidden magic.
✓You want the same architectural model on Node & Vue.
The core idea

Why Xeno.JS

Xeno.JS makes the application architecture explicit.
It gives TypeScript applications clear boundaries for domain logic, use cases, dependencies, request context, and cross-cutting execution.
Keep the HTTP framework, UI framework, and infrastructure you already use. Xeno.JS sits underneath them and gives the application layer a structure that remains visible as the codebase grows.

Zero-Magic Inversion of Control

No decorators or directory scanning. Dependencies are registered explicitly, making application composition visible and deterministic.

Native CQRS & Pipeline

Commands and Queries make application intent explicit. Pipelines keep validation, logging, caching, resilience, and other cross-cutting concerns outside business logic.

One Application Model

Use the same architectural language across Node.js and Vue: domain primitives, application contracts, commands, queries, pipelines, and explicit context.

THE ECOSYSTEM

One architecture. Different responsibilities

Explore Xeno.Js Ecosystem

@xeno-js/core

Dependency Injection, scopes, request context, CQRS execution, pipelines, modules, transactions, repositories, and infrastructure composition.

@xeno-js/vue

Use explicit frontend composition, CQRS-style commands and queries, pipelines, context, validation, and data sources inside Vue applications.

@xeno-js/shared

Domain primitives, value objects, aggregates, domain events, Result types, errors, and application contracts.

@xeno-js/cli

Scaffold projects and generate application components instead of rebuilding the same structure by hand.

Fluent Architecture

Dependencies you can see, reason about, and trust.

Xeno.JS uses an explicit functional container with deterministic lifetimes. It catches captive dependencies before they become production memory leaks and preserves compile-time safety without decorator metadata.

  • Explicit registrations
  • Lifetime safety
  • Compile-time contracts
  • Framework-independent domain
src/main.ts
import { AppBuilder, LOG_LEVEL, TOKENS } from '@xeno-js/core'

export const XenoApp = new AppBuilder<MyRegistry>()
   .addLogger((config) => {
            config.level = LOG_LEVEL.INFO
            config.console = true
    })
   .addDb((opts, config) => {
            opts.connectionString = config.getOrThrow('DATABASE_URL')
    })
   .addServices((srv) => {
        srv.addTransient('MY_SERVICE', (c) => new MyService(c.resolve(TOKENS.LOGGER)))
   })

await XenoApp.build()
TypeScript 5.x StrictUTF-8
The full-stack vision

Bring the application model to the browser.

Xeno.JS brings commands, queries, pipelines, context, and explicit application composition into Vue.

The result is one architectural language across backend and frontend, while domain logic remains independent from transports, databases, and UI concerns.

@xeno-js/core

Backend

@xeno-js/vue

Frontend
Support Open Source

Help keep Xeno independent and sustainable.

Xeno.JS is an independent, MIT-licensed open-source project focused on making application architecture explicit for TypeScript. Your support helps fund the time behind the project: maintaining the core, improving documentation, refining the tooling, and growing the Xeno.JS ecosystem.

Are you using Xeno.JS in production? Reach out directly at xeno-js@outlook.it for support.