Design, validate, preview, and execute database queries through an intuitive visual interface.
Supports SQL, MySQL, MongoDB, and GraphQL generation from a single query definition.
QueryCraft is a modern visual query builder that transforms complex filtering logic into an intuitive drag-and-drop experience.
Instead of manually writing query syntax, users can visually create nested conditions, generate multiple query formats, validate query structures, and execute against datasets.
Whether you're a developer, analyst, or product team member, QueryCraft makes building queries significantly faster and easier.
Writing queries manually often means:
- Learning database-specific syntax
- Managing deeply nested conditions
- Switching between query languages
- Debugging malformed query structures
- Rewriting the same logic repeatedly
QueryCraft solves these problems by providing a visual query-building workflow.
Build Logic
↓
Generate Query
↓
Validate Structure
↓
Execute Results
Build complex filtering logic using a recursive visual interface.
- Unlimited nested groups
- AND / OR logic
- Drag-and-drop reordering
- Collapsible groups
- Schema-aware fields
- Dynamic operators
Generate multiple query formats from the same visual query structure.
- SQL
- MySQL
- MongoDB
- GraphQL
Example:
Age > 18
AND
Country = Nigeria
AND
Status = Active
{
"$and": [
{
"age": {
"$gt": 18
}
},
{
"country": {
"$eq": "Nigeria"
}
},
{
"status": {
"$eq": "active"
}
}
]
}QueryCraft adapts automatically based on the selected dataset.
name
age
country
status
createdAt
customer
amount
status
country
createdAt
title
category
severity
user
createdAt
Each dataset dynamically updates:
- Available fields
- Supported operators
- Input components
- Validation rules
- Query execution
Validate queries before execution.
- Empty groups
- Missing fields
- Missing operators
- Missing values
- Invalid structures
This helps prevent malformed queries before execution.
Execute queries manually against datasets.
- Manual execution workflow
- Loading states
- Dataset-aware results
- Dynamic result tables
- Empty-state handling
Manage your query workflow efficiently.
- Query history
- Preset management
- Undo / Redo
- Import / Export
- Persistent local storage
Choose a dataset:
- Users
- Orders
- Events
Create conditions and groups visually.
Example:
( Age > 18 )
AND
(
Country = Nigeria
OR
Status = Active
)
Preview generated query syntax instantly.
SELECT *
FROM users
WHERE age > 18
AND (
country = 'Nigeria'
OR status = 'active'
);{
"$and": [
{
"age": {
"$gt": 18
}
},
{
"$or": [
{
"country": {
"$eq": "Nigeria"
}
},
{
"status": {
"$eq": "active"
}
}
]
}
]
}Run the query against mock datasets and inspect matching records.
Group
├── Condition
├── Condition
└── Group
├── Condition
└── Condition
Groups contain:
- Logic type (AND / OR)
- Child conditions
- Nested groups
Conditions contain:
- Field
- Operator
- Value
- Next.js
- React
- TypeScript
- Zustand
- Tailwind CSS v4
- Framer Motion
- dnd-kit
- next-themes
src
│
├── app
│
├── components
│ ├── query-builder
│ ├── query-controls
│ ├── query-preview
│ ├── query-results
│ └── shared
│
├── store
│
├── mock
│
├── types
│
└── lib
├── validation
├── traversal
├── helpers
└── query-engine
- Landing page
- Visual query builder
- Dynamic datasets
- Recursive groups
- Drag and drop
- Query validation
- Query execution
- Query previews
- History management
- Presets
- Import / Export
- Local persistence
- Dark / Light mode
- Documentation
- Real database connectors
- Query sharing
- Saved workspaces
- Team collaboration
- Query templates
- API integrations
- AI-assisted query generation
- Natural language → query conversion
- Query optimization suggestions
- Live database execution
Install dependencies:
pnpm installStart development server:
pnpm devBuild for production:
pnpm buildRun linting:
pnpm lintQueryCraft aims to become the fastest way to design, understand, validate, and execute queries visually across multiple database technologies.
Instead of learning query syntax, users focus on logic.
Build visually. Generate instantly. Execute confidently.