Readit News logoReadit News
vamega · 5 months ago
This looks pretty great. The UI looked fantastic, and the post mentioned that it was open source. However what's open source appears to be the DuckDB extension, which forwards the requests to a remote URL. I've not been able to find the code for the actual UI.

Is the actual UI open source, or is that something MotherDuck is allowing to be used by this while remaining proprietary? Right now it doesn't appear like this would work without an internet connection.

xemoka · 5 months ago
Yeah, this is really concerning. The handwaving around "keeping the ui up to date" by hosting it on ui.duckdb.org instead of embedding it doesn't taste great to me.

At least it's hosted on duckdb.org and not mother duck, but I really would expect to see that source somewhere. Disappointing unless I've missed it.

Breadcrumbs in the extension src: https://github.com/duckdb/duckdb-ui/blob/963e0e4d4c6f84b2536...

xemoka · 5 months ago
Yes. So confirmation from Jeff Raymakers, a software engineer at MotherDuck, the UI is not open source.

> Jeff Raymakers — Today at 9:25 AM

> The language in the blog post is misleading, and we're going to correct it.

> The UI extension is open source, but the UI itself is not.

Deleted Comment

plipt · 5 months ago
How is this promoted as a "local UI" if it gets the UI from a remote URL?

Maybe the closed source UI is downloaded upon first execution for installation and then cached locally?

Or is this a web app that loads from the remote URL each time?

daveguy · 5 months ago
It's a web interface, but it is served from the local machine. The default is http://localhost:4213/

See the note just above this link on data locations and the optional and explicit opt-in to motherduck:

https://duckdb.org/2025/03/12/duckdb-ui.html#features

jarpineh · 5 months ago
The docs say that the extension's server is configured here: https://duckdb.org/docs/stable/extensions/ui#remote-url

But yeah, I can't find docs nor source for the UI. And the extension docs refer to MotherDuck's own UI: https://motherduck.com/docs/getting-started/motherduck-quick...

So, a bit confusing way this is set up.

radicality · 5 months ago
It’s quite funny the docs also say this about the configurable url:

> Be sure you trust any URL you configure, as the application can access the data you load into DuckDB.

That’s certainly not what I would expect if someone gave me a “local UI” for some database. I’ve only just once toyed with duckdb, was planning to look more at it - looks like will need to have my guard and see what actually is “local” and doesn’t ship my data to a remote url.

szarnyasg · 5 months ago
I'm a co-author of the blog post. I agree that the wording was confusing – apologies for the confusion. I added a note at the end:

> The repository does not contain the source code for the frontend, which is currently not available as open-source. Releasing it as open-source is under consideration.

rastignack · 5 months ago
Some people work in serious work environments, on heavily regulated data. Thanks for another software landmine !

Make it opt-in, or not installed by default please, it’s so hazardous.

memset · 5 months ago
The actual UI is not open source.

(Someone could write an actually open source UI extension for duckdb, but that would require a lot of investment that so far only motherduck has been able to provide.)

dowager_dan99 · 5 months ago
I've looked at quite a few options, and this one (the product of a single person) is a great base, and MIT licensed: https://github.com/caioricciuti/duck-ui

If you want to support a real OS UI take a look.

frankc · 5 months ago
I find the SqlLab in apache superset to be very good, and I have duckdb as a data source (anything that supports SqlAlchemy works). It works very well. To be honest, when I first saw the screenshot, I thought it was SqlLab. I haven't actually tried the duckdb ui, though.
rastignack · 5 months ago
And so the malware-izarion of duckdb begins. Investors need revenue I guess.
IshKebab · 5 months ago
Honestly I hope they keep some things proprietary. Just making everything FOSS is not a sustainable business model, and I would quite like DuckDB to continue to exist.

I have similar concerns for Astral. Frankly they're single-handedly unshitifying Python, and it would be a tragedy if they run out of money and we're back to dealing with Pip.

bigfatkitten · 5 months ago
So just to clarify, it's not really a local UI, ie I can't use it on an airgapped machine?
thenaturalist · 5 months ago
Concur, this is rather confusing wording and the GUI components are closed source as far as I can see.
fenghorn · 5 months ago
The UI aesthetics look similar to the excellent Rill, also powered by DuckDB: https://www.rilldata.com/

Rill has better built in visualizations and pivot tables and overall a polished product with open-source code in Go/Svelte. But the DuckDB UI has very nice Jupyter notebook-style "cells" for editing SQL queries.

miked98 · 5 months ago
Rill founder here, I have no comment on the UI similarity :) but I would emphasize our vision is building DuckDB-powered metrics layers and exploratory dashboards -- which we presented at DuckCon #6 last month, PDF below [1] -- and less on notebook style UIs like Hex and Jupyter.

Rill is fully open-source under the Apache license. [2]

[1] https://blobs.duckdb.org/events/duckcon6/mike-driscoll-rill-...

[2] https://github.com/rilldata/rill

archon810 · 5 months ago
I love HN. Random comments about some service out there and replies are like "I am the founder" or "I wrote that".
westurner · 5 months ago
WhatTheDuck does SQL with duckdb-wasm

Pygwalker does open-source descriptive statistics and charts from pandas dataframes: https://github.com/Kanaries/pygwalker

ydata-profiling does open-source Exploratory Data Analysis (EDA) with Pandas and Spark DataFrames and integrates with various apps: https://github.com/ydataai/ydata-profiling #integrations, #use-cases

wodenokoto · 5 months ago
Is there a video of your talk?
ayhanfuat · 5 months ago
Hamilton Ulmer was involved in both. Back when Twitter was a thing it was really cool to follow his process.
articsputnik · 5 months ago
markhalonen · 5 months ago
I suggest https://perspective.finos.org/ for data viz to be built in. We use DuckDB paired with Perspective for client-side BI use case, and it's been great.
mritchie712 · 5 months ago
+1

we're using Perspective in crabwalk[0] (it's like dbt specifically built for duckdb and written in rust) and it's amazing paired with duckdb. Near instant loads for hundreds of thousands of rows and you can keep everything in arrow.

0 - https://github.com/definite-app/crabwalk

0cf8612b2e1e · 5 months ago
Where are you using/advocating crabwalk?

It does look interesting, but for the local ETL use case, I am missing the pitch on just having my own collection of SQL scripts. Presumably the all-local case needs less complexity. Unless the idea is that this will eventually support more connectors/backends and work as a full dbt replacement?

texodus · 5 months ago
Glad you dig it! Check out our pro version to - it also support DuckDB, Python/Pyodide and more! https://prospective.co
pepperonipboy · 5 months ago
Wow that's really cool! Part of my PhD thesis was about writing stable treemapping algorithms for temporal data. The idea being that you want your treemap cells not to fly around like what I'm seeing in your demo, but to remain more or less in the same position without sacrificing too much on the cells aspect ratios. We've come up with a pretty effective and fast method to do that, check out the paper and a demo down below. Maybe we could even do a collaboration to get this implemented in perspective.

https://github.com/EduardoVernier/eduardovernier.github.io/b...

https://youtu.be/Bf-MRxhNMdI?list=PLy5Y4CMtJ7mKaUBrSZ3YgwrFY... (see the GIT method)

tobilg · 5 months ago
Have a look at https://sql-workbench.com eventually, as it's using DuckDB WASM & Perspective to render the query results. Let me know what you think!
markhalonen · 5 months ago
This is actually how I discovered Perspective!

Deleted Comment

ciupicri · 5 months ago
The online demo looks great and promising, too bad it's unusable for me. I've tried installing it with conda from conda-forge and no luck. I've tried installing it with pip, the same. I've also cloned the repository from github, tried to build it and failed, but I don't remember the details.

Why is some software so difficult to install beats me.

timkpaine · 5 months ago
Have you ever reported an issue? I use perspective heavily on a variety of platforms both conda and pypi without any problems.
dleeftink · 5 months ago
Why Perspective? If going for a D3 wrapper, Plot would offer more flexibility.
summer_avery · 5 months ago
We've built a nice integration for Plot + DuckDB, found here: https://www.duckplot.com/!
stared · 5 months ago
I really like the columns explorer, https://motherduck.com/blog/introducing-column-explorer/.

Just a few days ago I have been looking for existing column explorers that look like from Kaggle Dataset, but I was not able to find anything. And this one by DuckDB is better!

thenaturalist · 5 months ago
I have seen a ton of DB GUI clients/ cloud based data tools for analytics purposes and the fact that MotherDuck's column explorer/ column data distribution is hands down the best I know is puzzling me.

It seems nobody else besides them cares.

Seeing data distribution, unique values, min/ max/ percentiles is so easy and powerful.

Really commend whoever came up with that.

It's a bit of a shame this metadata cannot be queried itself, would be immensely useful for automatic data profiling/ QA at scale.

aszen · 5 months ago
stared · 5 months ago
Do you know if there is any open source TypeScript component that can be used in a project?
mritchie712 · 5 months ago
it's partly bc this would be extremely slow and expensive with many other databases (e.g. it'd be really slow on postgres, very expensive on snowflake).
oulipo · 5 months ago
Seems heavily inspired by the column summary of ObservableHQ, but that's nice!
hamilton · 5 months ago
(I designed and built the Column Explorer feature)

Observable's column summary feature is very nice! But I do think there's a very common lineage around these kinds of diagnostics which motivated both Observables and ours. See Jeff Heer's profiler paper[1] for more.

I'm very passionate about this area because I think "first mile problems" are underserved by most tools, but they take the longest to work out.

We had to do some gnarly things[2] to make this feature work well; and there's a lot of room to make it scale nicely and cover all DuckDB data types.

[1] http://vis.stanford.edu/papers/profiler [2] https://motherduck.com/blog/introducing-column-explorer/

jarpineh · 5 months ago
The UI looks nice and is by itself a welcome addition.

I am somewhat at odds with it being a default extension build into DuckDB release. This still is a feature/product coming from another company than the makers of DuckDB [1], though they did announce a partnership with makers of this UI [2]. Whilst DuckDB has so far thrived without VC money, MotherDuck has (at least) 100M in VC [3].

I guess I'm wondering where the lines are between free and open source work compared to commercial work here. My assumption has been that the line is what DuckDB ships and what others in the community do. This release seems to change that.

Yes, I do like and use nice, free things. And I understand that things have to be paid for by someone. That someone even sometimes is me. I guess I'd like clarification on the future of DuckDB as its popularity and reach is growing.

[1] https://duckdblabs.com

[2] https://duckdblabs.com/news/2022/11/15/motherduck-partnershi...

[3] https://motherduck.com/blog/motherduck-open-for-all-with-ser...

edit: I don't want to leave this negative sounding post here without addendum. I'm just concerned of future monetization strategies and roadmap of DuckDB. DuckDB is a good and useful, versatile tool. I mainly use it from Python through Jupyter, in the browser and native. I haven't felt the need for commercial services (plus purchasing them from my professional setting is too convoluted). This UI whilst undoubtedly useful seems to be leaning towards commercial side. I merely wanted some clarity on what it might entail. I do hope DuckDB and its community even more greater, better things, with requisite compensation for those who work to ensure this.

mytherin · 5 months ago
One of the DuckDB maintainers here. To clarify - the UI is not built into the DuckDB release. It is an extension that is downloaded and installed like any other extension. This extension happens to be developed by MotherDuck. We collaborated with them to streamline the experience - but fundamentally the extension is not distributed as part of DuckDB and works similarly to other extensions.

To be specific, the work we did was:

* Add the -ui command to the shell. This executes a SQL query (CALL start_ui()). The query that gets executed can be customized by the user through the .ui_command option - e.g. by setting .ui_command my_ui_function().

* The ui extension is automatically installed and loaded when the start_ui function is executed - similar to other trusted extensions we distribute. The automatic install and load can be disabled through configuration (SET autoinstall_known_extensions=false, SET autoload_known_extensions=false) and is also disabled when SET enable_external_access=false.

jarpineh · 5 months ago
The nature of UI as an extension is somewhat hard to understand, since its installation method differs from other extensions. Even core ones. Some extensions autoload, some require INSTALL query, and this one has its own special builtin query. It at least feels more ingrained than other extensions by its user experience.

Then there's the (to me) entirely new feature of an extension providing a HTTP proxy for external web service. This part could have been more prominently explained.

Edit: the OP states that "built-in local UI for DuckDB" and "full-featured local web user interface is available out-of-the-box". These statements make me think this feature comes with the release binary, not that it's an extension.

To clarify my point: for me it's not the possible confusion of what this plugin does or how, but what this collaboration means for the future of DuckDB's no-cost and commercial usage.

simonw · 5 months ago
Reminiscent of what Deno are doing with their Deno K/V feature, which works in the open source project using SQLite but gets a big upgrade if you use it with Deno Deploy: https://til.simonwillison.net/deno/deno-kv

I'm OK with this. Commercial open source projects need a business model. I get why this can be controversial, but the ecosystem needs to find ways to fund future development and I'm willing to compromise on purity if it means people are getting paid for their work.

(Actually it looks like the UI feature may depend on loading closed source assets across the Internet? If so that changes my comfort level a lot, I'm not keen on that compromise.)

jarpineh · 5 months ago
I have thought that the commercial nature of the (heh) mother company here, DuckDB labs, is support contracts and the like. Whilst MotherDuck is just another VC funded company in the DuckDB ecosystem. This new extension being added the list of default extensions blurs the line. That it seemingly is a proxy to closed source product from another company makes things even murkier. I can see a point for a for-pay external extension, but this one feels more like an AD for other company's services.
dowager_dan99 · 5 months ago
I don't see this as the same thing. Deno is an OS product within a commercial enterprise. DuckDB is an OS project/org; MotherDuck is a for-profit company. They have tight integration and partnerships but were largely independent. This seems to be blurring that line. There is a huge ecosystem around SQLite without this confusion.
simlevesque · 5 months ago
https://github.com/denoland/denokv

You can self host Deno KV since over a year.

blackoil · 5 months ago
I think primary concern is will DucDb pull something like RedisLabs. Wherein they are open source till it gets enough traction and after that pull the rug.
capkutay · 5 months ago
I think this is a bit of a non issue. The UI is just that, a UI. Take it or leave it. If it makes your life easier, great. If not, nothing changes about how you use DuckDB.

There is always going to be some overlap between open source contributions and commercial interests but unless a real problem emerges like core features getting locked behind paywalls there is no real cause for concern. If that happens then sure let’s talk about it and raise the issue in a public forum. But for now it is just a nice convenience feature that some people (like me) will find useful.

jarpineh · 5 months ago
That's one way of looking at it. To me this UI seems like both a useful tool and an advertisement.

There's another way this could have gone. DuckDB Labs might have published the extension as providing official HTTP API for all to use. Then simultaneously MotherDuck would announce support for it in their UI. Now with access to any and all databases whether in-browser, anywhere through official HTTP API or in their managed cloud service.

I for one would like HTTP API for some things that now necessitates doing my own in Python. I don't see yet much need for the UI. I'm not looking for public, multiuser service. Just something that I can use locally which doesn't have to be inside a process (such as Python or web browser). There's such API in the extension now, but it's without docs and in C++ [1]. There's also the option of using 3rd party community extension that also does HTTP API [2]. Then there's one that supports remote access with Arrow Flight, but gRPC only it seems [3]. But official, stable version would be nice.

[1] https://github.com/duckdb/duckdb-ui/blob/main/src/http_serve...

[2] https://duckdb.org/community_extensions/extensions/httpserve...

[3] https://github.com/Query-farm/duckdb-airport-extension

RyanHamilton · 5 months ago
Congratulations on the launch. Looks very cool. If anyone is looking for a local non Web based editor please check out qstudio: https://www.timestored.com/qstudio/help/duckdb-sql-editor
noisy_boy · 5 months ago
I use studio for kdb, didn't know it can be used with duckdb too.
ryguyrg · 5 months ago
i’m one of the co-founders at MotherDuck. our team is building the UI in collaboration with the team at DuckDB Labs.

this is a first release. we know there are going to be tons of feature requests (including @antman’s request for simple charts). feel free to chime in on this thread and we’ll keep an eye on it!

meanwhile, hope you enjoy this release! we had lots of fun building it.

ayhanfuat · 5 months ago
> The DuckDB UI is also fully open source: visit the duckdb/duckdb-ui repository if you want to dive in deeper.

Is this really the case? The repo doesn’t seem to have any ui elements?

ryguyrg · 5 months ago
We updated the video [if that's the reference], because it is not yet open source. Thanks for pointing that out!
datadrivenangel · 5 months ago
Y'all at MotherDuck are doing such a great job that I encourage you to not try and muddle the open/closed source divide, at least not this early in the startup lifecycle. Having a local MotherDuck interface is awesome, and doesn't gain much by being 'open source'. Wait to cash out on the community good will when the rewards are higher.
TheFlyingFish · 5 months ago
After playing around for a while, a few things come to mind:

* Being able to specify a db at startup would be pretty cool. I'm teaching a class on SQL this summer and I'm already envisioning workflows where a gatekeeper proxy spins up duckdb-ui containers on-demand for users as they log in/out, and it would be much better if the UI can be pre-seeded with an existing database.

* This is maybe a big ask, but markdown cells in notebooks would be nice. Again thinking of my classroom use-case, it would be nice to distribute course materials (lessons/exercises/etc) as notebooks, but that's a bit of a non-starter without markdown or some equivalent content-centric cell type.

* Not a feature request, I just have to say I'm a big fan of how well it handles displaying massive datasets with on-demand streaming and all. I was imagining that I'd have to introduce the `LIMIT` clause right off the bat so that people don't swamp themselves with 100k's of rows, but if I end up using this then maybe I can hold off on that and introduce it at a more natural time.

Regardless, this is great and I definitely have uses for it outside the class I mentioned, so thanks!

chrisjc · 5 months ago

    duckdb -ui pre_seeded_db.db

    duckdb -ui -init startup.sql
where startup.sql contains various statements/commands like `.open pre_seeded_db.db`

Alternatively place statements/commands in `~/.duckdbrc` and just run `duckdb -iu`.

simonw · 5 months ago
Is this feature open source?
plipt · 5 months ago
Maybe you've already seen, but it appears the answer is no, based on xemoka's comment here quoting someone at duckdb

https://news.ycombinator.com/item?id=43344932

999900000999 · 5 months ago
How do you compete with Supabase ? Do you have a built in authentication system? Anything like edge functions.

I've been trying to build a small card game with Supabase and I'm sorta stuck...

dowager_dan99 · 5 months ago
Supabase IMO sits in the middle of the curve between Firebase and PocketBase, not really the same use case as DuckDB & MotherDuck.
jscheel · 5 months ago
Not really the same use-case. DuckDB is more for read-heavy analytical uses.
probotect0r · 5 months ago
The form to get the free e-book doesn't seem to work.
sigzero · 5 months ago
I just tried it. Worked for me.

Deleted Comment

sunshine-o · 5 months ago
I do not know much about DuckDB but it sure looks awesome.

Something I haven't found yet is a small swiss army knife for time series type of data: system and network monitoring, sensors and market data.

I usually put everything in Prometheus but it is awkward.

I would really love to find something I can query intuitively with SQL, have very basic plotting capability, read/parse some log files, can be queried without having to deal with REST/JSON, and support adding data with pushes.

I am wondering if this is not within DuckDB broad capabilities...

tobilg · 5 months ago
Have a look at https://sql-workbench.com eventually. It runs DuckDB WASM in the browser, and with Perspective, which is used for data visualization, you can also visualize timeseries.

You can either drag & drop data, or use remote data sources via https

pants2 · 5 months ago
You might give QuestDB a try, it supports all the above except native graphing, though it does support Grafana and have a nice query UI. It's lightweight and blazing fast in my experience.
sunshine-o · 5 months ago
Thanks, it looks awesome !
raoulj · 5 months ago
Duckdb cannot plot on its own. You would need to bring in matplotlib or some alternative.