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

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
MediumEditor
The straightforward inline editor toolbar offers a selection of themes, including Mani, Roman, Flat, Bootstrap, Tim, and Beagle. There are excellent wrappers available that facilitate the integration of MediumEditor into various frameworks and technology stacks. You can dynamically incorporate one or more elements into an already established MediumEditor instance. This process involves adding the specified element or an array of elements to the editor, ensuring they are initialized with the appropriate attributes and event handlers as if they were included during the editor's initial setup. If the toolbar is active, it can be manually instructed to refresh based on the user's current selection; this includes showing or hiding the toolbar, adjusting its position, and updating the state of the toolbar buttons to be enabled or disabled. Moreover, you have the ability to reset the content of all editor elements back to their original values when they were first added, with the option to reset the content of a specific editor element if desired. This flexibility allows for a personalized editing experience tailored to the user's needs.
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