back to docs
[guides] studio module-builder visual low-code

Studio Guide

Build custom modules visually with Module Studio. Design entities, views, menus, roles, and actions in the browser.

published · updated

What is Studio?

Module Studio is dForge’s visual module builder. You design entities, views, menus, roles, and actions in the browser, then publish them as real installed modules — identical to hand-coded ones.

No CLI, no code files, no deployment pipeline. Just design, validate, and publish.

Creating a Project

  1. Navigate to Studio in the sidebar
  2. Click + New Project
  3. Enter:
    • Module code — lowercase identifier (e.g., tickets, assets)
    • Display name — human-readable name (e.g., “IT Tickets”, “Asset Management”)
    • Description — what this module does

Designing Entities

Entities are your business objects (tables). Each entity becomes a database table.

Adding an Entity

  1. Open your project and go to Entities
  2. Click + New Entity
  3. Define:
    • Code — table name (e.g., ticket, asset)
    • Display name — shown in the UI
    • Description — optional

Adding Fields

For each entity, add fields (columns):

  1. Click + Add Field on an entity
  2. Choose a field type (text, number, date, dropdown, lookup, etc.)
  3. Set properties:
    • Column code — database column name
    • Display name — label shown in the UI
    • Required — whether the field must have a value
    • Default value — pre-filled value for new records
    • Max length — for text fields

See the Fields Reference for all available field types and their options.

Relationships

To link entities:

  1. Add a Lookup field on the child entity
  2. Point it to the parent entity
  3. dForge creates the foreign key and the reference navigation automatically

Example: A ticket entity with a customer_id lookup field pointing to the customer entity.

Constraints

Add check constraints to enforce business rules:

  • [quantity] > 0
  • [end_date] >= [start_date]
  • [status] IN ('Open', 'In Progress', 'Closed')

Designing Views

Views define how users see and interact with entity data.

Creating a View

  1. Go to Views in your project
  2. Click + New View
  3. Choose:
    • Entity — which entity this view displays
    • View type — grid, kanban, list, calendar, or timeline
    • Slug — URL-friendly identifier

Configuring Columns

Select which fields appear in the view and their order. For grid views, set column widths. Master-detail views (e.g., orders with order lines) are configured by adding a child entity at level 1 with a parent set field.

Data Sources

Each view has one or more data sources that define which entity to query, default filters, sort order, and the master-detail relationship if any.

Designing Menus and Folders

Build your module’s navigation:

  1. Go to Menus to create menu items that link to your views, reports, and sub-folders
  2. Go to Folders to define the folder structure your module ships with, including each folder’s row filter
  3. Bind entities to folders so the same entity can show different columns in different folders
  4. Assign icons and colors

Designing Roles

Define who can do what:

  1. Go to Roles in your project
  2. Create roles (e.g., manager, accountant, viewer) — module roles are namespaced to your module
  3. For each role, assign rights to security objects:
    • Entity rights: S (Select), I (Insert), U (Update), D (Delete), C (Clone)
    • Action / Report / Folder rights: E (Execute / Access)
  4. Roles are additive — a user with multiple roles gets the union of all their permissions

Designing Actions and Triggers

Studio also handles server-side logic:

  • Actions — server-side scripts authored in the dForge DSL with params:, canExecute:, and execute: blocks. See Actions & Workflows.
  • Triggers — automation that fires actions when records are inserted, updated, deleted, or when a specific field changes.

Settings and Translations

  • Settings — configurable values that admins can override per folder. Use them in formulas via $[SettingName].
  • Translations — labels and descriptions for entities, fields, menus, and actions in any locale your module supports.

Publishing

When your design is ready:

  1. Click Validate — Studio checks for consistency errors (missing required fields, broken references, invalid formulas, etc.)
  2. Fix any validation errors
  3. Click Export to download a .dforge package, or Publish to install the module directly into the current tenant
  4. Optionally Fork an existing project to start a new module from a working baseline

The published module behaves identically to hand-coded modules — same database tables, same security model, same package format. There is no “Studio mode” runtime; the output is just a regular dForge module.

Iterating

After publishing, you can continue editing in Studio and re-publish to apply changes. Studio handles schema migrations (adding columns, modifying constraints) automatically.

/ was this helpful?

Stuck on something?
Tell us.

We read every message and update the docs based on what readers ask. The fastest way to improve the docs is to write to us.