Patient Intake (SurveyJS)
Tell us about you and your insurance coverage.
Patient
First nameΒ 
Last nameΒ 
Date of birthΒ 
Sex assigned at birth
Mobile phone
Preferred contact method

Patient Intake (Native Bootstrap)

Tell us about you and your insurance coverage.

  1. 1Patient
  2. 2Insurance
  3. 3History
  4. 4Consent

Patient

First name is required.
Last name is required.
Date of birth is required.
We'll send appointment reminders to this number.
85 lines vs 629 β€” the same form, built two ways

Both columns render the Patient Intake form above. Counts are component code only β€” the SurveyJS column's 4.6 KB JSON schema is listed separately below. View both files β†’ SurveyForm.tsx Β· NativeControls.tsx

Β SurveyJSNative Bootstrap
Code you write & maintain85 lines β€” a reusable renderer, not tied to this form. Form Library is MIT-licensed629 lines β€” specific to this one form
Form definitionA 4.6 KB JSON schemaNone β€” the form only exists as code
Cost of the next formAnother JSON schema; the renderer is reused as-isHand-write a comparable block again
Changing the form laterEdit the JSON β€” usually stored in a database, so no rebuild or redeployChange the code, then rebuild and redeploy
Who can build and edit itNon-developers, visually, in SurveyJS Creator β€” white-labeled into your appNot possible β€” there is no Bootstrap form builder to embed
What it costs youA schema format to learn; Creator is commercially licensedNothing extra β€” full control over every line

You write the renderer once. After that, every new form and every change to an existing one is data, not code β€” reviewed, deployed and owned differently, however it was written.