Philosophy
The core philosophy of RoundtableJS revolves around three main principles:- Modularity: The library is designed with a component-based architecture, allowing you to build complex surveys from simple, reusable parts. Alternatively, leverage our customized copilot in our cloud offering to program in natural language.
- Ease of Styling: Every aspect of your survey can be styled using intuitive CSS-like objects, giving you complete control over the look and feel of your surveys. Design is an underrated part of the survey experience that can greatly enhance data quality.
- Intuitive Timeline Management: RoundtableJS uses an asynchronous approach to page rendering, making it easy to create complex survey flows and logic. In other libraries survey logic is determined via callbacks that trigger when a page is submitted, which quickly becomes a nightmare to manage and debug.
How RoundtableJS Works
Survey Constructor
The foundation of every RoundtableJS survey is the Survey constructor. This JavaScript class is used to create new survey instances:Elements
Elements in RoundtableJS define different question types. These are also JavaScript classes, each representing a specific type of survey question or content:Pages
Pages in RoundtableJS are built out of arrays of elements. They are shown asynchronously, allowing for complex survey logic:Plugins
Plugins allow you to modify the logic or content of the survey across pages. They provide a way to add global functionality to your survey:Styling
All surveys, elements, and plugins in RoundtableJS accept an optionalstyles dictionary. This allows you to modify the CSS of any part of the survey using a JavaScript object:

