[{"data":1,"prerenderedAt":407},["ShallowReactive",2],{"project-45633453":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":35,"aspects":36,"strip":44,"post_text":46,"what":47,"said":77,"maker_in_thread":204,"shape":213,"grid":217,"attempts":370,"same_week":371,"maker_shows":40,"maker_hidden":399,"reader_version":400,"card":401},"45633453","Duck-UI","Browser-Based SQL IDE for DuckDB","title","Show HN: Duck-UI – Browser-Based SQL IDE for DuckDB","https:\u002F\u002Fdemo.duckui.com","demo.duckui.com","caioricciuti",1760872778,2025,213,60,290,3837,8,"notable","dev_tools","sql editor","web_app",[24,21,25,26,27],"duckdb","webassembly","csv query","browser sql","mixed",-0.032,{"positive":31,"neutral":32,"mixed":33,"critical":34},3,7,1,4,15,{"idea":37,"design":39,"performance":41,"execution":42,"docs":43},{"positive":33,"critical":38},0,{"positive":38,"critical":40},2,{"positive":38,"critical":33},{"positive":33,"critical":33},{"positive":33,"critical":38},[38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,31,31,38,33,33,38,31,31,31,31,38,38,38,38,38,45,31,45,33,45,38,38,33],5,"I built Duck-UI, a web-based SQL editor that runs DuckDB entirely in your browser via WebAssembly. No backend required.\n\nThe Problem: Every time I needed to query csv, parquet, or even to play with SQL, I had to either: (a) spin up a Jupyter notebook (b) use the CLI (c) upload to a hosted service.\n\nFriction at every step (TOO MUCH to load a csv or even to test some sql (study)...\n\nThe Solution: DuckDB's WASM runtime lets us run SQL analysis client-side. Load CSV\u002FJSON\u002FParquet files from disk or URL, write SQL, get results instantly. Data stays on your machine. What It Does:\n\nSQL editor with aut",{"problem":48,"audience":54,"pricing":54,"motivation":55,"time_to_build":54,"stack":61,"openness":74,"stage":75,"team_size":76},{"value":49,"source":50,"evidence":51},"Querying CSV\u002FParquet or testing SQL requires a notebook, CLI, or uploading data to a hosted service","maker",[52],{"id":53},"post",null,{"value":56,"source":50,"evidence":57},"Handling many CSVs from different people at a former company was slow in Excel",[58],{"id":59,"by":11,"text":60},"45633727","TRUE! It's amazing and I have in other project too! The idea of of this app 100% in browser came from handling lots of CSV's from different people in my former company... Just to…",[62,66,70],{"value":63,"source":50,"evidence":64},"DuckDB (WebAssembly)",[65],{"id":53},{"value":67,"source":50,"evidence":68},"Docker",[69],{"id":53},{"value":71,"source":50,"evidence":72},"Node 20+",[73],{"id":53},"open_source","launched","unknown",{"praise":78,"objections":95,"requests":121,"questions":150,"alternatives":172},[79,87],{"value":80,"source":81,"evidence":82},"Snappy UI and good autocomplete","commenter",[83],{"id":84,"by":85,"text":86},"45633580","gamerrk","The autocomplete is really good, UI is snappy as well. Well done!",{"value":88,"source":81,"evidence":89},"Browser-only approach is useful for quick CSV work",[90,91],{"id":59,"by":11,"text":60},{"id":92,"by":93,"text":94},"45633550","chrisweekly","I haven't had a chance to play w this yet, but thank you for building and sharing this -- great writeup, sounds v useful and compelling!",[96,107,114],{"value":97,"source":81,"evidence":98},"Lacks the automatic per-column charts of DuckDB's built-in UI",[99,103],{"id":100,"by":101,"text":102},"45635507","debazel","Here's some quick issues and suggestions I found after about 5 minutes of playing around with it. All test were done using Firefox FYI. 1. One of my favorite features from the…",{"id":104,"by":105,"text":106},"45637673","curtisblaine","Doesn't do charts though (meaning: it does statistic histograms on your columns but no custom chart like OP's software does).",{"value":108,"source":81,"evidence":109},"Not open source UI in built-in DuckDB UI; this one is open source, but WASM is slower than local",[110],{"id":111,"by":112,"text":113},"45636458","matsonj","You’re underselling this. Running it locally also gives you access to all cores and all RAM. Wasm is very limited comparatively - perf is not even close.",{"value":115,"source":81,"evidence":116},"Does not work well on phones; run button hidden",[117],{"id":118,"by":119,"text":120},"45633539","mgaunard","doesn't work well on phones, run query button is not visible.",[122,132,136,143],{"value":123,"source":81,"evidence":124},"Connect to local DuckDB UI instance",[125,129],{"id":126,"by":127,"text":128},"45636358","cjonas","Curious how tricky it would be to connect this to a local instance of duckdb running in UI mode instead of browser WASM. (Or if that even aligns with your vision of this…",{"id":130,"by":127,"text":131},"45636379","Or it looks like that's basically already supported?! Sorry, I need to spend some time with this, but I'll definitely be testing it out and will provide feedback and\u002For…",{"value":133,"source":81,"evidence":134},"Virtualized infinite grid beyond 200 rows",[135],{"id":100,"by":101,"text":102},{"value":137,"source":81,"evidence":138},"Click-to-filter from column values",[139],{"id":140,"by":141,"text":142},"45636747","jeffbee","This is not really a problem introduced by the thing in the article, but the \"UI\" for duckdb just kinda sucks. When I want to interactively explore some data, I want to easily…",{"value":144,"source":81,"evidence":145},"Flight SQL or Arrow IPC HTTP endpoint support",[146],{"id":147,"by":148,"text":149},"45633895","alex_hirner","I'd love to make it work with flightsql or HTTP endpoints returning arrow IPC [0]! Did you consider using perspective for last-mile charting [1]? Building your own seems like a…",[151,158,165],{"value":152,"source":81,"evidence":153},"Does it support all DuckDB-Wasm functions",[154],{"id":155,"by":156,"text":157},"45634992","ludicrousdispla","Is the DuckDB Wasm that you are providing the same thing as the DuckDB Wasm provided by DuckDB? I ask because I am under the impression that the 'DuckDB Wasm' client provided by…",{"value":159,"source":81,"evidence":160},"Whether DuckDB pulls minimal data across multiple sources",[161],{"id":162,"by":163,"text":164},"45633665","spooky_deep","When DuckDB queries across multiple sources (say, Postgres and a CSV) does it first load all data into DuckDB or is it smart enough to only pull minimal data needed for the query…",{"value":166,"source":81,"evidence":167},"Community extensions like textplot do not work as expected",[168],{"id":169,"by":170,"text":171},"45636461","rustyconover","Thanks for building this! Using my textplot extension doesn't result in my expected output: --- install textplot from community; load textplot; select tp_bar(0.5) ---",[173,184,191,198],{"value":174,"source":81,"evidence":175},"DuckDB built-in UI (duckdb -ui)",[176,180],{"id":177,"by":178,"text":179},"45633548","CSDude","There is an embedded one in DuckDB for a while now and it's great. I get the apeal of yours but this one is much easier to use for same cases:…",{"id":181,"by":182,"text":183},"45634898","Rhubarrbb","`duckdb -ui` and you can launch a local server bound to 127.0.0.1",{"value":185,"source":81,"evidence":186},"qstudio desktop client",[187],{"id":188,"by":189,"text":190},"45634906","RyanHamilton","If you want a desktop version check out qstudio: https:\u002F\u002Fwww.timestored.com\u002Fqstudio\u002Fhelp\u002Fduckdb-sql-editor it integrates duckdb functionality for parquet csv and to pivot data",{"value":192,"source":81,"evidence":193},"Malloy explorer",[194],{"id":195,"by":196,"text":197},"45639854","mrtimo","Based on this comment, you might enjoy the Malloy data language. It compiles to SQL and also have an open source explorer to make filters like what you are saying easy.",{"value":199,"source":81,"evidence":200},"SQL Workbench",[201],{"id":202,"by":196,"text":203},"45639968","Love this! Here is a similar product: https:\u002F\u002Fsql-workbench.com\u002F",{"comments":32,"answered":31,"key":205},[206,207,210],{"id":59,"text":60},{"id":208,"text":209},"45635835","THAT'S AMAZING! ALL NOTED, thank you very much for the time and for the feedback! You are awesome! I'll review all!",{"id":211,"text":212},"45634732","I would love for this to be the case... I'm also not a fan of mother's duck ui... Also I created this project like 2 weeks before they launch it (that's why it's named duckui...)…",{"commenters":214,"max_depth":32,"maker_replies":32,"first_comment_mins":215,"lifespan_hours":216},39,27,170,[218,220,224,227,228,231,233,236,239,242,244,245,248,251,253,255,258,261,263,266,269,273,275,278,281,283,285,288,290,292,293,295,298,299,301,303,305,306,307,309,313,315,317,320,323,326,328,330,333,336,341,344,347,349,351,356,361,363,365,367],[177,38,38,219,178,38],"other\u002Fneutral\u002Fnone",[221,38,38,222,223,38],"45633555","other\u002Fneutral\u002Fprivacy","mrs6969",[225,38,38,219,226,38],"45634266","nirav72",[181,38,38,219,182,38],[229,38,38,219,230,38],"45634342","jasonjmcghee",[232,38,38,219,156,38],"45635152",[234,38,38,219,235,38],"45635276","dkdcio",[237,38,38,238,156,38],"45635472","other\u002Fneutral\u002Fdocs",[240,38,38,219,241,38],"45635914","hamandcheese",[243,38,38,219,112,38],"45636159",[104,38,38,219,105,38],[246,33,38,219,247,38],"45633623","mritchie712",[249,33,38,219,250,38],"45633646","curiousgal",[252,33,38,219,119,38],"45633671",[254,33,38,219,247,38],"45633824",[256,33,38,219,257,38],"45634799","fluxkernel",[259,33,38,219,260,38],"45635502","mlnj",[262,33,38,219,112,38],"45636475",[264,33,38,219,265,38],"45634192","jsight",[267,33,38,219,268,38],"45636181","geysersam",[270,33,38,271,272,38],"45636689","other\u002Fneutral\u002Fperformance","benrutter",[274,33,38,271,247,38],"45642416",[276,33,38,219,277,38],"45637415","adsharma",[279,40,38,219,280,38],"45633710","joshmn",[59,40,38,282,11,33],"maker\u002Fpositive\u002Fidea",[147,31,31,284,148,38],"project\u002Fneutral\u002Fidea",[286,31,38,219,287,38],"45634925","texodus",[100,34,31,289,101,38],"project\u002Fmixed\u002Fdesign",[208,34,38,291,11,33],"maker\u002Fpositive\u002Fnone",[188,45,38,219,189,38],[111,45,33,294,112,38],"project\u002Fcritical\u002Fperformance",[140,296,33,297,141,38],6,"project\u002Fcritical\u002Fdesign",[195,296,38,219,196,38],[300,296,38,219,141,38],"45640198",[302,32,31,284,127,38],"45634321",[211,32,38,304,11,33],"maker\u002Fneutral\u002Fidea",[126,32,31,284,127,38],[130,32,31,284,127,38],[155,18,31,308,156,38],"project\u002Fneutral\u002Fexecution",[310,311,31,284,312,38],"45633673",9,"mosselman",[314,311,38,304,11,33],"45633713",[162,316,38,219,163,38],10,[318,316,38,271,319,38],"45633681","dav43",[321,316,38,219,322,38],"45634065","lolive",[324,316,38,271,325,38],"45634228","VHRanger",[327,316,38,271,322,38],"45636061",[329,316,38,271,325,38],"45711616",[202,331,38,332,196,38],11,"other\u002Fpositive\u002Fnone",[92,334,45,335,93,38],12,"maker\u002Fpositive\u002Fdocs",[337,338,31,339,340,38],"45638560",13,"project\u002Fneutral\u002Fdesign","dsamy",[342,338,38,343,11,33],"45647051","maker\u002Fneutral\u002Fdesign",[84,345,45,346,85,38],14,"project\u002Fpositive\u002Fexecution",[348,345,38,291,11,33],"45633716",[169,35,33,350,170,38],"project\u002Fcritical\u002Fexecution",[352,353,45,354,355,38],"45636908",16,"project\u002Fpositive\u002Fidea","cat-whisperer",[357,358,38,359,360,38],"45634645",17,"other\u002Fneutral\u002Fidea","tonyhart7",[362,358,38,219,156,38],"45635184",[364,358,38,219,170,38],"45636448",[118,366,33,297,119,38],18,[368,366,38,369,11,33],"45633545","maker\u002Fneutral\u002Fnone",[],[372,377,381,385,389,394],{"id":373,"name":374,"points":375,"category":376},"45617948","detective",318,"games",{"id":378,"name":379,"points":380,"category":20},"45642911","Playwright Skill",189,{"id":382,"name":383,"points":384,"category":376},"45609478","Abstract Board Games",180,{"id":386,"name":387,"points":388,"category":20},"45645120","I created a cross-platform GUI for the JJ VCS (Git compatible)",140,{"id":390,"name":391,"points":392,"category":393},"45656952","Katakate",124,"infrastructure",{"id":395,"name":396,"points":397,"category":398},"45604013","Modshim",109,"languages",false,"v2",{"id":402,"name":5,"line":6,"ai":399,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":403,"top":18,"kw":404,"maker":11,"domain":10,"tier":19,"attempts":38,"strip":405,"url":9,"mix":406,"praise":80,"objection":97,"sub":21},45633453,-0.03,[24,21,25,26,27],"0000000000000000033011033330000053515001",[31,32,33,34],1794036684362]