shadcn/ui query builder

A complete query builder made of your shadcn/ui components. Free, MIT, no API key. One command copies the source into your project.

MIT · no API key · Radix · Tailwind v4 · React 18+

licenseMIT
priceFree
API keyNone
installOne shadcn add

The shadcn/ui builder that shadcn add installs, live on this page. Edit a rule and watch the exports.

Install it

One command copies the shadcn/ui builder and the kit-agnostic core it shares with the other kits into components/qnot, and installs @qnot/core and @qnot/react. MIT licensed.

pnpm dlx shadcn@latest add https://coss.com/qnot/r/query-builder-shadcn.json

For a Radix-based shadcn/ui project (npx shadcn@latest init --base radix). Adds these shadcn/ui components in your project's style to components/ui if they're missing: badge, button, command, dropdown-menu, input, popover, select, slider, switch, textarea, toggle, toggle-group, tooltip.

Source

4 files, exactly what installs

Use it.

Describe your fields, create a store, render the builder. The store's onChange hands you the query.
fields.ts
Filters.tsx

The builder is a Radix-based shadcn/ui Select, Command comboboxes in a Popover, ToggleGroup segments and Tooltips on top of @qnot/react's hooks. The hooks own the state; the file owns the markup, so restyling is editing JSX.

It works from any store: pass one you create with useQueryStore or createQueryStore, and read the query with the store's onChange, useQuery() or store.getQuery(). To keep saved queries from react-querybuilder, add format: rqb (migration guide).

What you get.

The kit is only the controls. Everything else comes from the qnot store underneath.

Questions people ask

Is it free? Do I need an API key or an account?
It is free and MIT licensed, and there is no API key and no account. The registry is a set of static JSON files on this site; shadcn add downloads them and copies the source into your project. Nothing calls home at runtime.
Which shadcn/ui setups does it support?
Radix-based shadcn/ui projects (shadcn init --base radix). Projects using a Base UI style (base-* in components.json) get type errors with this item; use the coss ui builder there, which is built on Base UI.coss ui builder
What does the command install?
The builder (components/qnot/kits/shadcn.tsx), the kit-agnostic core it shares with the other kits (components/qnot/kits/shared), the npm packages @qnot/core, @qnot/react and lucide-react, and any of the shadcn/ui components it uses that you do not have yet, in your project's style.
Can I change how it looks?
Yes. It is your code, built from your own shadcn/ui components, so it follows your theme tokens and you can edit any control. Running shadcn add again asks before overwriting files you've changed.
Does it work with the Next.js App Router?
Yes. The builder file is a client component ('use client'). Render it from a client component of your own that creates the store, as in the example above.
Can I use it in the same project as coss ui?
Pick one. The coss ui builder and this one both install their components into components/ui, and the components share names (select, button, tooltip), so mixing them overwrites one with the other.