survey-library is a free, open source forms & surveys project written in TypeScript and released under MIT. It has 4,870 GitHub stars, 927 forks and 470 open issues, and was last pushed 7 hours ago. On this registry it ranks #3 of 12 tracked projects in Forms & Surveys, with 5 head-to-head comparisons available.

What is survey-library?

SurveyJS Form Library is a free, MIT-licensed JavaScript form library that renders dynamic, JSON-defined forms and surveys inside React, Angular, Vue, and plain JavaScript applications, and it is built for front-end developers and product teams who need data-entry tools without handing form definitions or submitted responses to a hosted service.

What it is

SurveyJS Form Library is an open-source JavaScript and TypeScript form library that renders dynamic, JSON-based forms and surveys in the browser. Form content and structure, validation rules, conditional logic, navigation, and appearance are all defined through a SurveyJS JSON form definition, so a form is data rather than hand-written markup and component code. The library runs entirely in the browser and collects responses there, then lets the application send submitted data to any backend or database the team already operates.

The concrete problem it solves is the repetitive, brittle work of building and maintaining forms and surveys by hand in each front-end framework, and of depending on a hosted survey service to hold the form logic and the responses. SurveyJS Form Library replaces that hand-built form code and the hosted intermediate with a framework-independent form engine driven by JSON. It lives in the JavaScript and TypeScript ecosystem and publishes separate rendering packages for React, Angular, Vue 3, and plain JavaScript, so the same form definition can be rendered across differently built applications while the application keeps ownership of definitions, responses, and storage.

Key capabilities

  • Renders forms and surveys from a SurveyJS JSON form definition, where form content and structure, validation, conditional logic, navigation, and appearance are all declared in JSON.
  • Ships framework-specific rendering packages — survey-react-ui, survey-angular-ui, survey-vue3-ui, and survey-js-ui — that render the shared survey-core model.
  • Separates form logic from rendering: survey-core carries the form model, validation, conditional logic, calculations, navigation, and localization, and installing a rendering package brings survey-core with it.
  • Supports multi-step forms, quizzes, scored surveys, calculator forms, and survey pop-ups.
  • Handles conditional visibility, branching, calculated values, and expression-based logic.
  • Provides input validation, partial submissions, auto-save, and lazy loading.
  • Supports dynamic panels, repeating question groups, carry-forward responses, text piping, and multiple navigation modes for long and complex forms.

Who uses it and how

  • Teams embedding forms directly in a React, Angular, or Vue 3 application, where a rendering package is installed and the form is rendered from a JSON definition loaded or created in the app.
  • Plain JavaScript and jQuery pages that need data-entry forms without adopting a component framework, using survey-js-ui.
  • Product and research teams building multi-step forms, quizzes, scored surveys, calculator forms, and pop-up surveys from one shared JSON definition.
  • Organisations that collect responses in the browser and send the submitted data to their own backend, storing it in the database or service of their choice, with no SurveyJS backend required.
  • Teams that author definitions visually with the embeddable drag-and-drop SurveyJS Creator form builder, generate them with AI, or write them manually.

Getting started

Install the package for the target framework: npm install survey-react-ui, npm install survey-angular-ui, npm install survey-vue3-ui, or npm install survey-js-ui. Each framework also has a setup guide, and the library requires no SurveyJS backend.

How it compares

The facts provided name no paid products that this project replaces, and they name no directly comparable open-source form libraries. On the record available, SurveyJS Form Library stands alone in this registry: an MIT-licensed, self-hosted form rendering engine rather than a hosted survey product.

When to use it — and when not to

A self-hoster must supply the application that renders the form and the backend and database that receive and store submitted responses, because the library collects data in the browser and has no SurveyJS backend of its own. Teams that want a fully managed service holding the responses, or that expect the library to provide storage and reporting out of the box, should not pick it. The open issue count of 470 is high for a project of this size, and the README is thin on deployment and operational guidance, so teams should weigh issue backlog and support expectations before adopting it for critical data-entry flows.

project readme (upstream, from github) — read inline
banner_form_library

Build Status Software License Tested with Playwright Issues Closed issues GitHub Release

SurveyJS Form Library

SurveyJS Form Library is a free and open-source JavaScript form library for rendering dynamic, JSON-based forms and surveys in React, Angular, Vue, and plain JavaScript applications. It collects responses in the browser and lets you send submitted data to any backend or database.

Use it to build complex multi-step forms, pop-up surveys, quizzes, scored surveys, calculator forms, and other data-entry tools. Form content and structure, validation, conditional logic, navigation, and appearance are defined through a SurveyJS JSON form definition.

You can create form definitions manually, generate them with AI, or build them visually with SurveyJS Creator, an embeddable drag-and-drop form builder.


Documentation · Setup Guides for My Stack · Form Library Demos · Theme Adapters · Store Survey Results · Report Bug


https://github.com/surveyjs/survey-library/assets/102306951/844563b2-c7c3-400c-962f-bcdbe7274d55

How It Works

SurveyJS Form Library renders forms from JSON definitions directly in your web application. It runs in the browser and does not require a SurveyJS backend, so you retain control over form definitions, submitted responses, and data storage.

Your application can:

  1. Create or load a SurveyJS JSON form definition.
  2. Render it with SurveyJS Form Library.
  3. Collect responses in the browser.
  4. Send submitted data to your backend.
  5. Store it in the database or service of your choice.

Installation

Choose the package for your framework:

React Form Library

npm install survey-react-ui

Get Started with Form Library for React

Angular Form Library

npm install survey-angular-ui

Get Started with Form Library for Angular

Vue.js Form Library

npm install survey-vue3-ui

Get Started with Form Library for Vue.js

Plain JavaScript Form Library

npm install survey-js-ui

Get Started with Form Library for Plain JavaScript

Package Architecture

SurveyJS Form Library separates form logic from rendering. The framework-independent survey-core package provides the form model, validation, conditional logic, calculations, navigation, localization, and other core behavior. Framework-specific packages such as survey-react-ui, survey-angular-ui, and survey-vue3-ui render that model in React, Angular, and Vue 3 applications. Installing a rendering package brings survey-core with it.

Key Features

Dynamic Forms and Surveys

  • Multi-step forms, quizzes, scored surveys, calculator forms, and survey pop-ups
  • Conditional visibility, branching, calculated values, and expression-based logic
  • Input validation, partial submissions, auto-save, and lazy loading
  • Dynamic panels, repeating question groups, carry-forward responses, and text piping
  • Multiple navigation modes for long and complex forms

Multi-Framework Support

  • Dedicated Form Library rendering packages for React, Angular, Vue 3, and plain JavaScript
  • TypeScript support
  • Client-side rendering with no required SurveyJS backend

Data and Backend Integration

Form Controls

Localization and Accessibility

  • Community-supported localization for 50+ languages
  • Multi-language forms and automatic locale selection
  • Right-to-left language support
  • Accessible input controls and keyboard navigation

Appearance and UI Customization

  • Shared design token system based on CSS variables
  • Built-in themes with support for custom branding
  • Theme Adapters for Bootstrap, Material UI, and shadcn/ui
  • Custom question rendering and reusable UI components
  • Configurable layouts, navigation controls, validation messages, and form behavior

Resources

SurveyJS Product Family

  • Form Library - A free and open-source MIT-licensed JavaScript library that renders dynamic JSON-based forms in your web application, and collects responses.
  • Survey Creator - An embeddable drag-and-drop form builder that generates SurveyJS JSON form definitions. Try out a free full-featured demo to evaluate its capabilities.
  • Dashboard - Simplifies survey data visualization and analysis with interactive and customizable charts and tables.
  • PDF Generator - Renders SurveyJS surveys and forms as PDF files in a browser. Save custom forms to PDF (both editable and read-only).
  • AI Form Response Extractor - A free and open-source MIT-licensed JavaScript library that extracts responses from paper forms, PDFs, and images, maps them to the SurveyJS schema, and produces a unified response object that can be stored and processed alongside online submissions. (ai-form-response-extractor).

Build from Source

  1. Build the platform-independent part

  2. **Build one o

readme truncated — read the full docs on github

Frequently asked questions

Is survey-library free to use?

survey-library is open source under the MIT licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does survey-library do?

Open-source JavaScript form library for React, Angular, Vue, and plain JavaScript. Render dynamic JSON-driven forms, multi-step form wizards, surveys, quizzes,

What is survey-library written in?

survey-library is primarily written in TypeScript. Its source is publicly available at https://github.com/surveyjs/survey-library, and it has 4,870 GitHub stars.