FS FormScript

Start from a problem you already have

Pick the failure you already have.

FormScript is not a product category. It is a claim that the rule of a regulated form belongs in the document, and that every runtime should be able to read it. Each page below starts from one failure that teams actually have.

the claim

The rule is the document, and two runtimes must agree.

  • Same values
  • Same validity
  • Same error codes
  • Same output
Language specification 1.0
Duplication One rule on the web and the API

The same eligibility rule means something different on web, mobile and the API. That disagreement is a compliance incident.

Read the page
Contract The payload is the contract

Omitted means not asked. null means asked and left blank. A missing field is never ambiguous.

Read the page
Arithmetic Money that matches

A repayment is wrong by a fraction of a cent because 0.1 + 0.2 is not 0.3 in binary floating point.

Read the page
Toolchain Stop maintaining the form stack

One document instead of a client schema, a server schema, show/hide code, calculated hooks and a private label file.

Read the page
Accessibility Accessible by construction

Error summary, labels, focus and the placeholder ban are normative — not a library’s optional add-on.

Read the page
Audit Legal can read the rule

The eligibility rule is buried in three codebases, and support cannot tell which rule was live when an application was decided.

Read the page
Localisation Every locale, same answers

Labels follow locale. Submitted values must not. The two planes are enforced by the type checker.

Read the page
Offline Offline without a double charge

An offline retry sends a payment twice, and a rate on screen was computed from a stale cache.

Read the page
Safety Forms other people may write

Total, pure, cost-bounded expressions. Unknown features fail the build. Extensions are namespaced.

Read the page
Resilience Drafts that survive a device change

They start on the phone and finish on a laptop, and the in-progress answers have changed meaning.

Read the page
Comparison Compared honestly

What React Hook Form, Zod, JSON Schema, SurveyJS and XForms still own — and which copy of the rule they do not remove.

Read the page