Project approach

Keep form behavior portable. Keep integration details local.

Modyra separates the form model from rendering and framework lifecycle. The goal is not to make every integration identical. The goal is to keep shared behavior in one place and make each boundary explicit.

The layers

Engine

Owns typed state, validation, arrays, drafts, history, submission and lifecycle.

Contract

Represents data-driven forms as bounded, validated data rather than executable configuration.

Rendering

@modyra/plain turns supported contract fields into interactive DOM without a framework runtime.

Adapters

Connect engine signals and disposal rules to a host framework without reimplementing form behavior.

Studio

Edits the project model, validates it, previews through the framework-free renderer and exports artifacts.

Generated targets

Translate one project model into deterministic files while keeping target-specific syntax isolated.

Support is not uniform

The engine and the widget contract are at 2.4.0 under a published compatibility policy; the adapters, SDKs and Studio are still below 1.0 and differ in test depth, UI coverage, SSR behavior and ecosystem support. The capability matrix records technical differences; it is not a maturity ranking.