Xeno Framework LogoXeno.JS
Xeno Logo

Xeno.JS

Architecture that survives CHANGE.

Xeno.JS is an enterprise-grade TypeScript framework for building mission-critical systems with DDD, CQRS, and explicit Dependency Injection across backend and browser.

terminal — xeno-cli
$ npm install @xeno-js/cli
$ xeno-js new my-xeno-app --core
✔ Scaffolding completed successfully!
Why Xeno.JS

Designed for long-term Maintainability.

Xeno is a framework with an enterprise-grade architecture that eliminates technical debt by enforcing strict boundaries, Inversion of Control, and native CQRS patterns throughout the stack.

Zero-Magic Inversion of Control

No experimental decorators or directory auto-scanning. Xeno uses an explicit and deterministic IoC container that prevents memory leaks, ensures safe type resolution at compile time, and protects domain boundaries.

Native CQRS & Pipeline

Logically and physically separate state mutations (Commands) from data retrieval (Queries). Manage schema validation, caching, telemetry, and resilience through cross-cutting middleware executed before business logic.

Full-Stack Isomorphic Architecture

Bridge the gap between backend and frontend. Share the same rigor of Domain-Driven Design, primitives, pipelines, and error monads (Result) across the Node.js server and distributed client.

More than a framework

Modular Ecosystem

Pay-for-what-you-use architecture. Integrate only the necessary packages to structure your domain without infrastructure overhead.

@xeno-js/core

The backend kernel. Provides the IoC container, context isolation using AsyncLocalStorage, and CQRS server-side pipelines.

@xeno-js/vue

The frontend engine. Brings explicit Dependency Injection, resilient data-fetching, and native CQRS patterns to the browser.

@xeno-js/shared

The isomorphic foundation. Ensures synchronization of contracts, constants, error monads, and utilities between Node.js and Vue.js.

@xeno-js/cli

The enterprise generator. Automates the creation of boilerplate, instantly configuring architectural boundaries for Commands and Queries.

Fluent Architecture

Dependencies you can see, reason about, and trust.

Xeno 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

Treat the browser as a
distributed client—not a view layer.

Xeno brings bounded contexts, commands, queries, and explicit application state into Vue. Backend and frontend teams share one architectural language while the domain stays insulated from databases, transports, and UI churn.

@xeno-js/core

Backend

@xeno-js/vue

Frontend
Support Open Source

Help keep Xeno independent and sustainable.

Xeno is an independent, MIT-licensed open-source project. Building and maintaining an enterprise-grade framework takes countless hours of research, coding, and documentation. Your support buys precious time to keep the engine running.

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