Try SurveyJS

A robust full-cycle
survey and form solution
for your JavaScript application.

SurveyJS Form Library

A free and open-source MIT-licensed JavaScript library that renders dynamic JSON-based forms in your web application, and collects responses.

const surveyJson = {
  // ...
};

const survey = new Survey.Model(surveyJson);

document.addEventListener("DOMContentLoaded", function() {
  ko.applyBindings({
    model: survey
  });
});

//-----------------------------------------------
// <survey params="survey: model"></survey>
//-----------------------------------------------
                

Survey Creator

A self-hosted drag-and-drop form builder that automatically generates JSON definition (schemas) of your forms in real time. Create and easily modify forms in-house. Try out a free demo built to evaluate the capabilities of the Survey Creator library.

const creatorOptions = {
  // ...
};

const creator = new SurveyCreator.SurveyCreator(creatorOptions);

document.addEventListener("DOMContentLoaded", function () {
  creator.render("surveyCreator");
});
        

SurveyJS Dashboard

Simplifies survey data analysis with interactive and customizable charts and tables. Visualize your insights with the survey data dashboard and analyze survey results in one view.

const surveyJson = {
  // ...
};

const survey = new Survey.Model(json);
const allQuestions = survey.getAllQuestions();
const node = document.getElementById("survey-dashboard");

fetch("https://www.example.com/survey-results/")
  .then(response => response.json())
  .then(data => {
    const vizPanel = new SurveyAnalytics.VisualizationPanel(
      allQuestions,
      data
    );
    vizPanel.render(node);
});
                

SurveyJS PDF Generator

An open-source JavaScript library that renders SurveyJS surveys and forms as PDF files in a browser. With PDF Generator you can save an unlimited number of custom-built forms to PDF (both editable and read-only). Make custom PDF files from your e-forms, share them and go paperless.

import { SurveyPDF } from "survey-pdf";

function prepareSurveyPDF() {
  const surveyPDF = new SurveyPDF(json);
  surveyPDF.data = survey.data;
  return surveyPDF;
}
function savePdfAsFile() {
  const surveyPDF = prepareSurveyPDF();
  surveyPDF.save("surveyAsFile.pdf");
}
function savePdfAsBlob() {
  const surveyPDF = prepareSurveyPDF();
  surveyPDF
    .raw("bloburl")
    .then(function (bloburl) {
      const a = document.createElement("a");
      a.href = bloburl;
      a.download = "surveyAsBlob.pdf";
      document.body.appendChild(a);
      a.click();
    });
}
function previewPdf() {
  const surveyPDF = prepareSurveyPDF();
  const oldFrame = document.getElementById("pdf-preview-frame");
  if (oldFrame)
    oldFrame.parentNode.removeChild(oldFrame);
  surveyPDF
    .raw("dataurlstring")
    .then(function (dataurl) {
      const pdfEmbed = document.createElement("embed");
      pdfEmbed.setAttribute("id", "pdf-preview-frame");
      pdfEmbed.setAttribute("type", "application/pdf");
      pdfEmbed.setAttribute("style", "width:100%");
      pdfEmbed.setAttribute("height", 200);
      pdfEmbed.setAttribute("src", dataurl);
      const previewDiv = document.getElementById("pdf-preview");
      previewDiv.appendChild(pdfEmbed);
  });
}
                

Survey management system examples

You can use SurveyJS components to build a full-cycle survey management system integrated with your backend. Your users will be able to create, modify, and run surveys, collect survey results, and analyze them using visualization tools. View examples of such systems for most popular backend frameworks and CMS:

SurveyJS gives you total freedom as to the backend. Intergate SurveyJS with Node.js.
NodeJS
SurveyJS gives you total freedom as to the backend. Intergate SurveyJS with .NET Core.
ASP.NET MVC
SurveyJS gives you total freedom as to the backend. Intergate SurveyJS with WordPress.
WordPress

If you want to learn more about how SurveyJS libraries interact with the server and integrate with your backend, refer to the following help topic: Integrate SurveyJS Libraries with Backend .

Your cookie settings

We use cookies on our site to make your browsing experience more convenient and personal. In some cases, they are essential to making the site work properly. By clicking "Accept All", you consent to the use of all cookies in accordance with our Terms of Use & Privacy Statement. However, you may visit "Cookie settings" to provide a controlled consent.

Your renewal subscription expires soon.

Since the license is perpetual, you will still have permanent access to the product versions released within the first 12 month of the original purchase date.

If you wish to continue receiving technical support from our Help Desk specialists and maintain access to the latest product updates, make sure to renew your subscription by clicking the "Renew" button below.

Your renewal subscription has expired.

Since the license is perpetual, you will still have permanent access to the product versions released within the first 12 month of the original purchase date.

If you wish to continue receiving technical support from our Help Desk specialists and maintain access to the latest product updates, make sure to renew your subscription by clicking the "Renew" button below.