Desktop-first · Open Source

Build SQL
visually.

A desktop-first visual programming workbench for learning, composing, and running SQL with Scratch-style blocks.

Download for Desktop Explore Features
NodeQL — student_analysis.db
● Autosaved
DQL
DML
DDL
DCL
Transactions
Plugins
SELECT
FROM
WHERE
JOIN
GROUP BY
ORDER BY
HAVING
LIMIT
Simple mode
students.db
SELECT name, score, grade
FROM students
WHERE grade = 'A'
JOIN scores ON students.id = scores.id
GROUP BY grade
ORDER BY score DESC
SQL
Results
Run
SELECT
  name, score, grade
FROM students
JOIN scores
  ON students.id
     = scores.id
WHERE grade = 'A'
GROUP BY grade
ORDER BY score DESC
Copy SQL
Results 3 rows
namescoregrade
Alice97A
Ben94A
Clara91A
Core capabilities

From blocks to executable SQL.

Everything you need to compose, understand, and run database queries — without memorizing syntax first.

🧩
Visual SQL blocks

SELECT, WHERE, JOIN, GROUP BY, transactions, schema commands — every major clause as a composable, color-coded block.

Simple and Advanced modes

Learn with plain-language block labels. Switch to SQL syntax mode when you're ready. One workspace, both views.

🗄️
Run SQLite locally

Mount any .db file, execute your composed query, and inspect real results — no server, no setup, no connection strings.

🌐
Multilingual by design

11 interface languages including full right-to-left layout support for Arabic. Built for global classrooms and teams.

How it works

Three steps. One coherent workflow.

Designed to make the structure of a query visible — not just the result.

01 — Choose blocks

Pick from the palette

Browse by category: DQL, DML, DDL, DCL, Transactions, or Plugins. Search by name or SQL keyword and drag a block onto the canvas.

SELECT
FROM
WHERE
JOIN
GROUP BY
ORDER BY
02 — Compose query

Assemble and configure

Connect blocks in sequence, fill in identifiers and values. The SQL preview updates live — watch the syntax form as you compose.

orders_summary.scrql
SELECTid, name, total
FROMorders
WHEREtotal > 100
ORDER BYtotal DESC
LIMIT20
SELECT id, name, total
FROM orders
WHERE total > 100
ORDER BY total DESC
LIMIT 20
03 — Run and inspect

Execute against real data

Mount a SQLite database, run the query, and inspect live results. Copy the generated SQL for use in any environment.

orders — 4 rows ▶ 12 ms
idnametotal
42Alice M.$320
37Bob K.$215
19Clara S.$182
58Dan P.$141
⌘C Copy SQL
Interface anatomy

Every panel has a purpose.

No clutter. No hidden controls. The workspace is organized so the query always stays at the center of attention.

Command palette

Keyboard-accessible block search. Find any clause by name, alias, or SQL keyword in under a second.

Category rail

DQL, DML, DDL, DCL, Transactions, and Plugins — organized so the logical grouping is always visible.

Workspace canvas

An infinite dot-grid canvas. Blocks connect in sequence. Reorder, remove, or reconfigure at any point.

Generated SQL preview

Live syntax-highlighted SQL output. What you see in the canvas is exactly what gets executed.

Results table

Column-typed, scrollable result set. Run count, column names, and raw values — no formatting surprises.

query_01.scrql ● Autosaved
SELECT p.name,
  COUNT(o.id) AS order_count,
  SUM(o.total) AS revenue
FROM products p
JOIN orders o
  ON p.id = o.product_id
WHERE o.status = 'completed'
GROUP BY p.name
ORDER BY revenue DESC
LIMIT 10
Copy SQL
Results — 10 rows▶ Run
nameorder_countrevenue
Pro Subscription1,204$60,200
Data Pack889$26,670
Basic Plan742$14,840
Learn SQL

Learn the shape of a query before memorizing syntax.

SQL is not hard to understand. It becomes hard when you have to hold the entire mental model in your head while simultaneously getting the syntax exactly right.

NodeQL separates those two concerns. You think about what you want to retrieve — which tables, which conditions, which groupings. The blocks handle the syntax. The preview shows the SQL that results.

Once you see a query take shape block by block, the underlying grammar becomes intuitive. You're not memorizing rules — you're understanding the logic.

Plain-language mode shows clause labels in natural language — "Get rows where" instead of WHERE — for learners not yet reading SQL.

SQL syntax mode switches the same blocks to standard labels, so the transition from visual to textual SQL is gradual and deliberate.

Live SQL preview means every change to the canvas is immediately reflected in the generated query. No gap between what you build and what executes.

Real data, real feedback. Mount a SQLite database and run against actual records. Errors in logic surface as unexpected result sets, not just syntax errors.

Classroom-ready. Save and open .scrql project files. Instructors can share queries students can open, modify, and run.

Built to extend

Clean architecture, open foundation.

NodeQL is designed for contributors and educators who want to customize or extend the platform.

Foundation
Flutter desktop

Cross-platform build targeting macOS, Windows, and Linux from a single Dart codebase. Native performance, native rendering.

Flutter · Dart
Data model
JSON project format

Projects serialize to a structured JSON model. Human-readable, diff-friendly, and easy to parse or generate programmatically.

.scrql JSON
Execution
Runtime scheduler

A query scheduler manages block-to-SQL compilation, execution sequencing, and result delivery to the UI layer.

Scheduler
Extensibility
Extension contract

A defined registration interface allows new block types, custom SQL dialects, or data source adapters to integrate into the palette.

Plugin API
Plugins
Plugin palette

Plugin blocks appear in their own palette category, visually distinct from core SQL blocks. Loadable at runtime without restarting.

Runtime load
Architecture
Clean separation

UI, domain logic, and execution are cleanly separated. Straightforward to test, modify, or extend without touching unrelated layers.

Layered arch.
Localization

11 languages. One workspace.

Built for global classrooms and multilingual teams. Switch language at any time. Arabic renders with full RTL layout support.

Deutsch
German
de
English
English
en
Français
French
fr
Español
Spanish
es
Italiano
Italian
it
Português
Portuguese
pt
Türkçe
Turkish
tr
العربية
Arabic
ar
RTL
日本語
Japanese
ja
한국어
Korean
ko
中文
Chinese
zh

Start building queries
you can see.

Download NodeQL for desktop. Free and open source.

Download for Desktop View Source on GitHub