FAQ
Frequently asked questions about DuckViz.
Is my data uploaded to your servers?
No. Files are parsed and queried entirely in your browser via DuckDB-WASM. The AI pipeline only receives column names, data types, and small statistical fingerprints — never row values.
The single exception is log format detection when the local 47-format catalog misses: up to 10 sample lines go to /api/detect-log-format for one detection call. Samples are not retained. See Privacy-First Architecture and Log Analysis.
What browsers are supported?
Any modern browser with WebAssembly and Web Workers:
- Chrome / Edge 90+
- Firefox 89+
- Safari 15.4+
Mobile browsers work but are not optimized. iOS Safari gets a lower memory ceiling (256 MB) automatically.
How much data can I analyze?
Depends on system RAM — DuckViz runs inside the tab's JS heap.
| System RAM | Practical limit |
|---|---|
| 4 GB | ~50 MB data |
| 8 GB | ~100–200 MB |
| 16 GB | ~500 MB |
| 32 GB+ | ~1 GB+ |
Realistic per-format caps live in the ingest size matrix.
What AI model is used?
Two tiers:
- Standard (default, free) —
1×credit rate. DuckViz picks the right OpenAI model per task: a small classifier for domain detection, mid-tier mini models for SQL generation and report writing. - Premium (opt-in) —
5×credit rate. Same task-aware routing, but each role escalates to its flagship variant for deeper reasoning. Choose Premium when the domain is unusual or the table is complex.
Switch tiers from the AI quality dropdown in the top-right header. See Billing & Plans for the cost math.
Do credits expire?
No. Credits never expire. Credit packs are one-time purchases, not subscriptions.
What happens if an AI request fails?
Credits are deducted atomically upfront. Every route calls refundCredits(reason) on failure paths — failures, timeouts, rate limits, and cache hits all refund automatically. You're never charged for a request that didn't deliver a usable result.
How does the referral program work?
Open the user menu (top-right header) → Invite a friend · +50 credits to send a single-recipient invite (rate-limited to 10 / 24h). When your invitee confirms their email, 50 credits drop into your balance via a Postgres credit_topup trigger, and the invitee is routed to /auth/set-password (marked user_metadata.invited: true) instead of the regular confirmation flow.
Full mechanics: Invite a Friend.
What's new with Deck mode?
<DeckBuilder /> turns a dashboard into a slideshow — speaker-notes-oriented, with a presenter UI and PPTX export via pptxgenjs. Slides stream in parallel (slide-start / slide-complete SSE). Each slide supports template variables ({{metric | currency}}) evaluated server-side.
See Deck Mode and Deck Integration.
How do custom log formats work?
If the local 47-format catalog misses, the LLM proposes a regex + columns, and the result is auto-saved to your account. Next time a similar file drops, detection is local-only (no server call, no credits).
Manage saved formats at /settings/log-formats. Full walkthrough: Custom Log Formats.
Can I self-host DuckViz?
The packages (@duckviz/db, @duckviz/explorer, @duckviz/dashboard, @duckviz/report, etc.) embed in any React app you host yourself. The data engine is 100% client-side.
For AI features, your app needs a DuckViz API token and the @duckviz/sdk proxy. See Next.js integration.
The hosted product at app.duckviz.com is not open-source.
Can I use the packages without any DuckViz server?
Yes. @duckviz/db, @duckviz/widgets, @duckviz/dashboard, and @duckviz/ui are standalone — they do not talk to any DuckViz API. Render charts, run SQL, persist to IndexedDB, all offline.
Only AI features (widget recommendations, report/deck generation, log detection) need @duckviz/sdk + an API token.
Is there a REST API?
Yes — see API endpoints for the flat list with auth methods, SSE y/n, and credit cost per route.
Most endpoints expect bearer PAT auth (Authorization: Bearer dvz_live_…). A handful are cookie-only (token management, referrals, checkout) — those can't be reached from an SDK.
Can I export my data?
- Reports → PDF, DOCX (programmatic walk of
StructuredReport— no DOM capture, text stays vector) - Decks → PPTX (via
pptxgenjs) - Raw table data → run a SQL query, copy from the grid (no one-click CSV export today)
How do I contact support?
Email support@duckviz.com with browser, OS, and repro steps. We reply within 3 business days.