TopGit
GitHub Repo Review

SurveyJS Form Library: JSON-Based Forms and Surveys

surveyjs/survey-library
STopGit review image for surveyjs/survey-library
Review by Topgit.dev for surveyjs/survey-library, with GitHub repository stats and README context.
Quick verdict

SurveyJS Form Library renders JSON-defined forms and surveys inside your own web app, and its license is MIT — no fee gates the core package. Reach for it when you want form logic — validation, branching, scoring — defined in one portable schema instead of scattered component state. Skip it if you'd rather hand a client a hosted, no-code survey tool than own the backend yourself.

Stars
★ 4.9k
Forks
⑂ 927
Contributors
👥 178
Language
TypeScript
License
MIT
Topic
Frontend
Updated
Oct 2026
Homepage
GitHub

What is SurveyJS Form Library?

SurveyJS Form Library is an open-source JavaScript library you install into a React, Angular, Vue 3, or plain-JavaScript app to render forms and surveys from a JSON schema. It runs entirely client-side — there's no SurveyJS server in the loop — so once a response is collected in the browser, sending it to a backend and storing it is your application's job, not the library's.

Core Capabilities and Integrations

  • ✓A single JSON definition controls what a form asks, how strictly it validates answers, which parts branch or hide, how users navigate between steps, and how the form looks — write it by hand, generate it with AI, or build it visually with the separate SurveyJS Creator tool.
  • ✓Native UI packages for React (survey-react-ui), Angular (survey-angular-ui), Vue 3 (survey-vue3-ui), and plain JavaScript (survey-js-ui), all written in TypeScript.
  • ✓Rules for hiding or showing fields conditionally, branching between steps, computing calculated values, and evaluating expressions drive the logic layer, alongside dynamic panels and repeating question groups for things like adding extra dependents.
  • ✓Partial submissions, auto-save, and lazy loading protect a long form's progress if a tab closes or a connection drops mid-fill.
  • ✓Over 20 built-in question types plus support for electronic signature capture, image capture, and custom question widgets you write yourself.
  • ✓No SurveyJS-run backend is required to render forms or collect responses, and the README links sample integrations covering Node.js, PHP, and ASP.NET Core.
  • ✓Theming runs through a CSS-variable design-token system with built-in themes, plus adapters covering shadcn/ui, Material UI, and Bootstrap, and community-maintained translations across 50+ languages with right-to-left layout support.
How this repository's GitHub stars have grown over time. Source: star-history.com.View the star history ↗

Building Dynamic Forms and Quizzes

  • •Multi-step onboarding or intake wizards where later fields depend on earlier answers, using branching and conditional visibility.
  • •Scored quizzes and assessments where a calculated value tallies the score as someone answers, per the README's mention of scored surveys and calculator forms.
  • •Long internal data-collection forms where auto-save and partial submissions matter because someone might close the tab halfway through.
  • •A pop-up survey or feedback widget dropped into an existing product using the plain-JavaScript package when there's no framework in play.
  • •Backoffice data-entry tools where a dropdown's choices are pulled live from a web service instead of hardcoded.

Getting Started with SurveyJS Form Library

SurveyJS Form Library ships as four separate npm packages, one per framework — install only the one you need: `npm install survey-react-ui` for React, `npm install survey-angular-ui` for Angular, `npm install survey-vue3-ui` for Vue.js (Vue 3), or `npm install survey-js-ui` for plain JavaScript. The README links a dedicated get-started guide per framework, and building from source starts with the platform-independent survey-core package before you build whichever UI package you target. Past that install command, wiring the rendered form to your own backend and storage is on you — app-level integration steps aren't covered here.

Strengths

  • ✓The core library is MIT-licensed and genuinely free — no seat count or usage cap gates the Form Library itself, per the README's licensing section.
  • ✓Native packages covering Angular, Vue 3, plain JavaScript, and React mean the same JSON form definition can move between frameworks without a rewrite.
  • ✓No SurveyJS backend is forced on you, so your response data stays in whatever database or service you already run.
  • ✓A deep feature set ships without extra purchases: 20+ question types, branching, calculated values, auto-save, and repeating question groups are all part of the base library.
  • ✓Theme adapters spanning shadcn/ui, Bootstrap, and Material UI mean forms can inherit an app's existing design system instead of looking bolted on.

Considerations for Implementation

  • △The README doesn't state pricing or licensing for Survey Creator, Dashboard, or PDF Generator — only that Survey Creator is self-hosted and has a free demo to evaluate, so budget for those separately if you need the visual builder.
  • △Nothing ships to store responses: because rendering happens client-side with no SurveyJS backend, you still have to build and host the API and database that receives submitted data.
  • △Localization for 50+ languages is community-maintained per the README, not guaranteed to be kept current by the core team for every language.
  • △Form logic — branching, validation, calculated values — lives inside SurveyJS's own JSON schema, so there's a real DSL to learn beyond writing plain HTML form markup.
  • △The README gives npm install commands but no walkthrough of wiring a rendered form into an app's data layer, so day-to-day usage beyond installation isn't documented here.

Comparing Form Building Approaches

React Hook Form — a lightweight, hook-based form state library for React only, with no built-in JSON schema format or multi-framework support.Formik — another React-only form state manager; you assemble your own field components rather than rendering from a shared JSON definition.react-jsonschema-form — renders forms from JSON Schema in React specifically, versus SurveyJS's own JSON format that also runs on plain JavaScript, Angular, and Vue 3.Typeform — a hosted, proprietary survey product you don't self-host or own the data pipeline for, unlike SurveyJS Form Library's embed-and-control-your-own-backend model.

Frequently Asked Questions

Is SurveyJS Form Library free to use?

SurveyJS Form Library is free and open source under the MIT license, per its README and the GitHub license field. The related Survey Creator and Dashboard tools are separate products whose pricing isn't stated in the README.

What JavaScript frameworks does SurveyJS Form Library support?

SurveyJS Form Library supports React, Angular, and Vue 3 through dedicated npm packages (survey-react-ui, survey-angular-ui, survey-vue3-ui), plus plain JavaScript via survey-js-ui, per the README.

Does SurveyJS Form Library require a backend server?

SurveyJS Form Library doesn't require a backend run by SurveyJS — it renders forms and collects responses entirely in the browser per the README, but you still need to send that data to your own server or database, since none ships with it.

How are forms defined and structured in SurveyJS?

SurveyJS Form Library forms come from a JSON object that bundles what's asked, how it validates, how it branches, how someone moves through it, and how it looks into one definition, according to the README. You can hand-write that JSON, generate it with AI, or build it visually with SurveyJS Creator.

Can I customize the visual appearance of forms?

SurveyJS Form Library supports visual customization through a CSS-variable design-token system and built-in themes, and the README lists theme adapters covering Material UI, shadcn/ui, and Bootstrap so forms can match an existing design system.

Does SurveyJS Form Library support multiple languages?

SurveyJS Form Library supports community-maintained localization across 50+ languages, automatic locale selection, and right-to-left layouts, per the README.

The problem it solves

Building a multi-step form with conditional branching, calculated scores, and partial-save usually means re-implementing that logic separately for whatever framework you're on, then doing it all again if the app ever moves from React to Angular or Vue. SurveyJS Form Library's answer, per the README, is to fold what a form asks, how it validates, which paths it branches down, how someone moves through it, and how it's styled into one JSON definition that framework-specific renderers read — so the form's behavior isn't locked to a single component model.

How to use

Using SurveyJS Form Library follows the same flow no matter the framework: write a SurveyJS JSON object describing the form, render it with the library, collect the response entirely in the browser, then send that JSON to your own backend and store it wherever you choose. You can hand-write that JSON definition, generate it with AI, or produce it visually with SurveyJS Creator, a separate embeddable drag-and-drop builder. Because rendering and collection both happen client-side, persistence, auth, and storage are entirely outside the library's scope.

Who should try it — and who should skip

Try SurveyJS Form Library if you're building forms or surveys inside a React, Angular, or Vue 3 app and want the logic — branching, validation, scoring — defined declaratively in JSON rather than hand-rolled in component state. Skip it if you want a hosted, no-code survey tool with a backend included: SurveyJS Form Library renders and collects responses client-side only, so you're on the hook for the API and storage layer, and a hosted product will get you moving faster if that DIY work isn't what you're after.

Related repositories

Source & attribution

Facts and quotes sourced from the surveyjs/survey-library GitHub repository and its README.

GitHub data · last synced Aug 12, 2026Reviewed by Henry
← Back to TopGit

Still deciding about survey-library?

One click hands the question to an AI along with this page — see what it says about survey-library.

GitHub