How DMS compares
Your dashboard. Your stack.
Retool, Forest Admin, Basedash, Refine, 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 DMS Code-First: Dashboard Management System | Retool Internal-tool builder | Forest Admin Admin on your database | Basedash AI dashboards, hosted | Refine React admin framework | Payload Next.js-native CMS | Sanity Hosted content platform | NocoBase No-code platform | Strapi Headless CMS | Appwrite Backend as a service | |
|---|---|---|---|---|---|---|---|---|---|---|
| Platform How each product is built and run. | ||||||||||
| Backend language What the product itself is written in | ✓ TypeScript End to end, from the data model to the page. | ~ Node.js, closed source The server runs on Node.js; its source is proprietary. App Functions are written in TypeScript. | ~ Open agents, closed server Agents in TypeScript, Ruby and Python; the hosted UI and its server are proprietary. | Closed source The code isn't public; the self-hosting config points to Node.js with Prisma. | TypeScript, no backend Refine Core is a TypeScript frontend; the backend is whatever API you connect. | ✓ 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 framework Where the product runs | ✓ Plugs into your backend
Adapters are open: extend one or build your own. | – Its own platform Retool Cloud, or its containers self-hosted on Enterprise; apps can't run inside your backend. | ~ Agent in your backend The agent mounts on Express, NestJS, Rails or Django; Forest hosts the UI, on-premise on request. | – Its own platform Hosted SaaS; self-hosting is an Enterprise option for select customers. | ✓ Any API, no server Runs in your React app and calls your API through 15+ official data providers. | ~ 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 frontend What the admin UI is built with | ✓ Vue today, open adapters
Open adapters: bring the framework your team already knows. | ~ React only New apps are React with shadcn/ui; the framework can't be swapped. | ~ Hosted UI, Ember views Forest's proprietary UI; Smart Views are Ember 4.12 components. It can't be swapped. | – Fixed web app Its own UI, embeddable by iframe or a React SDK on Enterprise; it can't be extended. | ~ React only Headless core with shadcn/ui, Ant Design, Material UI, Chakra UI and Mantine integrations. | ~ 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 builder Compose pages from tables, forms and charts | ✓ Visually, in code or with AI Three ways in, one result: pages your team owns as code. | ✓ AI, code or drag-and-drop New apps come from prompts and editable React; classic apps keep the drag-and-drop editor. | ✓ Layout editor and Workspaces Drag in tables, fields, actions, charts and custom HTML/JS components, on every plan. | ~ Charts by AI or drag and drop Charts, read-only tables and text blocks, built in chat or arranged by hand; no forms. | ~ Code, or AI-generated Pages are React you write; Inferencer and the paid Refine AI scaffold them 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 produces When 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. | ~ React that runs on Retool New apps are React and TypeScript you can edit or clone with the CLI; they only run inside Retool. | – Layout kept by Forest Layouts live in Forest, versioned with its own branches; only the agent's schema file sits in your repo. | – Records in Basedash Dashboards are stored in Basedash and reached through its REST API; exports are PDF or CSV. | ~ AI-generated React code No visual editor; Refine AI writes React code, exported on the $20 Pro plan. | – 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 control Diff, review, roll back | ✓ Native: it's code Every change goes through Git like the rest of your codebase. | ~ Git on Enterprise Releases and history on every plan; Git branches through Source Control on Enterprise only. | ~ Code only Agent code goes in Git; layouts move through Forest branches and workflows keep versions, outside Git. | – Not Git-based Each chart keeps a query history; no Git sync or dashboard versions documented. | ✓ Native: it's code The whole admin is a React app you commit. | ✓ 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 & permissions How fine access can get | ✓ Down to each component Every block, button and action on every page carries its own permission. | ~ App, resource, row Custom groups per app and resource from Business; row rules on Enterprise, PostgreSQL only. | ~ Collection, action, record Custom roles from Starter, $499 a month; roles set nothing per field or per component. | ~ Source, table, column Three fixed roles; data access down to the column, rows through Postgres RLS. No per-chart rules. | ~ Provider you implement CanAccess can gate any component, but you write every rule; no roles UI. | ~ 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 trail Who changed what, and when | ✓ Included Every administrative change is logged in the core. | ~ Business plan and up Logs every query and user action, kept one year on Cloud; streaming on Enterprise. | ✓ Included, unlimited retention Activity logs on every plan; before and after values go to a PostgreSQL database you provide. | ~ Enterprise only Sign-ins, access changes, queries and AI actions, kept 90 days by default. | ~ Provider you implement CRUD hooks call your audit log provider; storage and the log view are yours to build. | ~ 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. |
| License What you're allowed to do with it | ✓ Apache 2.0 No extra terms. | Proprietary Free up to 5 users; self-hosting needs Enterprise and a license key. | Apache 2.0 agents, SaaS UI The UI is proprietary; free Sandbox for 2 users, then from $499 a month. | Proprietary From $1,000 per month for 25 users; self-hosting needs an Enterprise license key. | MIT Enterprise packages (Okta, multitenancy) and the Refine AI builder are paid. | 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 modules Ready-made modules from the AntelopeJS team, installed from the CLI. | ||||||||||
| SaaS Run 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. | ~ Customer apps, no billing External users from Business, Spaces on Enterprise; no tenant plans or billing. | – Not built in Teams and partner users for your ops staff; no tenant sign-up, plans or billing. | – Embedded analytics only One organization per tenant for embedded dashboards, on Enterprise; no plans or billing. | ~ Multitenancy: Enterprise Route-based tenants through the paid Enterprise package; no plans or billing. | ~ 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. |
| API Routes, request logs, traffic | ✓ Routes, logs and traffic Every route, its request logs and traffic statistics, with a slow-request threshold, right inside your admin. | – Consumes your APIs REST, GraphQL and gRPC resources; no catalog of your routes or traffic stats. | – Not built in An MCP server and a public API for logs; nothing lists or monitors your own routes. | – Its own REST API An API and MCP server for Basedash itself; no catalog, logs or traffic for your routes. | – Consumes your API Data providers call your endpoints; no route catalog, request logs or traffic stats. | ~ 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 assistant Building 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. | ✓ AI app builder Prompts build and edit apps, on every plan with AI credits; Claude Code can build through its MCP server. | ~ AI in workflows AI sets up some workflow steps from plain language; nothing builds pages or layouts. | ✓ Builds dashboards Chat and MCP clients build charts and dashboards from a prompt; the result stays in Basedash. | ~ Refine AI, separate and paid A hosted web IDE that generates the admin from prompts; from $0.99, export on Pro. | – 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. |
| Automation Visual workflows | ✓ Visual workflows Node graphs of triggers, actions and data nodes, fired by cron or webhooks. Any module can add its own nodes. | ✓ Visual workflows Blocks on a canvas, run on a schedule or by webhook; 500 runs a month on Free. | ✓ Visual workflows Builder on every plan; automated triggers need Starter, LLM steps need Professional. | ~ Prompt automations AI tasks on a schedule or a polled SQL trigger, sent to Slack or email; no visual workflows. | – Not built in No workflows, jobs or cron; that logic stays in your backend. | ~ 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. |
| Database Schemas, data, queries | ✓ Explorer, diagram, AQL Health and schema overviews, a data browser, a schema diagram and an AQL query workspace. | ~ Hosted PostgreSQL Retool Database: spreadsheet editor, SQL and schema migrations; 5 GB on Cloud, no schema diagram. | ~ Data browser, SQL charts Browse and edit records; SELECT queries only inside charts. No schema diagram or query console. | ~ SQL editor and schema Read-only SQL and a schema browser; AI writes run once approved, on Postgres, Redshift or Supabase. | – Not built in Frontend only: no schema browser, diagram or query console. | – 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. |
| Mailing Templates, 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 Retool Email on Cloud, capped at 120 an hour, or your SMTP; no templates, send log or metrics. | – Not built in No templates, send log or email integration; sending goes through actions you code. | – Report emails only Emails its own reports and alerts; no templates or sends for your app. | – Not built in No templates, sending or delivery logs. | ~ 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. |
| Marketing Traffic, funnels, A/B tests | ✓ Cookieless analytics Cookieless, first-party analytics: traffic, UTM campaigns, click heatmaps and A/B funnels. Data stays in your database. | – Not built in App usage analytics on Enterprise; no visitor traffic, funnels or A/B tests. | – Not built in Charts on your own data; no visitor analytics, campaigns or A/B tests. | ~ Charts on synced data Funnel charts over GA4, Mixpanel or Google Ads data; no tracking or A/B tests of its own. | – Not built in No visitor analytics, funnels or A/B tests. | ~ 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. |
| Media Files, folders, images | ✓ Library with folders A Finder-style library with per-folder permissions, direct-to-storage uploads, image presets and crop and rotate. | ~ Retool Storage A file store with folders, 5 GB on Cloud; no image presets or crop documented. | ~ File fields only Upload and preview widgets, S3 through a plugin; no media library or folders. | – Not built in Files attach to a single chat; no media library. | – Not built in Upload fields come from the UI library; storage, folders and image tools are yours. | ~ 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. |
| Publication Versions, environments, deploys | ✓ Versions and Git deploys Versions as Git tags, environments as branches: deploy or roll back any environment to any version. | ~ Releases and environments Releases on every plan, staging from Team; Git releases across instances on Enterprise. | ~ Layout deploys Branches push layouts to staging and production; your app code ships through your own pipeline. | – Not built in Edits save live; no versions, environments or deploys documented. | ~ Netlify hosting: Refine AI Refine AI Pro publishes the app to Netlify; no versions, environments or rollbacks. | ~ 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. |
| Translations Your 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. | ~ i18n: Enterprise Upload JSON translation files per locale; no editor or missing-key view in the docs. | – Date and number formats A locale setting formats dates and numbers; no translation management. | – UI in four languages English, Spanish, French or Portuguese interface; no translation management for your app. | ~ i18n provider Wraps the i18n library you choose, such as react-i18next; no translation management UI. | ~ 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.