compare

qnot vs Syncfusion Query Builder

Syncfusion's Query Builder is a polished commercial component in a large suite. qnot is a single MIT library: free for everyone, typed from your schema, with more export formats, and fast at a thousand rules. Saved rules convert with one small function.

@syncfusion/ej2-querybuilder 35.1 · Commercial or community

licenseqnot: MITSyncfusion QueryBuilder: Commercial or community
first render, 1,000 rulesqnot: 117 msSyncfusion QueryBuilder: 6,491 ms
keystroke, 1,000 rulesqnot: 0.4 msSyncfusion QueryBuilder: 10.2 ms
JS, gzippedqnot: 25.7 KBSyncfusion QueryBuilder: 308 KB

Feature by feature.

What each library does out of the box, from its docs, its package contents and our own harness. Where it says no, an add-on or your own code may still get you there.
Features of qnot and Syncfusion QueryBuilder
featureqnotSyncfusion QueryBuilder
LicenseMIT, for everyone (qnot ahead)Commercial, or free community license under $1M revenue and 5 developers
FrameworksReact, Vue, Svelte, Solid, plain DOMJavaScript, Angular, React, Vue; Blazor and ASP.NET versions
Part of a suiteNo, one libraryYes: grids, charts, schedulers and more, one theme (Syncfusion QueryBuilder ahead)
SQLExport in five dialects with bound params; import of WHERE clausesExport and import, plus parameterized and named-parameter SQL
MongoDBExport and importExport and import
Also exportsJsonLogic, Elasticsearch, SpEL, plain English (qnot ahead)Not built in
Drag and dropBuilt inYes (allowDragAndDrop)
NOT, read-only, limitsYesYes (enableNotCondition, readonly, maxGroupCount)
Undo and redoBuilt into the store (qnot ahead)Not built in
Typed rule valuesNarrowed by field and operator from the schema (qnot ahead)A union of primitives, not tied to the field
Evaluate in JScompile() / matches() on any array, browser or servergetPredicate() for filtering through its DataManager
SupportGitHub issuesCommercial support with a license (Syncfusion QueryBuilder ahead)
First render, 1,000 rules117 ms (qnot ahead)6,491 ms

Measured at 1,000 rules.

Syncfusion's component is plain JavaScript, so it runs against qnot's framework-free build; the React build is listed too. At 100 rules Syncfusion renders in 277 ms, at 1,000 in 6,491 ms. It ran unlicensed, with its trial banner showing; behavior is otherwise the same.

Run of 2026-10-19: Apple M5, Chromium 156 via Playwright 1.64, production builds, no CPU throttling. Medians of fresh pages (5 to 9 per size); the tree is 10 fields in groups of 10 rules. JS is gzipped and excludes React for React libraries (jQuery is included). Lower is better. Syncfusion QueryBuilder takes 55× as long to render. The harness, its method and every size.

When Syncfusion QueryBuilder is the better choice.

An honest list. If one of these is you, Syncfusion QueryBuilder may serve you better.
  • You already license Syncfusion Essential Studio. The query builder comes with it, themed like the grid, charts and schedulers you use.
  • You build with Angular, Blazor or ASP.NET. qnot has no binding for them.
  • You want a vendor behind it. Commercial licenses come with support and a company accountable for fixes.
  • Your queries are small to medium. Under a hundred rules, Syncfusion renders in a few hundred milliseconds or less and typing is instant.

Switching.

There's no drop-in format for Syncfusion, but its getRules() output is a plain tree. This function converts it, operator by operator. Run it once over saved rules, or on load while both builders coexist.
from-syncfusion.ts

Columns become a schema: type: 'string' is f.text(), or f.enum() when it has values; 'number', 'boolean' and 'date' map to f.number(), f.boolean(), f.date().

Operators qnot doesn't know pass through unchanged, so validateQuery(fields, query) lists them instead of the converter dropping them. Then pick a framework-free, React or Vue builder.

Questions people ask

Is the Syncfusion Query Builder free?
Under conditions. Syncfusion offers a free community license to organizations with less than $1 million in annual gross revenue and five or fewer developers; everyone else needs a commercial license. qnot is MIT licensed for everyone.
Which frameworks does each support?
Syncfusion's query builder is a JavaScript component with wrappers for Angular, React and Vue, and versions for Blazor and ASP.NET. qnot has bindings for React, Vue, Svelte and Solid, and a plain DOM builder; it has no Angular or Blazor binding.
Why is the Syncfusion number so high at 1,000 rules?
In our run its first render grows faster than linearly with the number of rules: about 0.27 s at 100 rules, 2 s at 500 and 6.6 s at 1,000. Typing into a rule stays fast. If your queries stay under a hundred rules, render time is unlikely to matter.Benchmarks
Can I convert my saved Syncfusion rules?
Yes. getRules() returns a plain RuleModel tree; the twenty-line function above turns it into a qnot query, mapping each operator. Run validateQuery on the result to catch anything that didn't map.

Other comparisons