Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Looks great and thanks for sharing!

You mentioned that you went to some length to implement pivots. How far do you think you will take the pivot feature and UI?

For financial type usecases it's pretty much a requirement to be able to map many fields on X/Y, be able to collapse them in the the browser, and also show/control aggregations.

Asking because many apps stop at the simplest level of pivot features and go to great lengths in other areas like more advanced visualization. For mapping many fields though, I think a good pivot table UI is like a secret weapon.

I get that this isn't what you would focus on so much in week 1.

Nice work + love the local-first and direct UI.



Right - I used to work in GS and they had this really great internal table display tool where you could simply drag a column from the top to the left side and it would Pivot + Collapse all fields on it (plus allow multi level pivots). Then, you could look at the Pivot table OR do a drill-down to see the root-cause why a value was so high.

I really liked that interface and haven't really found anything near as useable yet. Perspective JS (a free library by JP Morgan, you can try it here: https://perspective.finos.org/block/) has some really cool functionality in this direction but it has its one data processing engine, query language, rendering engine etc so we couldn't have used that for this project.

But, this is an interesting thought - I definitely would want to see this functionality in Pretzel - the only question is how to prioritize this. If you know of any performant table libraries that support collapsible pivots out-of-the-box, I'd love to integrate that. Alternatively, we'll write our own!


One that I'm watching is the Table mark in Graphic Walker [1].

There is a license thing about logos to note if you do use it in Pretzel [2].

On GW [1], Create Dataset -> Public Datasets -> Student Performance then change the Mark Type to Table you can play around. It hits the things that I mentioned pretty good! You might have similar issues as you have with Perspective though.

I make calculang [3] and I'm getting ready to plug into a lot of things. A good pivot table generalizes well for my needs (mainly quick feedback during DX).

Perspective is on the list but so is GW and Pretzel.

Perspective might suit my needs perfectly.

But I like DuckDB-WASM approach anyway so I hope you continue and I hope you nail it one way or another! :)

[1] https://graphic-walker.kanaries.net

[2] https://github.com/Kanaries/graphic-walker/issues/330

[3] https://calculang.dev


Wow, Graphic Walker looks incredible! AND they vega-lite - I'm a BIG altair fan - this look like fun - I'll take a look!


Perspective.js is what I use for https://sql-workbench.com grid and charting functionality.

You can just do the data manipulations in DuckDB WASM and pipe the Arrow data to Perspective...


Very impressive project and vision! Love the demo!

I am also ex-GS and worked on what I am fairly sure is the table display tool you're describing. I tried to carry the essential aspects of that work (multi-level pivots, with drill-down to the leaf level, and all interactive events and analytics supported by db queries) to Tad (https://www.tadviewer.com/, https://github.com/antonycourtney/tad), another open source project powered by DuckDb.

An embeddable version of Tad, powered by DuckDb WASM, is used as the results viewer in the MotherDuck Web UI (https://app.motherduck.com/).

If you're interested in embedding Tad in Pretzel, or leveraging pieces of it in your work, or collaborating on other aspects of DuckDb WASM powered UIs, please get in touch!


Yes! I think it was TDS viewer or something like it - I loved using it so thank you for building it :)

Tad viewer looks perfect for embedding in Pretzel! Is it easy to embed it in web apps? I’m on mobile right now and did a quick search and didn’t find anything. I’ll definitely be in touch!


Yes, Tad should be pretty easy to embed -- in the github repo there's a React component (TadViewerPane), and a fairly modular API for adding a new data source. I'm happy to work with you on this, this should be a fun exercise!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: