
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
Highcharts, a Javascript-based charting library, makes it easy to add interactive charts and graphs to web or mobile projects of any size.
Highcharts is used by more than 80% of the 100 biggest companies in the world, as well as thousands of developers from a variety of industries, including finance, publishing, application development, and data science.
Highcharts is in active development since 2009. It remains a favorite among developers due to its robust feature set and ease-of-use documentation, accessibility features and vibrant community.
Learn more
Polymer
The Polymer library offers a robust set of functionalities for developing custom elements, streamlining the process to ensure they behave like standard DOM elements. Just like conventional DOM elements, Polymer elements can be created through a constructor or by utilizing document creation methods, and they can be configured via attributes or properties. Each instance can contain an internal DOM, adapt to changes in properties and attributes, and receive styling both from internal defaults and external sources, all while responding to methods that alter their internal state. When you register a custom element, you link a class to a specific custom element name, and the element includes lifecycle callbacks to effectively manage its various stages. Additionally, Polymer facilitates property declarations, allowing for seamless integration of your element's property API with the Polymer data system. By employing Shadow DOM, your element gains a locally scoped and encapsulated DOM tree, and Polymer can automatically generate and fill a shadow tree for your element derived from a DOM template, enhancing the modularity and reusability of your code. This combination of features not only simplifies the creation of custom elements but also ensures they integrate smoothly into the wider ecosystem of web components.
Learn more
Anime.js
Anime.js is a nimble JavaScript animation library that features an intuitive yet robust API. It seamlessly integrates with CSS properties, SVG, DOM attributes, and JavaScript Objects, enabling effortless animation creation. The library simplifies the process of intricate follow-through animations with its built-in staggering system. Users can animate multiple CSS transform properties at varying timings on a single HTML element, allowing for dynamic visual effects. The library offers comprehensive controls, enabling users to play, pause, reverse, and trigger events in a synchronized manner through its extensive callback and control functionalities. Anime.js can be utilized across all web platforms, supporting CSS, SVG, DOM attributes, and JavaScript Objects through a unified API. The staggering feature empowers users to create animations involving multiple elements with overlapping and follow-through actions, enhancing the complexity and richness of animations. Keyframes for animations are defined using an array within the keyframes property, where the duration of each keyframe is calculated by dividing the total animation duration by the number of keyframes specified. This approach ensures that each segment of the animation is precisely timed, providing a polished final product.
Learn more