// the platform

One runtime.
Every business
application.

A metadata-first runtime that compiles entity definitions into real Postgres schemas, REST + GraphQL APIs, 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] REST · GraphQL · JSON-RPC
[policies] row + column + folder
[schema] postgres · per-tenant
[metadata] the source of truth
/ 01 · 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.

~/dforge/build build · ok
› dforge compile metadata/*.dmod
✓ parse 14 entities · 38 views · 9 roles
✓ validate 0 errors · 0 conflicts
✓ schema postgres migrations applied
✓ api REST + GraphQL + JSON-RPC
✓ ui list · form · kanban · calendar
✓ rls row & column policies installed
✓ audit change history enabled
✓ i18n 3 locales registered
› ready · uptime 100% · 12 ms p95
/ 02 · 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 tenants all healthy
acme
db tenant_acme
region EU · US
globex
db tenant_globex
region US
initech
db tenant_initech
region EU
umbrella
db tenant_umbrella
region APAC
1 db
per tenant
0
shared tables
< 60s
provision time
/ 03 · security

Composable security.
Declared, not coded.

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

[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
/ 04 · build modules

Describe it.
AI builds
the module.

Run npx @dforge/create-module, open in 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-author skill 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
/ 05 · 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.

~/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

Scaffold, validate, package and install from the terminal — or drive the whole module surface from your AI agent through the dForge MCP server.

climcpclaude code
/ 06 · 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-west us-east soc2 gdpr
[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
docker k8s airgapped byo postgres
/ 07 · 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.

Lead.email · translations
EN english Email address
ES español Correo electrónico
FR français Adresse e-mail
DE deutsch E-Mail-Adresse
JA 日本語 メールアドレス
/ 08 · 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.