// 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 · studio

The visual
metadata
designer.

Design entities, views, menus, roles, actions, and triggers in the browser. Publish as real installed modules. Every change is versioned. No code required — and nothing locks you out of editing the underlying YAML when you want to.

explore studio →
studio · entity designer · Lead unsaved
fields + add
name string required
email email unique
company string
stage enum [new, qual, won]
owner ref User
value money
created_at datetime auto
inspector
name
name
type
string
required
true
label
Full name
7 fields · 0 errors · last saved 2m ago
/ 05 · 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
/ 06 · 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 日本語 メールアドレス
/ 07 · 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.