AntelopeJS is a TypeScript framework and CLI for Node.js applications. It extends the ports-and-adapters model across your application and the ecosystem modules you install: consumers depend on explicit contracts, provider modules implement them, and your application selects the implementations.
You already separate business behavior from integrations. AntelopeJS supplies the interface binding, module lifecycle and assembly mechanisms, so you do not have to rebuild that infrastructure for each project.
The dependency boundary stays the same whether you write the provider or install it:
Business module ──depends on──▶ Contract ◀──implements── Provider module
- Contracts describe capabilities. Interface packages expose the public API that consumers and implementations agree on.
- Providers own integrations. A provider module registers its implementation with the runtime. Consumers call the contract instead of importing that provider.
- The application owns the choice. Configure local, package or Git module sources in
antelope.config.ts, outside consuming business modules. - The runtime handles the connections. AntelopeJS manages interface bindings and module lifecycle through the same mechanisms for local and ecosystem modules.
For example, the MongoDB and RethinkDB modules both declare the shared database contract. They also expose provider-specific interfaces: using those deliberately ties that consumer to the provider.
A replacement can leave consuming code unchanged when it supports the required contract version, capabilities and behavior. Provider configuration, credentials, data migrations and operational differences still need attention. Matching types alone does not establish compatibility.
AntelopeJS provides the mechanisms for these boundaries; it does not prevent your code from bypassing them. Consumers still depend on their contracts, and the framework does not automatically make your business code framework-independent.
Development hot module reloading is a separate workflow feature, not a promise of live production migration between providers.
Install @antelopejs/core, which provides the ajs CLI:
pnpm add -g @antelopejs/coreTo create a new project with the CLI:
ajs project init <project-name>- Introduction — Why the same boundaries matter across your application and its dependencies
- Quick Start — Create your first project
- Architecture — Contracts, implementations and application assembly
- Interfaces — Define and implement a capability
- Module configuration — Select module sources and configure implementations
- Explore the ecosystem — Find modules for your application
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.