[{"data":1,"prerenderedAt":440},["ShallowReactive",2],{"project-39717268":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":28,"sentiment":29,"stance_mix":30,"scored_comments":34,"aspects":35,"strip":42,"post_text":45,"what":46,"said":108,"maker_in_thread":203,"shape":214,"grid":218,"attempts":401,"same_week":402,"maker_shows":43,"maker_hidden":432,"reader_version":433,"card":434},"39717268","Pretzel","Open-source, browser-local data exploration using DuckDB-WASM and PRQL","title","Show HN: Open-source, browser-local data exploration using DuckDB-WASM and PRQL","https:\u002F\u002Fgithub.com\u002Fpretzelai\u002Fpretzelai","github.com","prasoonds",1710518561,2024,227,74,333,3515,10,"notable","data","data exploration tool","web_app",[24,25,26,27],"data exploration","duckdb wasm","csv viewer","browser data analysis","curious",0.183,{"positive":18,"neutral":31,"mixed":32,"critical":33},24,1,2,37,{"design":36,"idea":38,"execution":40,"performance":41},{"positive":32,"critical":37},0,{"positive":39,"critical":32},6,{"positive":32,"critical":37},{"positive":37,"critical":32},[43,43,44,43,43,37,44,43,43,44,44,43,43,43,43,43,44,37,43,43,43,43,43,44,43,43,43,43,43,32,44,44,37,37,44,37,43,43,43,43],3,5,"Hey HN! We’ve built Pretzel, an open-source data exploration and visualization tool that runs fully in the browser and can handle large files (200 MB CSV on my 8gb MacBook air is snappy). It’s also reactive - so if, for example, you change a filter, all the data transform blocks after it re-evaluate automatically. You can try it here: https:\u002F\u002Fpretzelai.github.io\u002F (static hosted webpage) or see a demo video here: https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=73wNEun_L7w\n\nYou can play with the demo CSV that’s pre-loaded (GitHub data of text-editor adjacent projects) or upload your own CSV\u002FXLSX file. The tool ",{"problem":47,"audience":53,"pricing":68,"motivation":69,"time_to_build":76,"stack":80,"openness":105,"stage":106,"team_size":107},{"value":48,"source":49,"evidence":50},"Exploring and transforming large CSV files without installing software or uploading data","maker",[51],{"id":52},"post",{"value":54,"source":55,"evidence":56},"Data analysts and non-technical users who outgrow spreadsheets","inferred",[57,61,64],{"id":58,"by":59,"text":60},"39720282","ThreeMoonsAreUp","I enjoyed your demo video and played around with a CSV of my own. This is a cool project, but I have a (perhaps stupid) question: Why should I use this tool over Excel or Google…",{"id":62,"by":11,"text":63},"39720519","Hey, absolutely - that's a perfectly fair question. I can give you my personal reasons: - I don't have excel on a Mac so I need to use Google Sheets. Google Sheets crashes on any…",{"id":65,"by":66,"text":67},"39719166","MarcoConverta","Just tried it out - thanks for sharing. We're a sales tech startup and I've had to look through large CSVs with prospecting information in the past - anything over 10 MB crashes…",null,{"value":70,"source":49,"evidence":71},"Maker wanted chained, reproducible data transforms and better performance than spreadsheets",[72,75],{"id":73,"by":11,"text":74},"39718585","That's great feedback, thanks! This tool definitely comes from a place of personal need - beyond just handling large files, I've also never really gelled well with the…",{"id":62,"by":11,"text":63},{"value":77,"source":49,"evidence":78},"About a week of coding by two people",[79],{"id":52},[81,85,89,93,99],{"value":82,"source":49,"evidence":83},"DuckDB-Wasm",[84],{"id":52},{"value":86,"source":49,"evidence":87},"PRQL",[88],{"id":52},{"value":90,"source":49,"evidence":91},"uDSV CSV parser",[92],{"id":52},{"value":94,"source":49,"evidence":95},"React",[96],{"id":97,"by":11,"text":98},"39720378","This echoes my thoughts exactly. Right now, we're actually more limited by the JS UI so a couple 100 MBs is the most you can do in a browser otherwise the UI becomes really slow.…",{"value":100,"source":49,"evidence":101},"BlueprintJS",[102],{"id":103,"by":11,"text":104},"39720807","Replying as I couldn't edit: Alright, did a bit of digging and the flamegraph points to a problem with the Table component. I'd hoped that BlueprintJS tables would be performant…","open_source","beta","team",{"praise":109,"objections":126,"requests":139,"questions":169,"alternatives":181},[110,119],{"value":111,"source":112,"evidence":113},"Browser-local and fast on large files","commenter",[114,118],{"id":115,"by":116,"text":117},"39720544","hitradostava","Hey congrats on the Show HN. Local, browser based data exploration works for a lot of uses cases and is so much faster thancloud based tools. We've implemented something similar…",{"id":65,"by":66,"text":67},{"value":120,"source":112,"evidence":121},"Chained transforms map well to PRQL",[122],{"id":123,"by":124,"text":125},"39718598","DannyPage","I was recently searching for something like this - the ability to write PRQL queries on mobile is my ideal usecase. As you note, PRQL is perfect for putting together queries with…",[127,135],{"value":128,"source":112,"evidence":129},"Browser tabs hit memory limits on very large datasets",[130,134],{"id":131,"by":132,"text":133},"39720156","logical_person","200mb of data is not a large file, and chromium tabs have a memory limit of something ridiculously low so actual large 20-100gb datasets render this useless.",{"id":115,"by":116,"text":117},{"value":136,"source":112,"evidence":137},"Table filter UI is slow on large files",[138],{"id":65,"by":66,"text":67},[140,147,158,165],{"value":141,"source":112,"evidence":142},"Pivot table support",[143],{"id":144,"by":145,"text":146},"39719912","dndn1","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…",{"value":148,"source":112,"evidence":149},"Save and share workflows",[150,154],{"id":151,"by":152,"text":153},"39719740","antman","Can we bookmark or localstorage our etl?",{"id":155,"by":156,"text":157},"39718396","xnx","Very cool. Would love to be able to save\u002Fshare my work (could probably even be in the url string if the CSV were online).",{"value":159,"source":112,"evidence":160},"Parquet file support",[161],{"id":162,"by":163,"text":164},"39718332","dns_snek","That looks great, I love all these new use cases for WASM that are starting to pop up. Are you planning on supporting parquet files any time soon? I'd love an easy way to just…",{"value":166,"source":112,"evidence":167},"Database connections",[168],{"id":65,"by":66,"text":67},[170,174],{"value":171,"source":112,"evidence":172},"Why use this instead of Excel or Google Sheets",[173],{"id":58,"by":59,"text":60},{"value":175,"source":112,"evidence":176},"How is it different from CSVFiddle and sql-workbench",[177],{"id":178,"by":179,"text":180},"39787197","mathnmusic","Thanks for building this as open-source! How is it different from CSVFiddle (which is also based on DuckDB-wasm, I think)? Ability to have multiple tables loaded and running join…",[182,189,193,197],{"value":183,"source":112,"evidence":184},"Datasette",[185],{"id":186,"by":187,"text":188},"39727703","account-5","What is this offering over something like datasette? https:\u002F\u002Fdatasette.io\u002F Or even OpenRefine? https:\u002F\u002Fopenrefine.org\u002F",{"value":190,"source":112,"evidence":191},"OpenRefine",[192],{"id":186,"by":187,"text":188},{"value":194,"source":112,"evidence":195},"Google Sheets",[196],{"id":58,"by":59,"text":60},{"value":198,"source":49,"evidence":199},"Perspective JS",[200],{"id":201,"by":11,"text":202},"39720782","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 +…",{"comments":204,"answered":205,"key":206},28,11,[207,208,211],{"id":201,"text":202},{"id":209,"text":210},"39722200","Wow, Graphic Walker looks incredible! AND they vega-lite - I'm a BIG altair fan - this look like fun - I'll take a look!",{"id":212,"text":213},"39721613","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…",{"commenters":215,"max_depth":44,"maker_replies":204,"first_comment_mins":216,"lifespan_hours":217},35,87,260,[219,221,223,225,227,231,232,235,238,240,243,244,245,247,251,253,257,259,262,266,268,269,271,274,276,278,279,282,286,288,291,294,295,298,302,304,306,308,312,314,315,317,320,322,325,327,329,331,333,337,339,343,346,348,350,355,357,360,364,366,369,371,373,375,377,380,382,384,386,389,392,393,396,399],[144,37,43,220,145,37],"project\u002Fneutral\u002Fdesign",[201,37,37,222,11,32],"project\u002Fpositive\u002Fdesign",[224,37,43,220,145,37],"39721347",[209,37,37,226,11,32],"other\u002Fneutral\u002Fnone",[228,37,44,229,230,37],"39721397","project\u002Fpositive\u002Fidea","antonycourtney",[212,37,37,226,11,32],[233,37,43,234,230,37],"39723162","project\u002Fneutral\u002Fexecution",[236,37,37,226,237,37],"39721757","tobilg",[65,32,43,239,66,37],"project\u002Fmixed\u002Fperformance",[241,32,37,242,11,32],"39719472","project\u002Fneutral\u002Fperformance",[103,32,37,242,11,32],[123,33,44,222,124,37],[246,33,37,234,11,32],"39718729",[248,33,43,249,250,37],"39719795","project\u002Fneutral\u002Fidea","maxloh",[252,33,37,249,11,32],"39719981",[254,33,43,255,256,37],"39720037","project\u002Fneutral\u002Fnone","d1sxeyes",[258,33,37,234,11,32],"39787648",[260,33,44,261,256,37],"39826602","maker\u002Fpositive\u002Fnone",[263,33,44,264,265,37],"39720071","project\u002Fpositive\u002Fexecution","maximilianroos",[267,33,37,234,11,32],"39720327",[162,43,43,234,163,37],[270,43,37,234,11,32],"39718634",[272,43,43,249,273,37],"39727019","passion__desire",[275,43,37,249,11,32],"39732135",[58,277,43,249,59,37],4,[62,277,37,249,11,32],[280,44,43,249,281,37],"39719839","thawab",[283,44,43,284,285,37],"39719906","maker\u002Fneutral\u002Fnone","mritchie712",[287,44,37,226,281,37],"39720039",[289,44,37,290,11,32],"39720210","commenter\u002Fneutral\u002Fnone",[292,39,44,229,293,37],"39718366","crowcroft",[73,39,37,249,11,32],[296,39,37,226,297,37],"39719738","Dikin",[299,300,43,234,301,37],"39718994",7,"timhh",[303,300,37,234,11,32],"39719168",[178,305,43,249,179,37],8,[307,305,37,249,11,32],"39787640",[309,310,43,249,311,37],"39720505",9,"auntienomen",[313,310,37,249,11,32],"39720559",[151,18,43,249,152,37],[316,18,37,249,11,32],"39720021",[318,18,43,249,319,37],"39721996","derhuerst",[321,18,37,226,237,37],"39720047",[323,205,44,229,324,37],"39723381","sudiptabiswas22",[326,205,37,226,11,32],"39735907",[186,328,43,249,187,37],12,[330,328,37,249,11,32],"39732146",[332,328,43,284,187,37],"39734083",[334,335,43,242,336,37],"39719101",13,"gnishemcknight",[338,335,37,242,11,32],"39719291",[340,341,43,249,342,37],"39720821",14,"bbkane",[344,341,43,234,345,37],"39720929","chrisjc",[347,341,37,234,11,32],"39720948",[349,341,37,290,342,37],"39730141",[351,352,32,353,354,37],"39724220",15,"project\u002Fcritical\u002Fidea","funcDropShadow",[155,356,44,229,156,37],16,[358,356,43,249,359,37],"39718535","ramonverse",[361,362,44,229,363,37],"39718922",17,"fillipvt",[365,362,37,249,11,32],"39719097",[367,368,37,226,237,37],"39719988",18,[370,368,37,290,345,37],"39720113",[372,368,37,290,237,37],"39720140",[374,368,37,290,11,32],"39720434",[376,368,44,261,237,37],"39720703",[115,378,37,379,116,37],19,"other\u002Fneutral\u002Fperformance",[381,378,37,242,11,32],"39720898",[383,378,43,242,116,37],"39721006",[385,378,37,290,11,32],"39721209",[131,387,32,388,132,37],20,"project\u002Fcritical\u002Fperformance",[390,387,44,229,391,37],"39720215","yawnxyz",[97,387,37,242,11,32],[394,387,43,242,395,37],"39725314","nojvek",[397,387,43,242,398,37],"39720256","slaymaker1907",[400,387,37,242,11,32],"39720279",[],[403,408,413,418,423,427],{"id":404,"name":405,"points":406,"category":407},"39706004","Skyvern",422,"ai",{"id":409,"name":410,"points":411,"category":412},"39759325","jnv",373,"dev_tools",{"id":414,"name":415,"points":416,"category":417},"39756325","Godspeed",328,"productivity",{"id":419,"name":420,"points":421,"category":422},"39714053","algebraic-nnhw",310,"hardware",{"id":424,"name":425,"points":426,"category":412},"39770908","GritQL",280,{"id":428,"name":429,"points":430,"category":431},"39755858","Causal 2.0",261,"web_saas",false,"v2",{"id":435,"name":5,"line":6,"ai":432,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":436,"top":18,"kw":437,"maker":11,"domain":10,"tier":19,"attempts":37,"strip":438,"url":9,"mix":439,"praise":111,"objection":128,"sub":21},39717268,0.18,[24,25,26,27],"3353305335533333503333353333315500503333",[18,31,32,33],1794036651351]