{"id":13422423,"url":"https://github.com/surveyjs/survey-library","last_synced_at":"2026-10-19T00:07:03.386Z","repository":{"id":36400427,"uuid":"40705341","full_name":"surveyjs/survey-library","owner":"surveyjs","description":"Open-source JavaScript form library for React, Angular, Vue, and plain JavaScript. Render dynamic JSON-driven forms, multi-step form wizards, surveys, quizzes, and other data-entry tools.","archived":false,"fork":false,"pushed_at":"2026-10-15T12:28:40.000Z","size":340176,"stargazers_count":4903,"open_issues_count":454,"forks_count":927,"subscribers_count":71,"default_branch":"master","last_synced_at":"2026-10-15T13:43:50.868Z","etag":null,"topics":["angular","dynamic-form-builder","form","form-builder","form-library","forms","javascript","jquery","json","questionnaire","quiz","react","reactjs","survey","surveyjs","surveys","typescript","vue","vue3","web-forms"],"latest_commit_sha":null,"homepage":"https://surveyjs.io/form-library","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"xuxueli/xxl-job","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/surveyjs.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"accessibility":"accessibilityTests/buttongroup.spec.ts","support":"docs/supported-browsers.md","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"claude":"CLAUDE.md","gemini":null,"cursor":null,"copilot":".github/copilot-instructions.md","dco":null,"cla":null,"disclosure":null}},"created_at":"2015-08-14T08:53:22.000Z","updated_at":"2026-10-15T11:36:04.000Z","dependencies_parsed_at":"2026-10-15T13:43:51.558Z","dependency_job_id":null,"html_url":"https://github.com/surveyjs/survey-library","commit_stats":{"total_commits":10879,"total_committers":167,"mean_commits":65.1437125748503,"dds":0.6907804026105341,"last_synced_commit":"18f2790b8ed459028b8a010e47a7e5688ae90462"},"previous_names":["surveyjs/surveyjs","andrewtelnov/surveyjs"],"tags_count":673,"template":false,"template_full_name":null,"purl":"pkg:github/surveyjs/survey-library","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/surveyjs%2Fsurvey-library","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/surveyjs%2Fsurvey-library/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/surveyjs%2Fsurvey-library/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/surveyjs%2Fsurvey-library/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/surveyjs","download_url":"https://codeload.github.com/surveyjs/survey-library/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/surveyjs%2Fsurvey-library/sbom","scorecard":{"id":112598,"data":{"date":"2025-08-04","repo":{"name":"github.com/surveyjs/survey-library","commit":"0a9ac86e50e1ca43c2f9c2e50bdb0a608503d4ad"},"scorecard":{"version":"v5.2.1-28-gc1d103a9","commit":"c1d103a9bb9f635ec7260bf9aa0699466fa4be0e"},"score":5.5,"checks":[{"name":"Maintained","score":10,"reason":"30 commit(s) and 4 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#maintained"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#packaging"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#dangerous-workflow"}},{"name":"Code-Review","score":5,"reason":"Found 16/30 approved changesets -- score normalized to 5","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/node16.yml:1","Warn: no topLevel permission defined: .github/workflows/node18.yml:1","Warn: no topLevel permission defined: .github/workflows/tagged-release.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#cii-best-practices"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#binary-artifacts"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#vulnerabilities"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#license"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#branch-protection"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v2.3.1 not signed: https://api.github.com/repos/surveyjs/survey-library/releases/237967323","Warn: release artifact v2.3.0 not signed: https://api.github.com/repos/surveyjs/survey-library/releases/236344826","Warn: release artifact v2.2.6 not signed: https://api.github.com/repos/surveyjs/survey-library/releases/234224611","Warn: release artifact v2.2.5 not signed: https://api.github.com/repos/surveyjs/survey-library/releases/232559992","Warn: release artifact v2.2.4 not signed: https://api.github.com/repos/surveyjs/survey-library/releases/231058594","Warn: release artifact v2.3.1 does not have provenance: https://api.github.com/repos/surveyjs/survey-library/releases/237967323","Warn: release artifact v2.3.0 does not have provenance: https://api.github.com/repos/surveyjs/survey-library/releases/236344826","Warn: release artifact v2.2.6 does not have provenance: https://api.github.com/repos/surveyjs/survey-library/releases/234224611","Warn: release artifact v2.2.5 does not have provenance: https://api.github.com/repos/surveyjs/survey-library/releases/232559992","Warn: release artifact v2.2.4 does not have provenance: https://api.github.com/repos/surveyjs/survey-library/releases/231058594"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#signed-releases"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#security-policy"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/node16.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/surveyjs/survey-library/node16.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/node16.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/surveyjs/survey-library/node16.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/node18.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/surveyjs/survey-library/node18.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/node18.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/surveyjs/survey-library/node18.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tagged-release.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/surveyjs/survey-library/tagged-release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tagged-release.yml:23: update your workflow using https://app.stepsecurity.io/secureworkflow/surveyjs/survey-library/tagged-release.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tagged-release.yml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/surveyjs/survey-library/tagged-release.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tagged-release.yml:45: update your workflow using https://app.stepsecurity.io/secureworkflow/surveyjs/survey-library/tagged-release.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tagged-release.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/surveyjs/survey-library/tagged-release.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tagged-release.yml:67: update your workflow using https://app.stepsecurity.io/secureworkflow/surveyjs/survey-library/tagged-release.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tagged-release.yml:72: update your workflow using https://app.stepsecurity.io/secureworkflow/surveyjs/survey-library/tagged-release.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tagged-release.yml:93: update your workflow using https://app.stepsecurity.io/secureworkflow/surveyjs/survey-library/tagged-release.yml/master?enable=pin","Warn: npmCommand not pinned by hash: .github/workflows/node16.yml:26","Warn: npmCommand not pinned by hash: .github/workflows/node16.yml:32","Warn: npmCommand not pinned by hash: .github/workflows/node16.yml:38","Warn: npmCommand not pinned by hash: .github/workflows/node16.yml:44","Warn: npmCommand not pinned by hash: .github/workflows/node16.yml:50","Warn: npmCommand not pinned by hash: .github/workflows/node18.yml:26","Warn: npmCommand not pinned by hash: .github/workflows/node18.yml:32","Warn: npmCommand not pinned by hash: .github/workflows/node18.yml:38","Warn: npmCommand not pinned by hash: .github/workflows/node18.yml:44","Warn: npmCommand not pinned by hash: .github/workflows/node18.yml:50","Warn: npmCommand not pinned by hash: .github/workflows/tagged-release.yml:30","Warn: npmCommand not pinned by hash: .github/workflows/tagged-release.yml:41","Warn: npmCommand not pinned by hash: .github/workflows/tagged-release.yml:52","Warn: npmCommand not pinned by hash: .github/workflows/tagged-release.yml:63","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   6 third-party GitHubAction dependencies pinned","Info:   0 out of  14 npmCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#pinned-dependencies"}},{"name":"SAST","score":10,"reason":"SAST tool is run on all commits","details":["Info: all commits (16) are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#sast"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#fuzzing"}}]},"last_synced_at":"2025-08-15T13:19:51.886Z","repository_id":36400427,"created_at":"2025-08-15T13:19:51.886Z","updated_at":"2025-08-15T13:19:51.886Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":344872684,"owners_count":38343427,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-10-03T21:59:58.778Z","status":"online","status_checked_at":"2026-10-18T02:00:06.448Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["angular","dynamic-form-builder","form","form-builder","form-library","forms","javascript","jquery","json","questionnaire","quiz","react","reactjs","survey","surveyjs","surveys","typescript","vue","vue3","web-forms"],"created_at":"2024-07-30T23:00:44.434Z","updated_at":"2026-10-19T00:07:03.378Z","avatar_url":"https://github.com/surveyjs.png","language":"TypeScript","funding_links":[],"categories":["Code Design","Input Components","TypeScript","UI Components","Misc","angular","Digital Health Infrastructure"],"sub_categories":["Form Logic","Form Components","Other","Patient Portals \u0026 Intake"],"readme":"\u003cdiv align=\"center\"\u003e\n    \n\u003cimg width=\"1200\" height=\"600\" alt=\"banner_form_library\" src=\"https://github.com/user-attachments/assets/71d43a86-942b-4de9-9948-1ab05ec70e8c\" /\u003e\n    \n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\u003cbr\u003e\n\n[![Build Status](https://dev.azure.com/SurveyJS/V2%20Libraries/_apis/build/status%2Flibrary%2FLibrary%20Main?repoName=surveyjs%2Fsurvey-library\u0026branchName=master)](https://dev.azure.com/SurveyJS/V2%20Libraries/_build/latest?definitionId=130\u0026repoName=surveyjs%2Fsurvey-library\u0026branchName=master)\n[![Software License](https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat)](LICENSE)\n\u003ca href=\"https://github.com/microsoft/playwright\"\u003e\n\u003cimg alt=\"Tested with Playwright\" src=\"https://img.shields.io/badge/tested%20with-Playwright-2fa4cf.svg\"\u003e\n\u003c/a\u003e\n\u003ca href=\"https://github.com/surveyjs/survey-library/issues\"\u003e\n\u003cimg alt=\"Issues\" title=\"Open Issues\" src=\"https://img.shields.io/github/issues/surveyjs/survey-library.svg\"\u003e\n\u003c/a\u003e\n\u003ca href=\"https://github.com/surveyjs/survey-library/issues?utf8=%E2%9C%93\u0026q=is%3Aissue+is%3Aclosed+\"\u003e\n\u003cimg alt=\"Closed issues\" title=\"Closed Issues\" src=\"https://img.shields.io/github/issues-closed/surveyjs/survey-library.svg\"\u003e\n\u003c/a\u003e\n\u003ca href=\"https://surveyjs.io/stay-updated/release-notes\"\u003e\n\u003cimg alt=\"GitHub Release\" src=\"https://img.shields.io/github/v/release/surveyjs/survey-library\"\u003e\n\u003c/a\u003e\n    \n# SurveyJS Form Library\n\n\u003c/div\u003e\n\n\u003cdiv align=\"justify\"\u003e\n\nSurveyJS 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.\n\nUse 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.\n\nYou can create form definitions manually, generate them with AI, or build them visually with [SurveyJS Creator](https://surveyjs.io/survey-creator/documentation/overview), an embeddable drag-and-drop form builder.\n\n\u003c/div\u003e\n\u003cbr\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://surveyjs.io/form-library/documentation/overview\"\u003eDocumentation\u003c/a\u003e\n    ·\n    \u003ca href=\"https://surveyjs.io/find-surveyjs-guides-for-my-stack\"\u003eSetup Guides for My Stack\u003c/a\u003e\n    ·\n    \u003ca href=\"https://surveyjs.io/form-library/examples/overview\"\u003eForm Library Demos\u003c/a\u003e\n    ·\n    \u003ca href=\"https://surveyjs.io/themes/theme-adapters\"\u003eTheme Adapters\u003c/a\u003e\n    ·\n    \u003ca href=\"https://surveyjs.io/form-library/documentation/how-to-store-survey-results\"\u003eStore Survey Results\u003c/a\u003e\n    ·\n    \u003ca href=\"https://github.com/surveyjs/survey-library/issues/new\"\u003eReport Bug\u003c/a\u003e\n  \u003c/p\u003e\n  \n\u003cbr\u003e\n\nhttps://github.com/surveyjs/survey-library/assets/102306951/844563b2-c7c3-400c-962f-bcdbe7274d55\n\n## How It Works\n\nSurveyJS 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.\n\nYour application can:\n\n1. Create or load a SurveyJS JSON form definition.\n2. Render it with SurveyJS Form Library.\n3. Collect responses in the browser.\n4. Send submitted data to your backend.\n5. Store it in the database or service of your choice.\n   \n## Installation\n\nChoose the package for your framework:\n\n### React Form Library\n\n```bash\nnpm install survey-react-ui\n```\n[Get Started with Form Library for React](https://surveyjs.io/form-library/documentation/get-started-react)\n\n### Angular Form Library\n\n```bash\nnpm install survey-angular-ui\n```\n[Get Started with Form Library for Angular](https://surveyjs.io/form-library/documentation/get-started-angular)\n\n### Vue.js Form Library\n\n```bash\nnpm install survey-vue3-ui\n```\n[Get Started with Form Library for Vue.js](https://surveyjs.io/form-library/documentation/get-started-vue)\n\n### Plain JavaScript Form Library\n\n```bash\nnpm install survey-js-ui\n```\n[Get Started with Form Library for Plain JavaScript](https://surveyjs.io/form-library/documentation/get-started-html-css-javascript)\n\n## Package Architecture\n\nSurveyJS Form Library separates form logic from rendering. The framework-independent [`survey-core`](https://github.com/surveyjs/survey-library/tree/master/packages/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`](https://github.com/surveyjs/survey-library/tree/master/packages/survey-react-ui), [`survey-angular-ui`](https://github.com/surveyjs/survey-library/tree/master/packages/survey-angular-ui), and [`survey-vue3-ui`](https://github.com/surveyjs/survey-library/tree/master/packages/survey-vue3-ui) render that model in React, Angular, and Vue 3 applications. Installing a rendering package brings `survey-core` with it.\n\n## Key Features\n\n### Dynamic Forms and Surveys\n\n- Multi-step forms, quizzes, scored surveys, calculator forms, and survey pop-ups\n- Conditional visibility, branching, calculated values, and expression-based logic\n- Input validation, [partial submissions](https://surveyjs.io/form-library/examples/save-and-restore-user-responses-to-complete-survey/reactjs), auto-save, and lazy loading\n- Dynamic panels, repeating question groups, carry-forward responses, and text piping\n- Multiple navigation modes for long and complex forms\n\n### Multi-Framework Support\n\n- Dedicated Form Library rendering packages for React, Angular, Vue 3, and plain JavaScript\n- TypeScript support\n- Client-side rendering with no required SurveyJS backend\n\n### Data and Backend Integration\n\n- [Connect to any server, API, or database](https://surveyjs.io/documentation/backend-integration)\n- Store form definitions and submitted responses in your own infrastructure\n- [Load choices from web services](https://surveyjs.io/form-library/examples/dropdown-menu-load-data-from-restful-service/reactjs)\n- Integrate with third-party libraries, payment systems, and custom backend workflows\n- [Backend integration examples for PHP, ASP.NET Core, and Node.js](https://surveyjs.io/backend-integration/examples)\n\n### Form Controls\n\n- 20+ built-in question and input types\n- [Custom question types and input components](https://surveyjs.io/form-library/documentation/customize-question-types/question-customization-options)\n- Electronic signature and image capture\n- Reusable composite questions and third-party widgets\n\n### Localization and Accessibility\n\n- Community-supported localization for 50+ languages\n- Multi-language forms and automatic locale selection\n- Right-to-left language support\n- Accessible input controls and keyboard navigation\n\n### Appearance and UI Customization\n\n- Shared design token system based on CSS variables\n- Built-in themes with support for custom branding\n- [Theme Adapters for Bootstrap, Material UI, and shadcn/ui](https://surveyjs.io/themes/theme-adapters)\n- Custom question rendering and reusable UI components\n- Configurable layouts, navigation controls, validation messages, and form behavior\n\n## Resources\n\n- [Website](https://surveyjs.io/)\n- [Documentation](https://surveyjs.io/form-library/documentation/overview)\n- [Full-Featured Demo](https://surveyjs.io/create-free-survey)\n- [Release Notes](https://surveyjs.io/stay-updated/release-notes)\n- [Roadmap](https://surveyjs.io/stay-updated/roadmap)\n- [What's New](https://surveyjs.io/stay-updated/major-updates/2025-2026)\n\n## SurveyJS Product Family\n\n- [Form Library](https://surveyjs.io/form-library/documentation/overview) - A free and open-source MIT-licensed JavaScript library that renders dynamic JSON-based forms in your web application, and collects responses.\n- [Survey Creator](https://surveyjs.io/survey-creator/documentation/overview) - An embeddable drag-and-drop form builder that generates SurveyJS JSON form definitions. Try out a [free full-featured demo](https://surveyjs.io/create-free-survey) to evaluate its capabilities.\n- [Dashboard](https://surveyjs.io/dashboard/documentation/overview) - Simplifies survey data visualization and analysis with interactive and customizable charts and tables.\n- [PDF Generator](https://surveyjs.io/pdf-generator/documentation/overview) - Renders SurveyJS surveys and forms as PDF files in a browser. Save custom forms to PDF (both editable and read-only).\n- [AI Form Response Extractor](https://surveyjs.io/documentation/combine-paper-and-online-survey-form-data) - 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`).\n\n## Build from Source\n\n1. [**Build the platform-independent part**](./packages/survey-core/README.md#survey-model-platform-independent-part)\n\n2. **Build one of the UI packages**\n\n   - [Angular Form Library](./packages/survey-angular-ui/README.md#build-surveyjs-angular-form-library-from-sources)\n   - [React Form Library](./packages/survey-react-ui/README.md#build-surveyjs-react-form-library-from-sources)\n   - [Vue Form Library](./packages/survey-vue3-ui/README.md#build-surveyjs-vue-form-library-from-sources)\n   - [HTML/CSS/JS Form Library](./packages/survey-js-ui/README.md#build-surveyjs-form-library-ui-from-sources)\n\n## Licensing\n\nSurveyJS Form Library is distributed under the [MIT license](https://github.com/surveyjs/survey-library/blob/master/LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsurveyjs%2Fsurvey-library","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsurveyjs%2Fsurvey-library","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsurveyjs%2Fsurvey-library/lists"}