Skip to content

About

Visual page builder for AntelopeJS DMS. Edit pages, tables and charts in the dashboard, and every save becomes TypeScript in your repository.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

213 Commits

Folders and files

DMS BUILDER: part of AntelopeJS DMS, the open-source back office. A glowing button reads Star AntelopeJS DMS.

@antelopejs/dms-builder

npm License Discord Documentation Star AntelopeJS DMS

Edit the pages, tables and data sources of an AntelopeJS DMS project from the dashboard, as TypeScript that compiles.

Documentation · All modules

Screen recording from the AntelopeJS DMS film. Ctrl B opens the Builder on a dashboard and a TableView block is added from the block list under the caption Ctrl B. Edit it on the page. The block is saved, the whole project is typechecked, and the new TableView line appears in dashboard/page.ts under the caption Every save becomes TypeScript.

What it does

  • Turns any DMS page into an editor, opened with the hammer button in the page header or Ctrl B. In the editor you add blocks from a catalog, arrange them, configure them and bind them to data.
  • Writes each edit into the project's TypeScript as an AST rewrite, typechecks it in memory, and writes only if it compiles.
  • Creates pages from a layout, arranges the menu, and generates tables with their fields and API.
  • Gives a chart or a KPI its numbers from a query, without hand-writing a route.
  • Exposes the same operations to other modules through @antelopejs/interface-dms-builder and to agents through an HTTP API under /api/builder.

By default the builder runs only in development (ajs project dev), and every route requires a tenant owner.

Install

Run the AntelopeJS CLI from the root of a project that already loads @antelopejs/dms:

ajs project modules add @antelopejs/dms-builder

Quick start

The builder edits the project it runs in. If the backend's working directory is not the app's source root, set projectRoot in the entry that ajs project modules add wrote:

// antelope.config.ts
"@antelopejs/dms-builder": {
  source: { /* … */ },
  config: {
    projectRoot: __dirname,
  },
},

Start the backend with ajs project dev -w, then the frontend with ajs dms dev. Open any page and click the hammer button in the page header, or press Ctrl B (⌘ B on macOS).

Compatibility

The compatibility table of the module README lists the interface ranges the module supports. The module needs a DMS backend that implements the @antelopejs/interface-dms range in that table. Its frontend needs a @antelopejs/dms-frontend renderer in the range of engines["@antelopejs/dms-frontend"] in packages/dms-builder/frontend-vue/package.json. The ajs dms CLI refuses to build the frontend with a renderer outside that range.

The HTTP routes need an API provider, such as @antelopejs/api.

Packages

Package Directory Role
@antelopejs/dms-builder packages/dms-builder The module: the AST engine, the HTTP API and the builder UI.
@antelopejs/interface-dms-builder packages/interface-dms-builder The interface another module in the same process calls.

Documentation

The guide's sources live in packages/dms-builder/docs. The interface reference lives in packages/interface-dms-builder/docs. The module ships the dms-builder Claude Code skill in packages/dms-builder/skills, declared under antelopeJs.skills.

Contributing

Read CONTRIBUTING.md before opening a pull request. One root pnpm install installs the shared tooling, both packages and the builder UI (frontend-vue). Workspace packages keep separate lockfiles to preserve their dependency resolutions. The playground remains independent.

pnpm install
pnpm build          # the interface, then the module
pnpm lint
pnpm typecheck
pnpm test

The playground (packages/dms-builder/playground) loads the builder with a demo orders table and a Board page that holds a chart to configure. From that directory, run pnpm install --ignore-workspace, then pnpm dev and pnpm frontend:dev.

Repository notes
  • The backend registers the builder's frontend module at priority 100, and only when the builder is on. frontend-vue/dms.frontend.ts registers the DmsBuilder components and the client plugin only when the backend's manifest entry carries dmsBuilder.enabled === true. Check that layer with pnpm --dir packages/dms-builder/frontend-vue typecheck and lint.
  • The module implements the interface, so its dependency range on the interface is >=<interface version> <0.<minor + 1>.0. A breaking interface minor never reaches a module that does not implement it. Inside the workspace, pnpm resolves that range to the sibling package.
  • Each package releases on its own. release-interface.yml publishes @antelopejs/interface-dms-builder. release.yml then publishes @antelopejs/dms-builder, and refuses to run until the interface version in packages/interface-dms-builder/package.json is on npm.

Part of AntelopeJS DMS

This module installs into AntelopeJS DMS, the open-source back office. Every module adds its pages to the same dashboard, behind the same sign-in and roles.

Module What it adds
dms-builder Edit pages, tables and data sources by clicking, as TypeScript that compiles
dms-ai An assistant chat in the dashboard, on your own Claude Code or Codex
dms-database Schemas, relation diagrams, a data browser and a query console
dms-api API health, request logs, per-route statistics and a request tester
dms-automation Node-graph automations on schedules, webhooks and DMS events, with a trace for every run
dms-mailing E-mail templates in a block editor, versions, a send log and delivery metrics
dms-lang Translation coverage, a translation matrix and a translation queue
dms-media A media library with folders, per-folder permissions, image sizes and light editing
dms-saas Self-service sign-up, plans that gate features, and Stripe billing
dms-marketing Traffic, conversion funnels with A/B splits and click heatmaps, without cookies
dms-frontend The ajs dms CLI, the Vue renderer and the SDK every frontend module builds on

License

Apache-2.0

About

Visual page builder for AntelopeJS DMS. Edit pages, tables and charts in the dashboard, and every save becomes TypeScript in your repository.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages