Feature rich and open source survey JavaScript library under MIT license

There are huge number of solutions for creating surveys on the web. Despite this, SurveyJS team are strongly believe that SurveyJS is the right way to go. Please take several minutes of your time to find out why SurveyJS is the right choice.

Integrate a survey into your web page

SurveyJS library has versions for several popular JavaScript frameworks: angular, jQuery, knockout, react and vue. Please follow these simple steps to integrate a survey into your web site or web page.

“product feedback” example ( knockout version )

A dozen question types

SurveyJS library has a dozen built-in question types, like a simple text or a complex matrix with different input types, and a panel (container). We have all question types you will likely need.

jquery example

Integrate your favorite JavaScript widgets

Regardless of how many question types a survey library have, there will be always something missing. All survey solutions we have seen, allows using only built-in questions and functionality. SurveyJS gives you an easy way to integrate any JavaScript widget. There are hundreds and thousands different JavaScript widgets on the web. Absolutely the most of them, you may integrate into SurveyJS using our Custom Widget support feature. It brings a truly unlimited functionality into the library.

nouislider widget

Design and Bootstrap support

All professional and commercial survey solutions come with beautiful design. Sometimes you may choose different look and feel. The most commercial survey solutions go further and allow, for example, including your own logo into your own survey. What is a big deal! Will their design match your web site design? You may be lucky if it does. Unfortunately, there is no way they will be able to create a design for all their customers. SurveyJS allows you to customize every element in the way you need. Additionally it supports Bootstrap. If your website uses bootstrap, just tell SurveyJS to render itself by using your bootstrap styles.

Markdown support

Here is another good example when an open and transparent solution beats old and closed systems. SurveyJS supports markdown. However, we do not create just another markdown library; we give you the ability to use any markdown you want. Of course, we could spend another several months of work and after that couple of years to fix all issues. We are sure, at the end, we would have a good our own markdown library. However, why should we do something that other people have already done? There are several good markdown libraries, under commercial and MIT licenses, that you may integrate into SurveyJS with 5–10 lines of code, just check out the code.

markdown by http://showdownjs.github.io

Represent Survey Model as JSON

Do you know where a typical survey solution stores your survey model? Unfortunately, it is rhetorical question. You are likely just do not know. SurveyJS is fully transparent in any aspect, including this one. SurveyJS library uses JSON to load survey model. You may use WYSIWYG SurveyJS Builder to create the survey, and then copy the created JSON into your web page directly to feed it to the SurveyJS library. Of course, you may store and then load SurveyJS JSON model in SurveyJS service or in your own storage. Survey JSON is readable and you may easily modify it by yourself or simple copy it into SurveyJS Builder and do the needed changes at any time. Finally, nothing to stop you from creating or modifying a SurveyJS Model in the code in run-time. At the end, it is just JavaScript objects.

Survey Results as JSON

As you may imagine, the SurveyJS result is a JSON as well. You may get the JSON result at any time, for example: on survey complete, on page change or value change. You may set to the SurveyJS a previously entered result or predefined data. Of course, you may get or set the value of an individual question at any moment as well.

Survey Flow

The most complex surveys need to change the survey flow. You have to change the questions, panels and pages visibility or skip some pages. SurveyJS provides you with an easy way to achieve this.

flow example

Dynamic questions

In many cases, the survey question models have to be dynamic. The data should come from different services and could not be static. SurveyJS gives you the ability to load the data from restful API without writing a single line of code. Of course, you are free to change the survey model in the code, it gives you again an unlimited possibilities.

choose values from api

Localization and Multi-languages support

We are not native English speakers ourselves and of course, we fully understand the importance of product localization. Like many other libraries, we are offering the translation of SurveyJS strings to many languages. It is created and supported by the community. However, what about multi languages support in one survey? What happens if you have to run the same survey, for example, for your English and Spanish speaking clients. Should you create two different surveys? SurveyJS has a built-in support for multi-languages. Something, you will unlikely find in the most survey solutions.

localization

Find out even more

We may continue to talk about SureyJS library functionality, like display mode (for reviewing the results), answers validation, text pre-processing, custom navigation and more. You may look at our examples and explore them by yourself. If, for some reason, you find that SurveyJS library misses a required functionality, then create an issue in the SurveyJS GitHub repo and we do our best to assist you.