VDM Joomla Component BuilderArchitecture / 1.0.0
Read the white paper
Read MarkdownDownload MarkdownSource

Joomla Component Builder Architecture

Contextual compilation from structured intent to complete applications
Llewellyn van der Merwe · Technical white paper · Edition 1.0.0

A field called Greeting appears to be a small definition: a type, a name, a label, and a few settings. In a generated application, that definition participates in a database column, an editor, a list query, sorting, searching, language entries, and a machine-readable table description. Its use in a view adds further decisions: whether it is the title, where it appears, and which interactions it supports. Those consequences must agree without being specified independently in every destination.

Joomla Component Builder coordinates that work through a compiler. It retrieves definitions and their dependencies, interprets each use in context, distributes the results into specialised intermediate stores, retains work that must wait for other information, and binds completed material into native components, modules, and plugins. This publication explains that architecture at the level of its operations, mathematical structure, and observable products.

Follow one definition through the system#

The Hello World example connects a public blueprint repository to three generated extension repositories. The Greeting field trace follows a stable field identifier into its form, database schema, language keys, list behaviour, and generated metadata. The custom-code trace follows deliberate markers from GUI-backed blueprint properties into their target methods and files.

These examples provide a concrete entry into the deeper account. A reusable definition is one object; its uses, accumulated consequences, and output locations are different objects. The architecture makes those distinctions operational.

flowchart TD
  A["Structured intent in the editor"] --> B["Local definitions and relationships"]
  R["Versioned blueprint repositories"] -->|discover and import| B
  B -->|export| R
  X["Existing installed extension"] -->|extrude represented structure| B
  B --> C["Resolve, classify, and retain context"]
  C --> D["Complete deferred work and bind in stages"]
  D --> E["Native component, module, and plugin products"]
  E -->|recover designated edits| B
Architectural relationship diagram · source available in Markdown

The repository exchange, installed-extension extrusion, and marked-edit recovery paths perform different transformations. The compiler connects them by consuming the resulting definitions through the same generation machinery. Lifecycle

Read the integrated argument#

The white paper presents the complete argument in one continuous article. The reading guide offers shorter routes through the same material.

The detailed chapters explain the blueprint representation, local-first discovery, compiler execution, semantic classification, intermediate stores, deferred work, and binding stages. Application-generation chapters follow those mechanisms into schemas, queries, interfaces, permissions, languages, routing, and packaging.

The formal model expresses identities, state transitions, dependency traversal, contextual interpretation, and staged substitution without depending on PHP syntax. The implementation guide shows how those operations can be represented in another language. The source map reconnects the abstraction to the implementation.

A development lifecycle, not a one-time scaffold#

Blueprints can be exported, reviewed in Git, imported into another JCB instance, and compiled again. Existing extensions can supply recoverable structure through extrusion. Reusable library definitions can be acquired when needed and placed according to their resolved namespaces. Compiler and target-rule changes can then be applied through regeneration, rather than repeated separately across every application.

JCB's own generated application is part of this account. Self-generation and maintenance explains the relationship between its blueprint, reusable library inputs, compiler, and generated application layers. Build measurements distinguish blueprint size, supplied reusable code, output size, and elapsed compilation time.

The subject is how these operations fit together. The implementation gives the account its substance; the abstraction makes the approach available for examination and reuse beyond Joomla.

Every article has an exact Markdown equivalent. Authorship, source revisions, implementation coverage, and publication conventions are recorded in the edition and citation pages.

Article basisArchitectural account and source-linked examplesEdition and sources
Publication contents
Download all Markdown

Search article titles and the complete text.