Build your product. Not another back office.
A code-first dashboard for your pages, data and operations. Write code, use the visual editor or ask the AI assistant: every change stays clean, readable code your developers can edit.
- Code-first · Developer-owned
- Open source · Apache 2.0
- Vue-first · React welcome
- Self-hostable
Inside the DMS
From a blank page to a working dashboard.
Compose a page, let the assistant make a change, then publish a version. Follow the full flow in the preview below.
- 01
Compose
Arrange tables, forms and charts around your data.
- 02
Refine
Configure the details or work with the AI assistant.
- 03
Publish
Review changes, version your work and deploy.
Code-first · No exceptions
Three ways to build. One source of truth: code.
Code isn't an escape hatch. It's the foundation. Every change, whether written by you, made in the visual builder or requested in the AI chat, lives in clean, editable TypeScript.
- 01 · Editor
Write it yourself
Every page is a TypeScript class: tables, forms and charts declared in code. Read, edit and extend your dashboard with the editor, tests and workflow you already use.
- 02 · Visual builder
Build it visually
Click Edit this page and compose it in the builder. Each change rewrites the TypeScript source and is saved only if it compiles, ready for a developer to review.
- 03 · AI chat
Ask the AI
Describe a change in the chat. The assistant works on the same codebase, through the builder in safe mode, so you can review its work and take over in your editor.
@RegisterPage()
export class DashboardPage extends PageController("dashboard", {
displayName: "Dashboard",
category: pagesCategory,
}) {
static kpis = Grid({ gap: "1rem" }).child("row",
GridRow()
.child("revenue", KpiCard({ title: "Revenue", fetchUrl: "/api/kpi/revenue" }))
.child("orders", KpiCard({ title: "Orders", fetchUrl: "/api/kpi/orders" })),
);
}
Core · Ready on day one
The basics every admin needs. Already built.
Every admin platform ends up needing the same foundation: profiles, security, notifications, preferences, members, invitations and roles. Most teams rebuild it for each project. With DMS, it is all there from the first day, down to roles on every component.
Settings
Your profile, security and preferences, plus the people and roles of this workspace.
Your account
Recent account activity
A modular workspace
More than an admin. Only what you need.
Add capabilities to the same dashboard rather than another login to your browser. Each module extends the foundation; you choose which ones belong in your product.
AI assistant
Create and refine pages, layouts and configurations with an assistant that understands the DMS.
Explore moduleDatabase
Explore rows, inspect schemas and run queries without leaving your workspace.
Explore moduleAPI
Bring endpoint configuration, implementation, documentation and request statistics into one view.
Explore moduleSaaS
Manage tenants, plans, subscriptions and invoicing alongside the product you deliver.
Explore moduleTranslation
Manage locales and translation keys for your dashboard and the applications it serves.
Explore moduleCI/CD & Git
Track versions, review diffs, roll back changes and promote releases between environments.
Explore moduleFile storage
Organize uploads, folders and file access in the same permission model as your dashboard.
Explore moduleDesign email templates with a block editor, then follow every send and its delivery.
Explore moduleHow DMS compares
Your dashboard. Your stack.
Payload, Sanity, NocoBase, Strapi and Appwrite each cover part of the job. DMS plugs into the backend you already run, and keeps everything, even what you build visually, as code your team owns.
| AntelopeJS DMSCode-First: Dashboard Management System | PayloadNext.js-native CMS | SanityHosted content platform | NocoBaseNo-code platform | StrapiHeadless CMS | AppwriteBackend as a service | |
|---|---|---|---|---|---|---|
| PlatformHow each product is built and run. | ||||||
| Backend languageWhat the product itself is written in | ✓ TypeScript End to end, from the data model to the page. | ✓ TypeScript Node.js. | ~ TypeScript + closed backend Studio is TypeScript; the Content Lake is proprietary and hosted only. | ✓ TypeScript Node.js. | ✓ TypeScript Node.js. | PHP The server itself. Functions run in a dozen other languages. |
| Backend frameworkWhere the product runs | ✓ Plugs into your backend
Adapters are open: extend one or build your own. | ~ Inside Next.js only Installs into a Next.js app; no Express, NestJS or AdonisJS adapter. | – Hosted backend only The Content Lake can't run in your backend; only Studio embeds in a React app. | – Its own server Runs as a separate Koa app, extended with NocoBase plugins. | – Its own server Runs as a separate Koa app, not inside your existing backend. | – Its own platform A separate PHP service you call through SDKs and REST. |
| Admin frontendWhat the admin UI is built with | ✓ Vue today, open adapters
Open adapters: bring the framework your team already knows. | ~ React only
React on the Next.js App Router; it can't be swapped. | ~ React only
Studio extends with React components and plugins; it can't be swapped. | ~ React only
The admin panel is built in React and can't be swapped. | ~ React only
The admin panel is built in React and can't be swapped. | – Fixed console Appwrite's own console. It can't be extended into your admin. |
| Dashboard builderCompose pages from tables, forms and charts | ✓ Visually, in code or with AI Three ways in, one result: pages your team owns as code. | ~ Code-defined widgets Widgets are React components in config; editors only arrange them. | – Code-configured widgets Dashboard widgets come from code; visual editing only previews content. | ✓ Visual builder Blocks for tables, forms and charts, plus JS blocks. | – Not an admin builder Homepage widgets are registered in code. | – Not an admin builder The console is a data browser. |
| What the builder producesWhen you configure it visually | ✓ Clean, readable code Each page is a TypeScript class. Visual edits rewrite that source and are saved only if the code compiles. | – No visual builder Everything is TypeScript config, written by hand. | – No visual builder Schema is TypeScript; roles, members and tokens live in hosted settings. | – Database records Models and pages are stored as metadata in the database. | ~ JSON + database Content types become schema.json files; admin layouts are stored in the database. | ~ Database + JSON export Console changes are stored in the database; the CLI can pull them into a JSON config. |
| Version controlDiff, review, roll back | ✓ Native: it's code Every change goes through Git like the rest of your codebase. | ✓ Native: it's code Schema and admin config are TypeScript you commit. | ✓ Git config Schema and Studio config in Git; webhooks and Functions as code. | – Not Git-based Backups are free; migrations and version control start at the Professional edition. | ~ Models only Admin layouts stay in the database. | ~ Through the CLI Pull and push a JSON config file. |
| Roles & permissionsHow fine access can get | ✓ Down to each component Every block, button and action on every page carries its own permission. | ~ Collection, field, document Access functions in code; no roles UI, no per-block rules. | ~ Custom roles: Enterprise Fixed roles below Enterprise; nothing per field or per Studio page. | ~ Menu, action, field, row Per page in the menu, not per block on the page. | ~ Content type, action, field No per-page or per-block rules in the admin. | ~ Table, row, file Per resource and action; no field-level rules. |
| Audit trailWho changed what, and when | ✓ Included Every administrative change is logged in the core. | ~ Version history only Versions record who changed a document; no dedicated audit log. | ~ Audit log: Enterprise Document history kept 3 to 365 days depending on the plan. | ~ Enterprise only Audit logs come with the paid Enterprise edition. | ~ Enterprise only Audit logs come with the paid Enterprise plan. | ~ Included, short retention 1 hour on Free, 7 days on Pro. |
| LicenseWhat you're allowed to do with it | ✓ Apache 2.0 No extra terms. | MIT Enterprise adds SSO, a visual editor, A/B testing and AI. | MIT Studio, SaaS backend The Content Lake is proprietary; Growth is $15 per seat per month. | Apache 2.0 + extra terms Branding must stay; no reselling as a no-code or AI platform. | MIT Enterprise features under a proprietary license. | BSD-3-Clause Permissive; no paid self-hosted edition. |
| Official modulesReady-made modules from the AntelopeJS team, installed from the CLI. | ||||||
| SaaSRun your product as a SaaS | ✓ A complete SaaS platform Self-service sign-up, Stripe plans, invoices and customer segments. Suspend, reactivate or upgrade any workspace. | ~ Tenant plugin Official multi-tenant plugin; Stripe sync but no plans or billing UI. | – Not built in Projects and datasets only; no tenant plans or billing. | ~ Enterprise only Multi-app and multi-space; no plans or billing. | – Not built in No native tenants, plans or billing in the docs. | ~ Teams as tenants No plans or billing. |
| APIRoutes, request logs, traffic | ✓ Routes, logs and traffic Every route, its request logs and traffic statistics, with a slow-request threshold, right inside your admin. | ~ Generated APIs Auto REST, GraphQL and Local API; no request logs or traffic stats. | ~ GROQ and GraphQL Content APIs with downloadable request logs; not a catalog of your routes. | ~ Docs and logs Swagger docs and request logs; traffic metrics need Enterprise. | ~ Metrics on Cloud only Latency and logs on Strapi Cloud; the docs plugin is unmaintained on v5. | ~ Platform metrics Usage charts for Appwrite's own API, not a catalog of your routes. |
| AI assistantBuilding the admin itself | ✓ Two modes, your call
Claude Code or Codex inside the dashboard: it inspects your modules and edits the project. Hover a mode to compare. | – Content AI only MCP for content; Enterprise AI writes and translates. Nothing builds the admin. | ~ AI for content AI Assist, Agent Actions and an MCP server; nothing builds the Studio UI. | ✓ AI employees Each skill asks first or runs on its own. Changes land in the database. | ~ Content types only Strapi AI drafts content types, on the paid Growth plan. | ~ Suggestions Proposes columns and indexes, and answers questions about the docs. |
| AutomationVisual workflows | ✓ Visual workflows Node graphs of triggers, actions and data nodes, fired by cron or webhooks. Any module can add its own nodes. | ~ Jobs in code Tasks, workflows and cron defined in code; no visual builder. | ~ Functions in code Functions, webhooks and an early-access Workflows engine; nothing visual. | ✓ Visual workflows About 20 free nodes; some triggers and nodes are paid. | – Webhooks in code Review Workflows only covers content approval. | – Functions in code Event and cron triggers, nothing visual. |
| DatabaseSchemas, data, queries | ✓ Explorer, diagram, AQL Health and schema overviews, a data browser, a schema diagram and an AQL query workspace. | – No explorer MongoDB, Postgres and SQLite adapters; no schema browser or query console. | ~ GROQ playground The Vision plugin runs queries; no schema browser or diagram. | ✓ Explorer and ER diagram A graph view of the main database, plus SQL collections. | ~ Content manager Entries and schemas; no diagram or query console. | ~ Data browser A SQL editor comes with native PostgreSQL. |
| MailingTemplates, sends, delivery | ✓ Templates, logs, metrics Block-editor email templates, a send log and delivery metrics. Send per tenant and language through your provider. | ~ Sending only Nodemailer and Resend adapters; no templates, send log or metrics. | – Not built in Email only through Functions and a third-party provider. | ~ Inbox and sending The Email Manager is Enterprise; no delivery metrics. | ~ Sending only Through providers; no send log or campaigns. | ~ Messaging Email, SMS and push with a status per message; HTML only, no editor. |
| MarketingTraffic, funnels, A/B tests | ✓ Cookieless analytics Cookieless, first-party analytics: traffic, UTM campaigns, click heatmaps and A/B funnels. Data stays in your database. | ~ A/B tests (Enterprise) No built-in analytics or funnels. | ~ A/B plugin Field variants via GrowthBook or LaunchDarkly; no visitor analytics. | – Not built in Chart blocks only. | – Not built in | – Not built in Traffic charts are infrastructure metrics. |
| MediaFiles, folders, images | ✓ Library with folders A Finder-style library with per-folder permissions, direct-to-storage uploads, image presets and crop and rotate. | ~ Upload collections Image sizes, crop and focal point; folders in beta, no per-folder permissions. | ~ Media Library: Enterprise Image CDN with crop and hotspot on all plans; folders in beta. | ~ File manager Storage engines and thumbnails; no documented folders. | ~ Media Library Folders and responsive formats; no permissions per folder. | ✓ Storage File permissions and image transformations; folders are virtual. |
| PublicationVersions, environments, deploys | ✓ Versions and Git deploys Versions as Git tags, environments as branches: deploy or roll back any environment to any version. | ~ Drafts and scheduling Versions, drafts and scheduled publish; no environments or Git deploys. | ~ Releases: Enterprise Scheduled drafts on Growth; environments are separate datasets. | ~ Paid migrations Environments and snapshots from the Professional edition; not Git-based. | ✓ Releases and Cloud deploys Content releases from the Growth plan; Git deploys on Strapi Cloud. | ~ Git deploys for code Functions and Sites only; no releases for the app itself. |
| TranslationsYour app's languages | ✓ Key-by-language matrix A key-by-language matrix that flags missing translations, with coverage per language and a public locale endpoint. | ~ 30+ admin languages Content localization per field; no translation management UI. | ✓ Locale and i18n plugins Official Studio UI locales and content i18n plugins; AI translation on Growth. | ✓ UI localization Edit UI text per language, with AI translation; no matrix view. | ~ Content only Admin UI text is translated in code. | – Locale data only No translation management. |
Based on each product's public documentation, source code and pricing pages, October 2026. Editions and plans change; check each vendor for the latest.
Part of the AntelopeJS ecosystem
Your dashboard. Your infrastructure.
Keep control of your DMS deployment on your own infrastructure. Looking for managed hosting? Explore AntelopeJS Cloud, the ecosystem's managed operations platform.
Self-host
Your infra, your rules
AntelopeJS Cloud
Managed hosting
DMS
Dashboard Management System
Open source · Apache 2.0Get started · Join the community
Your next back office
starts here.
Explore the developer docs, meet the team and tell us what your product needs from its dashboard.