DuckVizBeta
Product

Privacy-First Architecture

How DuckViz keeps your raw data inside your browser.

DuckViz is designed so that your data never leaves your browser. The data engine (DuckDB-WASM) runs entirely client-side, and AI features only ever receive schema metadata.

What stays in your browser

Everything related to your actual data lives locally:

  • Raw cell values from every CSV, Excel, JSON, XML, and log file you upload
  • SQL query results — all queries execute locally via DuckDB-WASM
  • DuckDB tables — persisted as Parquet files in IndexedDB
  • Dashboard layouts, widget configurations, and report content
  • File metadata — names, sizes, and types

None of this ever touches our servers.

What goes to our servers

Only schema-level metadata is sent to AI providers:

What's sentWhyWhen
Column names and data typesTo classify your data domain and generate chart suggestionsWidget generation
Detected domain and format hintsTo improve chart recommendationsWidget generation
Up to 10 lines of log file textTo detect the log format for the parserLog format detection only
AI-generated SQL queriesFor error reporting when queries failAuto-fix retries

No row-level data

Actual cell values, row data, and query results are never sent to any server. The AI generates SQL queries based on column names and types alone, then DuckDB executes those queries locally in your browser.

The one exception: log samples

Log format detection sends up to 10 sample lines from your log file to the AI for format identification. This is the only feature where actual data content reaches the server. These samples:

  • Are used solely for format detection
  • Are not stored after the response is returned
  • Are limited to 10 lines regardless of file size

After detection, the WASM parser handles all parsing locally.

Authentication and accounts

  • Email and display name are stored in Supabase (our auth provider)
  • Payments (one-time credit packs) are handled by our payment processor — we never see full card details
  • Session data lives entirely in your browser's IndexedDB

Clearing local data

To remove all data from your browser:

  • Upload → Start fresh — wipes the entire persisted session (tables, files, dashboards, state)
  • Memory badge → unmount — remove individual tables to free memory
  • Browser DevTools → Application → IndexedDB — manually delete DuckViz storage

For developers

When using DuckViz packages in your own app, the same privacy model applies:

  • @duckviz/db runs DuckDB-WASM entirely client-side
  • @duckviz/explorer and @duckviz/dashboard render charts locally
  • @duckviz/sdk (server-side) proxies AI requests — you control what data reaches the AI

Read the full Privacy Policy for the legal version.