What is formancy?
formancy is a modern, self-hostable form platform for React and Angular. It is three things that are usually sold separately:
- A headless form engine (
@formancy/core) that compiles a form document — fields, conditional logic, computed values, validation — into one reactive evaluation graph. - Native renderers for React (
@formancy/react) and Angular (@formancy/angular), which are thin bindings over the same engine: hooks anduseSyncExternalStoreon one side, signals on the other, identical behaviour on both. - A self-hostable backend (
@formancy/server), a Fastify + Postgres service that publishes form versions, replays every submission through the same engine, and exports the results.
The three commitments
Section titled “The three commitments”Form platforms today make you choose between a good renderer and a good builder, and most of them own your markup. formancy is built on three commitments:
One engine, browser and server. The same compiled validation, conditional-logic and calculation engine runs in both places, so client and server rules cannot drift. The server does not trust the browser: it replays every submission through the engine, recomputes calculated values, strips hidden branches and stores the canonical result.
Your design system owns the markup. Headless by default. The component kits ship zero CSS, and there are two levels of escape: swap individual field components through a registry (per-path entries beat per-type entries beat the unstyled built-ins), or drop to the engine’s prop getters and render every element yourself. The prop getters are computed in the engine, so React and Angular ship byte-identical ARIA wiring.
Apache-2.0, with no paywalled essentials. The spec, engine, renderers, conformance suite and self-hostable backend are free forever. The conformance suite is itself published, so a third party building a Vue, Svelte or Solid renderer can certify against the same behavioural contract.
What keeps the renderers honest
Section titled “What keeps the renderers honest”Both renderers pass the same conformance suite: six fixtures, written once as data, executed against each implementation. A driver may locate a control only by accessible name and role — never a test id or a CSS selector — so a renderer whose markup a screen reader cannot use cannot pass the suite either.
Where to go next
Section titled “Where to go next”- Quickstart: React — a working form in one component.
- Quickstart: Angular — the same form over signals.
- Quickstart: self-hosting — Postgres, the server, and the full HTTP surface.
- The schema — why the model, the logic and the presentation are separate sections.
- Roadmap and status — what exists today and what is planned.