Skip to content

mattf96s/QuackDB

Repository files navigation

QuackDB - Online DuckDB SQL Playground

Release License

QuackDB is a privacy-preserving in-browser DuckDB SQL playground and editor.

Demo available at quackdb.com.

  • In-Browser: The DuckDB Wasm library is used to run SQL queries in the browser.
  • File Types: Supports .csv, .json, .parquet, .sqlite, .duckdb and .arrow files.
  • Privacy: no screen recordings or client-side error monitoring (only Vercel Analytics).
  • Filesystem Access: OPFS is used to store files in the browser's filesystem for persistence.

QuackDB Screenshot

Motivation

I wanted a quick and simple tool for iterating on DuckDB queries and visualizing the results. I also wanted to experiment with the new Filesystem Access API (OPFS) and explore the capabilities of DuckDB in the browser.

Tech Stack

Category Tool
Database DuckDB Wasm
Frontend Remix · Tailwind CSS, shadcn/ui
Backend Vercel
Visualization Observable Plot, Tanstack Table
Web APIs Comlink, OPFS

An earlier version of this project used SST for the backend infrastructure, but I switched to Vercel for simplicity.

TODO

  • Safari support 😁
  • Improved UI / charts / tables / etc.
  • Data import/export
  • Responsive design improvements
  • Performance improvements with Arrow
  • Snippets / examples

Maybe

  • NSQL integration for natural language queries.
  • Co-pilot (or similar) integration for code suggestions.

Inspiration

License

MIT

Disclaimer

This project is not in any way affiliated with DuckDB or any of the other projects mentioned above.

Tips

  • Built in chrome OPFS viewer can be accessed from https://www.quackdb.com/temporary. To navigate, manually change the URL to the desired path as Chrome does not allow navigation by clicking on the links.

Known Issues

  • Safari will not be fully supported until this bug is fixed (serializing file handles is not supported in Safari).