The interface registry the ajs CLI reads to find which modules implement an interface.
The catalog the ajs CLI reads to find which modules implement an interface. It holds metadata only: the interface packages and their implementations live on npm.
ajs project modules installfinds the interfaces a project imports without an implementation, and offers the modules this registry lists for them.ajs module initoffers the starred interfaces of this registry when it scaffolds a module, and the templates listed here.ajs project initalso offers complete project templates, including DMS Starter, DMS Connect Demo, DMS Demo, and DMS Adonis.- Each interface has a folder under
interfaces/with amanifest.json: a description, the interface package and the modules that implement it. - The root
manifest.jsonmaps each interface package to its folder and lists the starred interfaces and the project templates.
| Interface | Package | Modules listed |
|---|---|---|
| API | @antelopejs/interface-api |
@antelopejs/api |
| API Util | @antelopejs/interface-api-util |
@antelopejs/api |
| Auth | @antelopejs/interface-auth |
@antelopejs/auth-jwt |
| Core | @antelopejs/interface-core |
none: @antelopejs/core provides it |
| Data API | @antelopejs/interface-data-api |
@antelopejs/data-api |
| Database | @antelopejs/interface-database |
@antelopejs/mongodb, @antelopejs/rethinkdb |
| Database Catalog | @antelopejs/interface-database-catalog |
none: no public implementation yet |
| Database Decorators | @antelopejs/interface-database-decorators |
@antelopejs/database-decorators |
@antelopejs/interface-email |
@antelopejs/nodemailer, @antelopejs/brevo |
|
| File Storage | @antelopejs/interface-file-storage |
@antelopejs/file-storage-s3, @antelopejs/file-storage-local |
| Logging | @antelopejs/interface-core |
none: @antelopejs/core provides it |
| MongoDB | @antelopejs/interface-mongodb |
@antelopejs/mongodb |
| Redis | @antelopejs/interface-redis |
@antelopejs/redis |
| Redis Scheduler | @antelopejs/interface-redis-scheduler |
@antelopejs/redis |
| RethinkDB | @antelopejs/interface-rethinkdb |
@antelopejs/rethinkdb |
| Stripe | @antelopejs/interface-stripe |
@antelopejs/stripe |
Registration does not publish an npm package or deploy its documentation.
Database Catalog is not yet published to npm. The public documentation site has
its own source registry in AntelopeJS/antelope-web; add a source there when a
public interface is ready to appear on the site. Private interfaces are not
listed in this public registry.
Each interface owns its reference in its package's docs/ directory. For DMS
monorepos this is packages/interface-dms-*/docs/; the
DMS documentation links those
contracts separately from the runtime guides. This registry is not an inventory
of every package that can participate in AntelopeJS.
The catalog also includes these contracts:
| Interface | Package | Modules listed |
|---|---|---|
| DMS | @antelopejs/interface-dms |
@antelopejs/dms |
| DMS Automation | @antelopejs/interface-dms-automation |
@antelopejs/dms-automation |
| DMS Builder | @antelopejs/interface-dms-builder |
@antelopejs/dms-builder |
| DMS Mailing | @antelopejs/interface-dms-mailing |
@antelopejs/dms-mailing |
| DMS Marketing | @antelopejs/interface-dms-marketing |
@antelopejs/dms-marketing |
| DMS Media | @antelopejs/interface-dms-media |
@antelopejs/dms-media |
| DMS SaaS | @antelopejs/interface-dms-saas |
@antelopejs/dms-saas |
The CLI reads this repository by default. Resolve the missing implementations of a project from its folder:
npx @antelopejs/core project modules installnpx @antelopejs/core project init my-app --template dms-starter --yes
cd my-app
docker compose upThis template runs the DMS, the Builder, and the AI assistant with no sample data. Docker Compose also starts the MongoDB that the DMS needs. When the dashboard is ready on http://localhost:3001, open the onboarding address that the dms log prints after [DMS] No owner exists yet, and create the first administrator. See the template README.
npx @antelopejs/core project init my-app --template dms-connect-demo --yes
cd my-app
docker compose upThis template runs the same DMS with a PostgreSQL sample database. docker compose --profile mongodb up or docker compose --profile rethinkdb up also starts a MongoDB or RethinkDB sample with the same data. Open the onboarding address that the dms log prints, create the first administrator, then connect the sample in the Builder. See the template README.
npx @antelopejs/core project init my-app --template dms-demo --yes
cd my-app
pnpm devThe demo requires Node.js 24, pnpm and a running MongoDB instance. Run
pnpm frontend:dev in a second terminal. Then open the onboarding address that
the backend console prints, and create the first administrator. See the
template README
for configuration.
modules install resolves missing contracts; it is not a menu of every DMS
feature. Modules such as dms-ai, dms-api, dms-database and dms-lang
do not declare an interface implementation. The demo already configures them.
Installing an interface package alone does not configure a working dashboard.
npx @antelopejs/core project init my-app --template dms-adonis --yes
cd my-app
cp .env.example .env
node ace generate:key
pnpm devThis template runs the DMS embedded in an AdonisJS 6 application. Build and start the dashboard in a second terminal, then open the onboarding address that the backend console prints. See the template README.
npx @antelopejs/core module init my-module --template dms-module-typescript --pm pnpm --yes
cd my-module
pnpm services:up
pnpm devRun pnpm frontend:dev in a second terminal. This template contains a reusable
module, one Vue component and a playground/ project. Docker Compose supplies
MongoDB and Mailpit; existing local services also work. See the
module template README.
It belongs in templates, not projectTemplates: it is a module with a
development host, not a complete application.
The root projectTemplates array holds complete projects. The CLI offers
them only in project init, alongside the module templates in templates.
Older CLIs ignore projectTemplates, so they cannot offer a project they
would incorrectly overwrite. Keep complete projects out of templates.
Both arrays use the required name, repository and branch fields and
these optional fields:
description: a hint in the template selector, including prerequisites.packageManager: require this package manager and skip its prompt.install:falsewhen the template installs its own dependencies, for example inside its container. The CLI then copies the template and installs nothing on the host, so the package manager does not have to be installed. Absent ortrueinstalls the dependencies on the host.nextSteps: commands and optional descriptions displayed after creation; the CLI does not execute these commands automatically.
--template accepts the name or its kebab-case slug, such as
dms-connect-demo for DMS Connect Demo. Template slugs require the
@antelopejs/core release that ships them. Earlier
releases accept only the name, such as --template "DMS Connect Demo".
Create interfaces/<name>/manifest.json, or add your module to the modules array of an existing one:
{
"description": "Payment processing interface",
"package": "@antelopejs/interface-payment",
"modules": [
{
"name": "payment-stripe",
"source": {
"type": "package",
"package": "@acme/payment-stripe",
"version": "latest"
}
}
]
}For a new interface, also map its package to the folder in the interfaces object of the root manifest.json. The interface registry guide describes every field.
Read CONTRIBUTING.md, then open a pull request with your manifest change.
This registry belongs to AntelopeJS, the TypeScript framework where modules depend on contracts and the application chooses the provider. The open-source back office AntelopeJS DMS is built on it.