The form engine that renders natively in your app.
Cross-framework. Headless core plus styled block packs. Zero DOM in the engine. One JSON schema, one logic evaluator, every stack — React, Vue, Vanilla today; React Native and SwiftUI as interpreters of the same spec.
no spam · unsubscribe any time · built for developers who read the docs
01 — what it is
A form kernel, not a form library.
Most form libraries are code you import. Nativeform is an interpreter of declarative JSON. Fields, validation, logic, and layout all live in a portable schema. The engine is the runtime that executes it.
This matters the moment you need the same form in a second place. A second framework. A second platform. An AI agent filling it on behalf of the user. A mobile app that cannot ship a webview.
The core has zero DOM. Blocks receive semantic props — { value, error, onChange } — never DOM refs or raw events. That contract is what lets us render to React today and SwiftUI tomorrow without rewriting the language.
{
"id": "job-application",
"fields": [
{ "id": "name", "type": "text", "label": "Full name", "required": true },
{ "id": "email", "type": "email", "label": "Email", "required": true },
{ "id": "salary", "type": "money", "label": "Desired salary",
"currency": "USD" },
{ "id": "work", "type": "repeater", "label": "Work history",
"fields": [
{ "id": "co", "type": "text", "label": "Company" },
{ "id": "dates", "type": "dateRange", "label": "Dates" }
]
}
],
"logic": [
{ "when": { "==": [{ "var": "salary.amount" }, 0] },
"then": { "error": { "field": "salary", "key": "salary.required" } } }
]
}> this same schema renders in React, Vanilla JS, and (P3) SwiftUI.
02 — why nativeform
Built for the forms you were afraid to touch.
Renders as first-class UI
Not iframes. Not widgets. Forms use your design system, your theme, your accessibility tree, your keyboard shortcuts.
Cross-framework portability
Every SDK is a thin interpreter of the same JSON. Rewrite your app from React to Vue — your forms come with you.
No code escape hatches
Visibility, computed values, and validation are pure data. Nativeform Logic v1 is a registered operator tree — portable to any runtime.
Repeaters, money, PII, multi-step
First-class money type, dateRange, repeater scopes in logic, PII tags that drive retention and audit, compliance flags built-in.
03 — who it's for
SaaS founders who need serious forms, not contact forms.
If your product is onboarding, intake, underwriting, estimation, applications, claims, invoicing, or configure-price-quote — the form is the product. You are not looking for Typeform. You are looking for a runtime you can trust.
it is for you if…
- ✓Your forms have conditional fields that depend on other conditional fields.
- ✓Your forms have repeaters (line items, work history, dependents).
- ✓Your forms touch money, and you refuse to do math with floats.
- ✓Your forms carry PII and compliance is not a footer link.
- ✓You want your mobile app to render the same form without a webview.
- ✓You read docs. You care about contracts. You want the escape hatch to be declarative.
04 — framework matrix
One schema. Every target.
| target | status |
|---|---|
| React | shipping |
| Vanilla JS | shipping |
| Vue | P1 |
| Svelte | P1 |
| React Native | P3 |
| SwiftUI / Kotlin | P3 |
* priorities per docs/PLAN.md §6. Native ports re-implement an interpreter of a fixed spec instead of reinventing the language.
05 — early access
Building in public.
Waitlist members get the first preview, the schema spec drafts, and a direct line while the kernel is still moving. No drip. No marketing. Just progress.