0:00Thank you for your persistence. Again, apologies. My name is Jerel. I'm on the marketing team here at MotherDuck, joined by Alex, one of our dev rel. We're going to be talking about dives today. We've been a lot around dives, and it is an exciting moment here at MotherDuck. Dives are
0:19not just some static visualization, a chart. Alex today is here to show you how you can really make them more interactive and fun. We had one of our sales guys add a little guy riding a bike through his dive. You can filter. You can double-click on things. You can zoom in. You can
0:40create really whatever you can think of. With that, let me hand it over to Alex to get going, and I will make sure that everyone else gets the link to get in here. Sweet. Do you mind popping those slides up? Yes. Where did it go? I did say the word slides. There you go. I promise that we will do slides just briefly, and then we're going to jump into
1:01live demos. We're absolutely saving time for Q&A, so please go ahead and build up your questions and save them. You can also put them in the chat, and I will read those off at the end as well, so keep the questions coming. First of all, what is a dive? We coined this term as a part of our product. A dive is data visualization that you build right inside of your AI agent
1:25workflow. If you're using Claude, either Claude Web, Claude Desktop, or Claude Code, you can use ChatGPT. You can use Cursor, and within there, you can actually connect our MCP server, our Model Context Protocol server, and then that will allow you to build that visual just interactively with that agent. You can ask the agent, hey, I'd like to build a visual about
1:47this dataset. I'd like to have it look this way. My questions that I'm trying to answer are these questions. You can also ask very open-ended questions, like please investigate anything that looks interesting or odd or anomalous about this dataset, so a lot of fun ways to interact with that. A key part of dives beyond just the built-in artifacts you
2:11can build with existing agents is that these can be shared across your whole organization, and so as a part of that sharing, you can have a central source of truth for this type of reporting, and then also they're refreshable, so an artifact traditionally from an AI agent is created one time and it's created that one time, and it becomes stale as soon as you create it,
2:33whereas dives are live and update with the latest data as you visit them again. We can also search through previously made dives, so that's very helpful, so we don't end up with everyone always creating a new thing from scratch. It's also, you know, discoverable, explorable, where you can go and find these existing dives. We'll see one way you can actually see the entire community's dives with dive templates. You can also search through your
2:57own organization, so you can see all the dives that are custom for your company's data. So we'll talk a little bit about how to set it up. Essentially, you'll be connecting with the MotherDuck MCP. It's a remote MCP, so there's no local setup, which is really nice, and it teaches your agent everything it needs to know to build a dive. Then a dive, really fundamentally, is a
3:18React app, and it's a single-page React app that has the ability to also issue SQL queries to MotherDuck, and this is great because there's a lot of React code on the internet, and there's a lot of React code in the training dataset for these LLMs, so this is not some kind of custom, bespoke, you know, syntax that LLMs need to learn. They're writing code that they're very good at writing at
3:41this point, both React and then SQL, when you're issuing the database query sign. So that's kind of the fundamentals of how it works. A little bit about what we think makes them particularly exciting. Why are we so excited about it? Well, the first thing is it's incredibly easy to use. We have a variety of customers using them, where their whole organization is able to dig in and investigate.
4:04Within our own company, this has really kind of unleashed our sales team and our customer engineering team to really create a huge variety of different things. And so, not necessarily folks that have written any code before in their entire lives, right? This is not something that requires code. It is very, very approachable, and we've had people kind of sharing
4:28it throughout the organization, so it's not just someone improving their own workflow. It's really the whole team, you know, rising to heights, lifting all boats. The next part is that MotherDuck is really tailor-made for this kind of visualization workload. We can handle really large datasets very, very quickly, and in particular, at a very low latency. So there's no big spin-up time.
4:50Our spin-up time is under half a second, and then queries can be half a second or less as well, even on very, very large datasets, billions of rows. So we're a very good fit for that. Another secret power of MotherDuck that really comes in handy, we'll see it in a couple of the demos coming soon, is this concept called dual execution. So dual execution is the ability for part of your
5:12query to run remotely on our big, beefy servers, if you need the big, beefy servers. We also have lightweight servers, if you need those. And part of the query to run locally, all the way in your web browser. So why would you want to do that? Well, in your web browser, you don't have to wait for data to go all the way back and forth over the network. It can be instant. So we'll see some queries that
5:34take about 10 milliseconds to run, which is physically impossible if you have to talk to a server. So you get incredible interactivity with your datasets that way, which really can really make for a very delightful experience where you can investigate very, very rapidly. And lastly, we also have this concept in MotherDuck called hypertenancy. This is somewhat of an industry term,
5:55but also one that we've really, you know, invested a lot in as well, kind of focusing on. What that means is that each person that connects can get their own isolated sandbox. So there's a lot of talk about agent sandboxing, about having your agent run in a protected way. Well, likewise, is there a sandbox for your data warehouse? MotherDuck provides that at the architectural level.
6:20Every customer kind of automatically gets their own sandbox by user. So it's a really great way to have each visual load as quick as possible. Nobody's waiting in line. And the agents also, there's no way to really have that kind of crosstalk as well. So really helpful for something that is as widespread as DICE, where the whole organization can get involved.
6:45So how to get going? What does it take to use it? Well, the first thing is to add the MotherDuck remote MCP to your agent of choice. And this screenshot is showing how to set it up in Cloud. As I mentioned really briefly, there's no local installation for this. All you have to do is connect with that connector, and we're actually hosting the MCP server for you.
7:07So there's nothing to install, nothing to run or to manage. You just have to configure it. And then as soon as you configure it, you will log into MotherDuck. It's incredibly smooth, and that's a big part of what's enabled our entire sales team to go crazy with this, because it's not something where you have to understand
7:28the mechanics of how the fast-moving AI world behaves. We've got you covered. So once you connect to the MotherDuck MCP, you've already done the hard part. Then you explore your data, and you ask for a dive. And it really is that simple. That keyword is enough for our MCP to have provided some context to your agent that says,
7:51if someone asks for a dive, take these steps. We also do see some for trickier questions or things where you know what you want to explore. If you ask a few warm-up questions to the AI, give it some context where it hydrates some context about your data, and then ask for a dive, that also works very smoothly as well. And again, you don't have to get the exact question
8:16right on the first try. That's the beauty of an agent. This is iterative. So it'll create a dive for you. You'll be able to take a look at it, be able to say, oh, interesting. Can you add some more data about chart A? Can you go investigate this other table, this other data set, et cetera? And then you get to go back and forth and dive really deep. If you're working with Claude Code, it has some extra goodies as well.
8:39So someone already asked about this in the chat. So thank you for your great question. Do we have to look at this on MotherDuck, or is there a way to do a local preview? And there is an ability to do a local preview. So that way, you can very, very quickly iterate on your dives. That local preview does talk to MotherDuck to get your data, of course. So that way, you can pull the data. But the actual React rendering and re-rendering and things of that nature are all
9:02local. So you can iterate super quickly. Similarly, if you're using Claude Code, might be because you want to manage your visuals as code. At the end of the day, a dive is a single file. It's a . jsx file, which is just a React file. It's just TypeScript, JavaScript. And so you can check that into source control if you'd like. And you can manage it and
9:24diff it and do everything that you'd like to manage it via code. But that is optional. I have made dives that are pretty darn complicated without ever reading the code. And that's someone who likes to write code. It's kind of like something that's a part of my identity. I like being a person who codes. But it's optional, fundamentally optional.
9:48And last, Claude Code also has an increased context window compared to Claude Web. So you can do your most complex diving in something like Claude Code. And then we do have a little bit on the roadmap. We'll talk about that after we see a couple of demos to see what we already have today. And so a couple of your questions were around roadmap items. So we'll get to those here before too long. So keep your questions coming.
10:11Put them in the comments. And we will get to them either on the fly or as we go. Sounds good. Awesome. All right. You ready for me to swap over to your screen here? Yes, please. Remove that one. Actually, let me make sure we got through any of these questions that were relevant that we're not going to get to later.
10:36Kim was asking, how can I compile the React code generated from a dive? That's a good question. The local preview server from when you're running with something like Claude Code, we actually include all those instructions about how to install the preview server and how
10:56to run it in those messages that we're sending to the agent as prompts. And so it is actually one of those things where it's the old joke of the new keyboard we need is just a one and a two, right, to accept the answer from the agent. But essentially, that's all you need to do is say, hey, I'd like to make a preview of this. The agent will then say, OK, my instructions have
11:17already told me what I need to install. Do you give me permission? And as soon as you get permission, it will install it and then the local preview will work. So that should be something where, again, no understanding of even that React needs to be compiled. You're way ahead of the game is what I would say. And the rest should be handled by that preview server.
11:38Awesome, cool. And then Ahmed, I see you had a question about using Claude Code to create dives locally. I think we have a blog post on that that Garrett, who's on the call, did. I'll share the link to that in the chat. I think today we're going to be doing it mostly within Claude AI,
11:57if I remember correctly. So with that, let me add Alex's screen to the stage. Sweet. Awesome, man. Sahil, thanks for your question. I'm getting to that immediately right here with the screen share. So thank you for that. Great to see you here. Thanks for being here. So this is a look at a first good place to start with dives. And that is to kind of get a
12:18sense of what's possible. And this is our dive gallery. That's just motherduck.com slash dive hyphen gallery. This is a public site. Feel free to take a look. And this is sort of a way to see what templates people have built and what is possible with dives. You can see things that are public. And then as you sign up for MotherDuck, you'll also be able to see
12:40things within your organization. So you'll be able to see all the dives that the rest of your company is building. What that means is that you can share a dive, and then you'll be able to view that dive and then copy it into your workspace to be able to use it. So you'll see a preview here that will load interactively. So this is our first look at a dive. You can see that we're looking at
13:01the night sky, and I'm able to hover over the various stars and see the various constellations, which is pretty wild. And if I'm interested in this, I can actually just copy the dive straight to my account. And then I'll be able to use it in MotherDuck and view it there. But then also, I'll be able to revise it. And I'll be able to work with it in my agent harness of choice to
13:22go ahead and say, hey, what I'd actually like to do is make this a little bit brighter. Let's pretend, you know, or what have you. Any change you could possibly make is just one prompt away, as we like to say. So that is a look at our dive gallery. Definitely upvote the ones that you find most fun. And we'll be looking at a couple of samples from here. I just happen to have preloaded
13:44the tabs, but we'll look at a couple samples from here as a few demos. So the first demo is a little bit like the night sky, but this one is actually all about earthquakes. So we are looking at a global earthquake explorer. This is a demo coming from the Mosaic project, as well as the Observable project. So these are visualization frameworks that also found this to be a really
14:06cool thing to look at. So what you can do, for example, is you can interact with the globe by, you know, zooming in, zooming out, and moving around. But you can even actually play a fully interactive video of these earthquakes. So we can see, you know, it's moving across time. So this is looking back in April of last year, where the earthquakes were occurring. We can see, of course,
14:28you know, the Pacific area has a large number of earthquakes in various places. You can filter it differently and say, you know what, I really only care about the giant earthquakes. Where were those? And so you can see over time that there's a lot fewer being added, because those are less frequent. So quite a lot of different ways to look at that. But again,
14:50this doesn't necessarily even feel like a chart or dashboard, right? This feels like a data app. If you are looking for a more traditional dashboard style, absolutely possible as well in DIVES. So you can have nice interactive charts, you can have slicer filters. So if I wanted to look at things in South America, all my charts are able to update very quickly.
15:14And we can look at, you know, a variety of different ways to look at this data. So really a huge range from highly interactive, really in a lot of different ways. So that's a look at kind of global earthquakes. Let's switch and look at a very different slice as well. This is looking at airline flights. And this is highlighting our dual
15:37execution feature. So this is actually looking at 10 million rows of data. And it's bringing that 10 million rows of data all the way into your browser. Which just goes to show that browsers and laptops are really powerful these days and internet connections are very, very fast. Once that data is there, we can explore this really interactively. So I can do something like, let's look at the flights that are most delayed.
15:58When did they take off? Interesting. The ones that are most delayed are the ones that took off the latest at night. And that kind of makes sense. Because if you're delayed by a whole lot of time, maybe you're taking off not until the morning crew comes in. Similarly, if I really wanted to make sure that I don't have a lot of delay, or if I leave early, well, it looks like I need to be the first plane out of the airport to be able to get out of there.
16:21Likewise, we can also see if there's a correlation between short flights and long flights. You know, if I look at very long flights, it looks like there are, you know, moderate amount of delays there. The shorter flights, you can see that there are many more of them that are on time because they're more routine. But again, each time I am dragging, this field here, this is actually running a SQL query. And that SQL query is not having to talk
16:44to a server, it's talking just to the data that's already in your browser. And it's able to answer that SQL query in 10 milliseconds. And so that's what gives you that incredible interactive, you know, BI kind of level of experience in this very flexible environment that we have here of dives. Let's look at another totally different type of interactivity here that kind of feels more like
17:06the data app style. So this is actually a real world example. So Connor that works here at MotherDuck is a competitive ski racer. There's no ski racing, which is awesome. Already sad that the Olympics are over. But this is a way to assign skiers to various groups of skiers.
17:27So we've got the women's super elite, the women elite, men's super elite, the men elite, and the interactivity part of the dive is firstly, we have a query that's actually doing a first pass to generate this. So initially, there's some SQL logic to decide who should be in which group. But I can look at each individual person, I can see their races that they've done, I can I can understand, you know, if they if they won the race, how much slower they were,
17:52their races that they've done, I can I can understand, you know, if they if they won the race, how much slower they were than the leader. If I click on individual races, I get all the rest of the racers to see all the details there. And then I can actually decide to change somebody. So oh, well, this person, you know, actually, they raced in a lot of races, they did quite well,
18:13maybe I will bump them up to group one. So I move them there. And then okay, maybe we'll demote this person down to group two, right? This is actually something that they used to assign the racer groups for one of their next races. And then what they did is they copied it to a clipboard. And they were able to actually go take action on it in the real world. So that's one
18:37important and powerful thing about dives. They are in a sandbox that run in your browser. And then to talk to the server, it talks to MotherDuck, which has that nice sandbox on the server side, that's also very specific to you. So that sandboxing means that it is nice and under control. And that's part of what allows us to do any react you could possibly imagine, but in a safe way.
19:00And so to to kind of bring things back out of that sandbox, there's a couple ways, I'll show you another one on the next dive. But copying to a clipboard is another way to bring things back out of that sandbox that we're in. So that is a real world useful app. This took the time that it took to do this assignment down from, you know, weeks of back, I think, at least days of back and forth
19:21conversations to 20 minutes, talking together, coming up with a plan and executing the plan. So that's a real world example where an app, a data app, saved everybody a lot of time. Shout out to Connor. So this next one, I think, is really interesting. This is
19:41built by someone on our sales team, Dermot. So Dermot is not would not call himself a programmer, right? I don't feel bad for saying it. I don't think he would come in and say I'm a programmer. No, he's on our he's on our sales team. He he but he has a deep background and expertise in the oil and gas industry.
20:00And as a part of that, he understands what it takes to go and look at an oil and gas well and understand how well it's performing and predict its performance and see if it's a worthwhile investment as an oil and gas well. So we have a map here. It's fully zoomable and panable, so we can go ahead and look in and see each individual well in this particular county
20:25location. We can do some cross filtering, so we can look at specific, I think we want to look at 6n here. We can shorten our range here. And we can get a whole lot more details about those wells. So we'll zoom in. What we've done here is we're now looking at this little quadrant here. So we're nice and zoomed in. From there,
20:48we can see information about, you know, what does the production look like of that well? We can forecast that production and say, what do we think we could do? If we were to purchase this well, how much could we improve the output of this well? Maybe I think we can do a better job. Right. So maybe I think we can do a whole lot better about that. And we can see how profitable
21:09that well could be with various scenarios. Likewise, I can also look at and understand some pros about this information, right? So this is not just pure charts. It's also teaching me how to interpret the charts while I use it. And then, as we talked about, there's
21:28some ways to kind of jump out and back into the real world as well, beyond these apps as well. So there's a couple of different ways to do that. One of the ways is this actually can connect out to Google Docs. So you can jump out and say, hey, show me some documents that I have about about this information. So you can jump to a separate link.
21:51It's also possible to jump to a link about the wells themselves. And I am looking for the exact link to hop to. I believe it is actually more in the, yes, here we go, the well logs. So what I can do is I can control click on that, and it will take me to a public site.
22:12And we'll go ahead and we'll search through the actual publicly available records on those wells brought to us by Oklahoma. Thank you, Oklahoma. But this is a real way that this is a full app experience, right? This is integrating together with other data sources you may already have at your company. Maybe there's an internal site. And the way we did that is we just
22:32we just passed along some information on the URL. We said, hey, based on what I clicked on, I want you to go to this web page. And this is all these are all concepts that Claude and other agents are super familiar with. You can say, hey, when I click on this, I want to go to this web page and I want to filter down to just this particular well. So we've looked at a wide
22:54variety of interactions on this dive alone. We've got visuals, we've got images, we've got wide variety of interactions on this dive alone. We've got visuals with adjustable parameters to actually change the way the lines are drawn. We've got expanded collapse interactivity. We have multiple different tabs. We have a map component. And then we even have linking out
23:13to external sources. So huge variety. And again, the number of lines of code written by human for this app was zero. Oh, go ahead. Go ahead. I'll let you finish. Sorry. That's what I had. I was going to say, you know, we had a bunch of great questions in the chat, too. And I
23:35there's a couple of people asking, do we dare tempt the demo gods and do a live demo of us building? Maybe we'll go relatively simple app and we can maybe take some of the questions as the MCP is doing its work. What do you think about that? We can think about doing that. I think we're also thinking about doing a future session as well.
23:59So I think that's one of those where like, you know, tune in next time on this episode of, you know, a little bit. But what we can talk about and maybe I'll flip back to the dive gallery as an example. So with each of these dives, people have the option to include the prompts that were associated with creating them. So you can actually see this is what it takes to
24:20create the prompt. This is a single prompt. This dive was one shotted and we got a rich, interactive visual that analyzed a variety of information about the very famous New York City taxi information. So we encourage you as you share your dives, as you experiment, poke around,
24:39save your prompts and include them here to inspire people. But this is what it takes, right? This is a couple of sentences. Create a dive in MotherDuck. This is kind of the set of keywords that allows us to trigger the MCP to go ahead and use the instructions we include in the MCP. So create a dive in my MotherDuck account and look at some taxi data in the sample data repo. Again, not specifying the exact table name. You don't have to remember that.
25:05And then, hey, I want to see a dashboard that a logistics company might want to use in my day-to-day operations. Show me operationally how things are going. Pretty cool. And that might be your first prompt. And then you can further iterate. Yeah, yeah. Try it out. It's great. I will tease too. I think we're in the works of planning maybe a little contest to see who can
25:25make the most creative, maybe even fun, or dare we say, unhinged dive. Stay tuned for that. That is coming. So maybe get in early, get into practice, try creating some dives of your own, seeing what you can think up and create. Yes. So the puns keep coming. So I would say dive in the deep end
25:50with us and give it a try. Cool. Let me get through some of these questions. And thank you to Garrett, who is on our team here, to answering most of them already. But let me go through and see if there are ones that we need. Man, I keep saying dive into. I feel bad about saying dive
26:09deeper in. Let me make sure. So we talked about getting the works with Claude Code. We can get the React. Oh, yeah. Travis is asking here. Let me post this up here. Let me remove your screen for
26:30now. Travis is asking, checking in from the field, how can I use MotherDuck Dive to bridge the gap between realtime SQL data and physical site execution logistics? That's an excellent question. So maybe if you could flip back to our slides real quick, Jerel, we can use this as a
26:50segue directly into kind of talking about our roadmap. As of today, it's something that we have available already in the product, which is embedded dives. So that's kind of the first step of taking this back to the real world, is now within your existing apps, a dive can live right alongside it. And that would be in an iframe, in this nice sandbox environment that we have,
27:14using your MotherDuck data, right in whatever app you'd like to provide to your customers. So that's kind of the very first way. The second way is right below that, is we are planning to add dives with write back capability. So what that would mean is that you could actually be editing your data, and we already have the ability to store things kind of local in your browser.
27:34So you can restore where you left off, for example, when you refresh a dive, if you ask Claude for that. However, we also want to make that possible, you can write back straight to your MotherDuck databases. And what that would allow is to then, you know, have a variety of workflow triggers that trigger off of that. So you could have maybe like a modifications table,
27:55or emails I want to send table, or a whatever actions you want to take type of table. And then you just have some extra thing you have running in the background that's on a schedule to go ahead and check that table and say, hey, do I have any new tasks in there and then go kick that off. And that is also something that's quite possible, some of the new agent features like schedule
28:15tasks and loops, where together with the MotherDuck MCP, you can very easily read right back out of that table. So even within the agent environment, you already have all the tools at your disposal to build loops at that point, to where you can write back from a dive and then take action in the real world. And again, this is, you know, native to your agent, which is a really, you know,
28:37great environment that's easy to use, very approachable. So that's kind of directly related to your questions, kind of the roadmap items. A couple more that we are excited about as well are endorsed dives. So today, as people create dives, we have this, you know, dive gallery as a way for people to upvote things. But we also want to be able to give the option where if you'd like to have an admin review a dive to ensure the calculations are great before you share them with
29:01your board or your executive vice president or what have you, we're going to give the option of having endorsed dives specifically. And we're also going to be adding more granular permissioning systems to the dives. Today, dives are permissioned via your data. So if you have access to the data, you can do a dive on the data. So there's some extra granularity we want to add there around
29:24permissioning systems, just to give you more options for how you want to control access to your dives. So great questions. And we agree with the questions that you guys are asking. We're excited about the same things. Yeah. Okay. I had a couple questions about the architecture, I think specifically around kind of the dual execution. Someone, you know, saying one,
29:49you know, doesn't it break the UI to load millions of rows of data in your UI at once? I think David is saying, I'll post this one here, you know, in terms of architecture, raw data is moved to the browser and local instance of DuckDB is running the queries question. Sounds like, you know, dual execution is the way. Correct. So the power of dual execution
30:10is that you don't necessarily have to move all the data to the browser. You can do as much processing on the server or the client as you'd like. So a very typical pattern that I'll see is the first query that takes my, you know, hundreds of millions or billions of rows of data and kind of aggregates it up to, you know, a daily view or a weekly view that, you know, dramatically
30:33reduces the row count. Then I'll bring that whole dataset down into the browser and I will cache it. And caching it is as easy as creating a temp table. You can also just ask Claude, hey, can you cache this in the browser? And it'll know how as well. And what that will do is allow you to then slice and dice and do interactive filtering on top of that, which we can see an example of here in a
30:53minute if we'd like. So you don't have to do that. In terms of what can the browser handle, it can handle tens of millions of rows. And so it is quite large, the ceiling of what you can handle entirely in the browser now. WASM is quite fast. Thank you for your questions. I saw another one about
31:13DuckDB WASM as well, about does it work 100% offline? Today our focus is not necessarily exactly on fully offline mode. There is a handshake that has to happen where we do take advantage of the server for that initial data download to go query your data. So there is, you will want an internet connection. So hopefully you're on one of the lucky aircraft that has, you
31:35know, a nice Wi-Fi while you're flying next. Otherwise, yes, it'll work great with all your internet connections. Okay, this is maybe highlighting a little bit of work that Jacob, someone else on our team has done, but I feel it comes up a lot in talking about AI and
31:56agentic workflows. A lot of agentic analytics rely on a semantic layer versus using raw SQL. Do you see that as a limitation here when it comes to context? Ooh, that's a wonderful question. Can you flip back so I can share my screen again? Yes, I can. So I think the answer to this is both and. So dives make a semantic layer optional.
32:22So we have a lot of thoughts around other ways we can find context. I think a lot of it today is around the prompt that you send to your agent as you're building your dives. So there are some ways that you have direct control of adding that context right at the time that you're building the dive. But we are also continuing to think about this as well. Jacob on our team, though, has done a lot of work to show that the biggest factor for having AI have success
32:47is high-quality data engineering practices. Are your tables well-structured? Are the joins clear and obvious? If there is a really difficult and messy join, have you created a view on top of it so that way the model, the AI agents don't have to rebuild that complicated join again and again? So really, it's in some ways what is old is new again, right? AI changes a whole lot of things.
33:12It can do SQL incredibly well automatically. But if you want to make the job easier for the AI, it's just the same as you'd make it easier for the humans. You make your data model more and more robust. Now, in the case that you do want to work with a semantic model, I want to show this visualization a little bit. This is a dive. But this dive was the product of
33:33me deciding how. . . I love pivot tables, so how crazy could we make it? Could we make a full kind of Excel-level pivot table in a dive? And then it spiraled from there. So what this gives you is a full visual interface for building dashboards. You can actually resize everything and drag it. You can move it around on a canvas. You can interactively filter every
33:56individual chart element. But more than that, it offers a lot of the customization on the UI side of things that you're used to with a BI tool. So today with dives, if you want to change the color of something, it's pretty easy. You ask Claude. Hey, Claude, or agent of choice, can you go ahead and change the colors on this? Here, we have other options, right? We can also do the same just by
34:21clicking on it. So it's just another way to approach the problem where we're actually bringing it to the UI instead of having it be back and forth with the agent. But we have a lot of choices around that. We can move our legends around. We can do a whole bunch of different things that we'd want to change about the chart. And then in terms of how is it built, we have the option here to do
34:41things by an individual table. So here, I just clicked on a table in my sample data. I've basically used the pivot UI that we're used to from Excel land. You know, what are my columns, my rows, my values. But again, highlighting some of the interactivity, right? I can just really quickly be adjusting these things. But all these drop downs, I just asked for it in a prompt.
35:04I said, hey, when I drag something, and it drags and drops as well, so I could do something like maybe I also want to, maybe I don't want to look at things by year, I just want to look at things overall. You can drag and drop just like you're used to with a pivot table. And I don't know, you know, I didn't have to build the drag and drop style. I didn't have to pull in a library
35:24for that. I said, hey, Claude, I want people to be able to click and drag from one, you know, area here to the next. And when I click and drag, I want to be able to kind of show a preview of what I'm clicking and dragging and have that preview kind of follow my mouse. And it did take maybe five or six prompts in this case to get that exactly right, but no code. So I promise I'm
35:45going to circle back around to the semantic layer side. And that is because semantic layers are another option that you have within this UI as well. This is using an open source capability called Malloy. It's a language for doing semantic modeling. It's highly compatible with a lot of other semantic models out there. And what you can do is you can define a semantic model and you can
36:06actually combine multiple tables worth of data into the same visual. So this pivot table down here, the manufacturer is coming from the manufacturer table, I believe. Let's see. Maybe I blew right past it. Yeah, it's coming, sorry, it's coming from the part table. So we've got one table coming here for the manufacturer. The name R is coming from our, maybe I should
36:30actually minimize and maximize some stuff. It's coming from our region table. And then the metrics are coming from orders or line items. And I didn't have to build a single join, but I'm confident the joins are correct because the joins are defined in my semantic model. And then I'm also able to go ahead and have it do that on the fly. So we can actually look at that semantic model here.
36:53So this is our line item model here. So let me just click to edit it. This is a Malloy semantic model. Basically, hey, look at this table, this is my primary key. Hey, look at this other table, this is how they join. Nothing too shocking there, pretty straightforward. And then I have this full interface to understand how these relationships have been put together. So I can
37:16expand and collapse, I can move things and drag them around. I can hover over the line and it shows me which columns they're actually connected on. And if I wanted to go ahead and edit the relationship, I actually have a full interface here where I can go ahead and I can edit the join logic directly here. So I can build a full semantic model right here in a dive. And you can imagine in the near term when we have write back, you'll be able to save that back.
37:40And then you'll be able to have, you know, with endorsed concepts, you'll be able to endorse that and then kind of upgrade that to be an organizational-wide model. And I won't demo it because it takes a little bit of time, but there's even an auto-generate option here. I did not actually write this model here. I have a way of doing that in the dive itself.
38:01How do we do that? All we have is SQL and React. How did we get an agent in there? Well, we have a SQL function called prompt to where we can talk to an LLM. And so any dive you build can also have an agent inside of it. And that's what I built here. When I hit auto-generate, it goes ahead, it pulls all my column names, sends them to the agent, says, hey, try and figure out this model. And it does it a couple of times on a few retries.
38:25And with some interesting prompt engineering, we have an entire model available. So semantic models are optional, but they're absolutely very, very helpful and useful. And we've done some thinking around the options that you have. So thank you for your question. And that was a very long answer, but hopefully just a couple more examples of the
38:47what you can build in a dive. And this is in that same dive templating, the dive gallery. You can look at the dive into pivoting one, and this works on all of your own data sets as well. So you guys could play with this right now. Awesome. Any other questions have come in while I was yapping? Many more. Let me keep going to see where I'm at. Oh, Aaron's asking,
39:13is it easy to hot swap one DB for another for low friction embedding? You know, thinking like, hey, how do we have to keep the same interface, but want to keep data segregated for, you know, for different clients? That's an excellent question. So Meldeduck is really excellent at doing this data segregation for specific clients. And the way we do that is we actually do this at the user level. So you'd create a separate Meldeduck user for that end client.
39:38And that separate user could have access to the same dive. And they would have a database called, you know, orders. And it would only contain their orders, for example. And so that way they would connect. You could have the exact same dive, but showing customer specific data about it. So that's absolutely a key part of what we're enabling here as well.
40:00I lost my place again. Oh, actually, I think I missed this one. Where did it go? Is, oh, yeah. Are dives available for local DuckDB, or is it only kind of the MotherDuck UI WASM version?
40:22So we do depend on WASM because that sandbox environment is what gives us the confidence to allow our agents to write any arbitrary React code. So we that's the balance we've had to strike. It is something where it is it is unique to MotherDuck, and it does use the WASM side for the browser side. Part of it, it runs on our servers and, you know, native native code
40:44on our side for full speed when you have a server side query. Got it. That makes sense. I think there was another one. It was is there or will there be road level security? That's an excellent question that is related to kind of that user specific question. We had a couple of questions ago. That is something that's on our on our roadmap. And we think that will be an additional way where you could have one table with one
41:07MotherDuck user and then be able to choose which rows people have access to when they connect. So that's absolutely a key part of our plan to simplify this. There are cases where you might want to use one or the other. So having separate users are nice because you have a fully separate sandbox. So you can have a lot of additional compute horsepower just for each person. So we're already pretty happy with the approach we have.
41:29And we think another alternative coming soon will be real level security. We are just about a time. Let me ask this one last question. Kind of back to the point on sandboxing and also on security is what is it? You know, how does security look like? Can dive users inject their own queries? Sure, that's a good question.
41:52So the way we've approached the sandboxing is not to try and limit what the browser can do. Because technically speaking, on any Web page you go to, you can pop open the Chrome developer tools console and you can type in any arbitrary JavaScript and run whatever code you'd like on any site. So we can't really lock it down in that way of preventing people from running things. What we do is we lock it down at the database level, what they have access to,
42:16and kind of by the MotherDuck user. So yes, you can run your own queries. In many cases, that's a feature instead of a bug. So like some of these cross filtering things we've been doing, those are separate queries. Or when you want to filter, maybe you're dealing with a billion row data set. And so you want to do the filtering on the server side. So having the user able to adjust their queries is actually really, really helpful to have.
42:39So the security is sandboxing in the browser. And then our very sandboxed style user model at MotherDuck. But we appreciate the question. Thank you for the questions. Thank you everyone for all the great questions for tuning in today. I will send out a recording to this live stream, hopefully in a few hours.
43:03Depends on how long it takes to process. We'll send out some links that we talked about in here as well. And stay tuned. Check out our website for more dives and MotherDuck-related content. We have a few more live streams coming up. And we are constantly, I feel like, always blogging about the fun things we've been doing with dives lately. If you have any questions, too, you can join us on our MotherDuck community Slack. We all hang out there.
43:27So as you're trying out dives, if you have questions or trying out MotherDuck, we're always happy to help you out. So thank you, everyone. Thank you for your questions. Real pleasure, everyone. Bye-bye.