// the platform

One runtime.
Every business
application.

A metadata-driven application platform: a runtime that compiles entity definitions into real Postgres schemas, a JSON-RPC API, generated UI, and row- and column-level security. Multi-tenant by default. Cloud or self-hosted. AI-native by design.

runtime stack
●︎ healthy
[ui]list · form · kanban · calendar
[api]JSON-RPC
[policies]row + column + folder
[schema]postgres · per-tenant
[metadata]the source of truth
architecture

Compile metadata.
Get a real app.

No codegen, no scaffolding, no boilerplate to babysit. Metadata goes in. A complete, production-grade application comes out — every layer, observable end to end.

Read: Only You Own Your Data
~/dforge/buildbuild · ok
› dforge compile metadata/*.dmod
parse14 entities · 38 views · 9 roles
validate0 errors · 0 conflicts
schemapostgres migrations applied
apiJSON-RPC
uilist · form · kanban · calendar
rlsrow & column policies installed
auditchange history enabled
i18n3 locales registered
› ready · uptime 100% · 12 ms p95
isolation

One database
per tenant.
No exceptions.

Schema-per-tenant isolation, not row-level "tenant_id" filtering. Each organization gets its own Postgres schema, its own backups, its own migrations. Real isolation. Compliance-friendly.

runtime · 4 active tenantsall healthy
acme
dbtenant_acme
regionEU · US
globex
dbtenant_globex
regionUS
initech
dbtenant_initech
regionEU
umbrella
dbtenant_umbrella
regionAPAC
1 db
per tenant
0
shared tables
< 60s
provision time
security

Composable security.
Declared, not coded.

Every access rule is metadata. Versioned, reviewable, auditable. No more security logic scattered across controllers and stored procedures.

explore the security model
[rbac]
Roles & permissions

Composable, additive roles. A user with two roles inherits the union of their rights.

role  Sales      can: read, update.own
role  Manager    extends Sales
                  can: delete, export
[row-level]
Row-level security

Filter rows declaratively per role. Policies live with the metadata, not in app code.

policy  OwnRecordsOnly  on Lead
        for Sales
        where  owner = $user
[column-level]
Column-level security

Hide or mask fields per role without forking the schema or building view layers.

field  Lead.salary
       visible: HR, Finance
       masked:  Sales
[folders]
Folder-scoped access

Organizational boundaries map to data scopes. Region heads see only their region.

scope  Region.EU
       grants: read, write
       to:     Manager.eu
build modules

Describe it.
AI builds
the module.

Connect the dForge MCP server to Claude Code and describe what you need. The AI skill knows every field type, every convention, every DSL function. Or import your existing SQL / DBML schema and let AI finish the rough cut. Validate locally, package, install.

learn how modules work
claude code · dforge-module-authorskill loaded
you
Build me a support ticket module with priority, SLA timer, and assignment
claude
✓ created entity: ticket (8 fields)
✓ created entity: ticket_comment (4 fields)
✓ created view: ticket_board (kanban by status)
✓ created role: support_agent (S, I, U)
✓ created action: assign_ticket
✓ created trigger: on_status_change → notify
module valid · 0 errors · ready to package
for developers

Import your schema.
Get a working business app.

dForge meets developers where they already work. Point the importer at your existing database, open the module in your editor, and ship — with first-class tooling, real APIs, and metadata you can read, diff, and review.

explore developer tooling
~/acme · import
$ npx @dforge-core/schema-importer acme --from-dbml schema.dbml
✓ 14 entities · 9 views · 3 roles → acme.module
[editors]
Editor extensions

A VS Code extension with DSL syntax highlighting and JSON-Schema validation across every module file. Zed highlighting today — more editors on the way.

vs codezedmore soon
Get the VS Code extension
[import]
Import your schema

Feed a SQL / DBML schema to the importer and get a ready-to-install module — entities, views, menus, folders and roles inferred for you. Your legacy data comes along.

sqldbmlone command
[cli + mcp]
CLI & AI-native

A CLI on npm — run it with npx or install it locally. Scaffold, validate, package and install from the terminal, or drive the whole module surface from your AI agent through the dForge MCP server.

npxnpmmcp
deploy

Run it our way,
or yours.

[cloud]
dForge Cloud

Spin up a workspace in seconds. We handle infra, backups, scaling, and updates. EU and US regions available.

signup → workspace.dforge.app
install crm hr fin
  ✓ ready in 47s
eu-westus-eastsoc2gdpr
[self-hosted]
On-prem & VPC

Run dForge inside your infra. Docker, Kubernetes, or bare metal. Bring your own Postgres. Your data never leaves your network.

$ docker compose up dforge
$ dforge tenant create acme
  ✓ ready · acme.local
dockerk8sairgappedbyo postgres
i18n

Built for
every language.

Field labels, menu titles, error messages, and validation strings — all live as metadata. Add a locale, ship instantly. Tenants pick their own languages independently.

see how localization works
Lead.email · translations
ENenglishEmail address
ESespañolCorreo electrónico
FRfrançaisAdresse e-mail
DEdeutschE-Mail-Adresse
JA日本語メールアドレス
see it in action

Less plumbing.
More platform.

Open a workspace on dforge.app or talk to us about a hands-on walkthrough with your team.