
SurveyJS is a set of four open-source JavaScript libraries that offer the benefits of a tailor-made in-house survey application, while considerably reducing the time and resources needed to deploy the system. These libraries are independent of specific server code or database requirements and seamlessly integrate with popular JavaScript frameworks, including React, Angular, Vue.js, jQuery, Knockout, and more. They are designed to communicate with any server that can handle JSON requests, ensuring compatibility with various server architectures and databases.
The product family is composed of:
- An open-source MIT-licensed rendering library that renders dynamic JSON-based forms in your web application, and collects responses.
- A self-hosted drag & drop form builder that features an integrated CSS-based theme editor and a GUI for conditional rules. It automatically generates JSON definitions (schemas) of your forms in real time.
- PDF Generator, a library that renders SurveyJS surveys and forms as PDF files in a browser;
- The Dashboard library that allows you to simplify survey data analysis with interactive and customizable charts and tables.
Visit our website to try out and evaluate our full-scale demo for free.
Learn more

Nutrient provides an extensive solution for all your PDF requirements, delivering tools that seamlessly operate PDF features across any platform.
1. SDK: Incorporate advanced PDF functionality into iOS, Android, Windows, web, or any cross-platform technology, supplying abilities like PDF viewing, annotation, collaboration, and beyond.
2. Libraries: Employ our powerful .NET and Java libraries to enhance your backend applications with batch processing of redactions and PDF forms, OCR'd scanned text, and PDF document editing, all directly from your application server.
3. Processor: Our agile PDF microservice, Processor, enables rapid generation of PDFs from HTML, including HTML forms, as well as Office-to-PDF conversions, OCR, redaction, and XFDF combining and exporting.
4. PDF API: Take advantage of our hosted PDF API to generate, convert, and alter PDF documents in your workflows. We handle the development and server management, freeing you up to concentrate on your business.
At Nutrient, we're not just a tool; we're a committed ally in your success. Gain direct contact with our engineers for expert guidance, utilize comprehensive examples to simplify integration, and make the most of our top-tier documentation.
Learn more
C++
C++ is known for its straightforward and lucid syntax. While a novice programmer might find C++ somewhat more obscure than other languages due to its frequent use of special symbols (like {}[]*&!|...), understanding these symbols can actually enhance clarity and structure, making it more organized than languages that depend heavily on verbose English syntax. Additionally, the input/output system of C++ has been streamlined compared to C, and the inclusion of the standard template library facilitates data handling and communication, making it as user-friendly as other programming languages without sacrificing functionality. This language embraces an object-oriented programming paradigm, viewing software components as individual objects with distinct properties and behaviors, which serves to enhance or even replace the traditional structured programming approach that primarily centered around procedures and parameters. Ultimately, this focus on objects allows for greater flexibility and scalability in software development.
Learn more
Java
The Java™ Programming Language is designed as a versatile, concurrent, and strongly typed object-oriented language that utilizes a class-based structure. Typically, it is translated into bytecode that adheres to the specifications laid out in the Java Virtual Machine Specification. In this language, developers write source code in standard text files that conclude with the .java suffix. These source files are subsequently transformed into .class files through the use of the javac compiler. Unlike native processor code, a .class file comprises bytecodes, which serve as the machine language understood by the Java Virtual Machine (Java VM). To execute an application, the java launcher tool creates an instance of the Java Virtual Machine, allowing the compiled bytecode to run seamlessly. This process exemplifies the efficiency and portability that Java offers across various computing environments.
Learn more