[{"data":1,"prerenderedAt":57},["ShallowReactive",2],{"leap-week-introducing-builders":3,"leap-week-introducing-builders-next":42},{"id":4,"slug":5,"vimeo_id":6,"description":7,"tile":8,"length":9,"resources":10,"people":10,"episode_number":11,"published":12,"title":13,"video_transcript_html":14,"video_transcript_text":15,"content":10,"status":16,"episode_people":17,"recommendations":25,"season":26,"seo":41},"37e28ea2-bec3-40bd-8b09-b9fbb47c1759","introducing-builders","1177392929","A new program for the community helping to push Directus forward.\n\n","3ac7b48f-2f4a-4f6c-b1d2-038893bc61e3",21,null,7,"2026-03-27","Introducing: Builders","\u003Cp>Speaker 0: Hello everyone. Welcome to the builder segment as part of Leap Week. I'm Beth. I run community ops here at Directus, and I have the absolute pleasure of talking to you about a brand new community program we launched in the last month called Directus Builders. Builders is a community champion program for people who use Directus, want to share what they're building, and contribute to the community.\u003C\u002Fp>\u003Cp>Whether you're interested in sharing technical insights and receiving amplification from our social channels, joining a network of other DirectUs users, or getting our support for your own community initiatives, this program is for you if you are using directors to build. By joining, you'll enter a private community with other experience builders and our team. It's open to contributors, customers, partners, users, really anyone who uses Directus to build something useful. You don't need to be building something huge, you just need to be building something real. If you're the kind of person who likes helping others figure things out, sharing what you've been learning, or creating something cool, we want to hear from you.\u003C\u002Fp>\u003Cp>Hopefully, that gives you some indication about the types of activities you can be doing as part of directors builders. We've already seen so much enthusiasm from the new joiners, so thank you so much. We have participants from over 13 different countries which is super exciting to see and that is only growing. Next up we have some of our new builders to showcase what they are working on.\u003C\u002Fp>\u003Cp>Speaker 1: Hi. My name is Craig Harmon, and I'm from Perth, Western Australia. I'm a developer, and I've been using for about, five or six years now. And I wanted to show you a project I've been working on, called Nuxtus. Now Nuxtus started life as a boilerplate just for myself to get up and running very quickly with Directus and Nuxt.\u003C\u002Fp>\u003Cp>But it's kind of grown bigger than that now, and it can do automate a lot of processes, for me to get up and running really quickly, with a front end in Nuxt being driven by Directus. So I wanted to show it to you very quickly today. So I'm just on the Nuxt website here. We can see it's very easy to get going. There's an m p x create command.\u003C\u002Fp>\u003Cp>So if we run that in the terminal, what's going to happen now is we're going to run through the standard director setup. So we'll just use local host, give a password. We'll use an SQLite database so we can get up and running nice and quickly. Quickly. And now what's gonna happen is the installer is gonna go away, download and set up Directus just like it normally would if you installed Directus yourself manually.\u003C\u002Fp>\u003Cp>But it's also going to create a client project, with Nuxt and Tailwind and the Directus SDK setup. But above and beyond that, it's also got some other little, packages, which will help us when working specifically with Directus and Nuxt. If you don't wanna use the whole of Nuxtus, you don't have to. Each of the packages are available separately. If you go to the nuxtus.com website and then go to the GitHub page, you'll see that each individual packages can be downloaded and used in your own projects without having to use Nuxtus.\u003C\u002Fp>\u003Cp>But Nuxtus is just a nice, easy, quick way to get a new project up and running. So we just wait for Directus to finish setting up here. Perfect. So we can see now that Directus and Nuxt are all set up. So if we go into our project directory, and if we run npm start, we'll see our front end Nuxt website is ready to go.\u003C\u002Fp>\u003Cp>There we go. Also, what's happened is we've got our Directus set up. If we log in to Directus, this is all now good to go. Now you could stop here. You can start writing your manual code if you wanted to, But Nuxtus also has some other really, nice features that you might wanna take, advantage of.\u003C\u002Fp>\u003Cp>So let's create a new collection in Directus. And let's say, just for the sake of a demo, we're gonna create a blog. Let's use all of the optional fields, and we'll also create a blog title and a main content area for the blog. Great. So we've added them in.\u003C\u002Fp>\u003Cp>That's all ready to go. One more more thing we're gonna do because we want to make this blog available on the front end is we're also gonna need to go to, user settings and let's make the blog publicly readable. And now that we've done that, now now this first demo is not going to be too exciting, but we'll show where we can go from there. So I haven't written any code yet, but if I go to blog, it's going to tell me that I've got no blog articles found because Nuxtus has picked up that I've created a collection called blog, but I haven't put any data in there yet. Now if I go back to my blog content and create an item, This is some content.\u003C\u002Fp>\u003Cp>We've now got some content. Let's go back to our blog and refresh. We're now given the index number of that blog. And if we click it, we get the blog collection name and all of the data about that blog. Okay.\u003C\u002Fp>\u003Cp>Now that's not overly useful, but let's see what's happening in the background. If we bring up our editor. So in server is all of our direct us package. You can see there's a direct us extension here, but we can largely leave that alone. Let's have a look at the client because that's where things get interesting.\u003C\u002Fp>\u003Cp>So we've got a standard Nuxt configuration. We've got Tailwind installed. But if we go into pages, automatically, Nuxtus has created this blog folder with two files in it. The index, which is the list of all the blog articles and also a details page, which at the moment is just echoing out a blog item. But it's more than that.\u003C\u002Fp>\u003Cp>This blog that we've created is now a fully typed object. So it's getting its type information from the director schema. So we can go down here and say, well, we don't want to display the ID of the blog to, list our blog items. We wanna show the title and that's fully typed in TypeScript already. So we save that.\u003C\u002Fp>\u003Cp>We'll see straight away in the background here. We're now using the title to list our blog items and we can go through again. And there's our our blog article that we created. Likewise, in the blog article itself, we don't want to show just the whole object. We want to show the title and then we want to have another div where we show the content.\u003C\u002Fp>\u003Cp>And again, blog is fully typed, so we know what we can get pull out from the object. And there we go. There's our change. So we've now got the name of the collection, the name of the blog article that we're looking at and the content of it and our routing all set up for us with doing very minimal code. So if you're interested in having a look at Nuxtus, please do go to the website, nuxtus.com, and, feel free to have it installed and let me know how you go.\u003C\u002Fp>\u003Cp>Thank you very much.\u003C\u002Fp>\u003Cp>Speaker 2: Today, I would like to show you how to supercharge AI batch processing using Directus MCP with a self learning note taking workflow. Batch processing is really effective for, for situations where you need raw speed, but it kinda breaks down when you need to make creative decisions on individual items and on the batch as a whole. You can't really do that without a human element. AI models, I found, are great for those sorts of tasks, but they break down when you give them a whole bunch of data. And they also struggle with finding the right information to pull in to make those creative decisions.\u003C\u002Fp>\u003Cp>So the solution I found is to teach AI to take notes. By implementing a workflow that lets Directus MCP take notes directly on whatever it's working on, we gain the ability to do things like long running task tracking because the model can pick up where it left off and and, start fresh with a new context window. And we also get things like self improving database access. You take a note on all the different things that you ran into difficulty with and what you did to solve them and how it worked out. And it speeds up future runs because it can read that note and go, okay.\u003C\u002Fp>\u003Cp>So don't do this. Do this, and I'll be able to just continue with the task I was working on. And then by letting it take notes, we can consolidate a whole bunch of data that was stored in the database. Say, for example, you wanted to pull out all of the aliases for your articles that are related to rabbits and you also want the ID for each one. Well, well, you can just dump that in a note and analyze it in future runs.\u003C\u002Fp>\u003Cp>So in our case, Directus is the knowledge backbone. Every note is just a key value pair. I'll go ahead and show you the notes table here. It's a very simple setup. We have a key, which is just a string, and this is what the AI model uses to kind of categorize what the different notes are about.\u003C\u002Fp>\u003Cp>And we have the value, and that's just a big markdown, field. It's a very simple setup, but it's surprisingly powerful. By using semantic keys and explicit instructions on how to record and review notes, we give the AI models a very quick and effective way to find the context they need. So this database has a problem. We have a whole bunch of articles.\u003C\u002Fp>\u003Cp>We have a 124 articles. The titles don't really make any sense. Oh, the bodies are in Latin. And I I can't work with this. So I've created a prompt for Claude to read the article titles and come up with a concept proposal for each one.\u003C\u002Fp>\u003Cp>What could this article actually be about? So let's look at the system prompt here. You can see that there's two things that it's informing the AI model about. That there's an AI notes table in the rough structure of that table and that it needs to read and record its database insights, especially how it solved problems it ran into and just update that note on every run. This gives it the self learning ability we were talking about earlier.\u003C\u002Fp>\u003Cp>It's able to figure out what it ran into last time and fix it on the next run. Now back to the task. I've told the AI model it's a skilled content analyst and writer. We have a huge collection of articles. All the bodies are full of nonsense.\u003C\u002Fp>\u003Cp>All that. Alright. So its job is to record the concepts that it comes up with in an article concepts note. It's not sure what to do with an article based on the title. Be creative.\u003C\u002Fp>\u003Cp>Find a wacky concept. Then we have some very specific instructions. We say always read the template and template article concepts, this is a note, to determine how to structure your output. Always create a new article concepts note for each run. Always give it the exact name.\u003C\u002Fp>\u003Cp>Always process 30 articles. Always review the last note you created before starting to make sure you don't duplicate any work. This template lets us make sure that we get consistent output on every run. Alright. Let's go ahead and run this a few times and see what its output looks like.\u003C\u002Fp>\u003Cp>I turn on auto refresh, and then I'm gonna go into Claude, add a prompt from Directus, and examine articles and propose concepts. If you want to know how to use this feature, go ahead and take a look at the Directus MCP documentation, and then we're just gonna send it. Now one of the fun things you can do with read and write access direct to Directus is if the model makes a mistake, you can ask it to update the prompt to fix its mistake in future runs. Article concepts. It has identified directly that just about every article appears to be lorem ipsum gibberish and occasional test content.\u003C\u002Fp>\u003Cp>Alright. So came up with a bunch of different articles on a bunch of different ideas. In a bit, we're gonna use this to actually write all these different article concepts. But for now, I just wanna keep going through the batch process to show you how it's able to pick up where it left off and continue. On this run, if you notice, it actually picked up that it needed to look up the translations and didn't have to figure that out from the schema this time.\u003C\u002Fp>\u003Cp>Alright, it is a new day. My cloud usage limits have reset, and we are ready to continue with step two, which is generating the articles based on the concepts that we've put together. All of the, article concepts have now been saved in these, concept notes. They take the article title. They try to figure out what on earth, the article should be about and propose a concept.\u003C\u002Fp>\u003Cp>So now we have the next step of the process, which is to generate a actual article for each of the articles we generate concepts on in both English and German. We're gonna go in batches of 10 and see how well that works. We'll take this prompt and it should automatically read over all of our article concept notes and start filling in articles for those. Let's go. So we're gonna use the turn concepts into full fledged articles prompt.\u003C\u002Fp>\u003Cp>That's gonna go and read through all of our article concept notes and start filling in those articles, and I'll show you those articles as it writes them. I have no idea if these articles are gonna make any sense. This is gonna be fun. I'm having fun reading through these articles. I have no idea how helpful any of this is, but it at least sounds very convincing.\u003C\u002Fp>\u003Cp>Now the key advantage to this approach is that if we were generating concepts and writing articles at the same time, we'd have to use much smaller batches. But because we split the process into two steps, we've saved a ton of context window, and we're able to work in larger batches. And as a bonus, we can do multiple things with those article summaries, while we're working on generating those articles from those summaries. Now this isn't the most efficient workflow for generating articles. There's way better workflows for that.\u003C\u002Fp>\u003Cp>We're just demonstrating this concept. But a nice thing about this approach is that you can perform multiple tasks at the same time. For example, while we were working on these articles, we could also be working on something completely different using the notes that we're generating the articles from. I have this prompt here, categorize article concepts, which will allow Claude to suggest an article taxonomy based on the summaries it's already generated. It'll just read all the article concept notes and create a new note suggesting that new taxonomy.\u003C\u002Fp>\u003Cp>I like the way it describes these articles as a fascinating collection of technical and business focused article concepts with creative jargon filled titles that have been transformed into practical valuable content ideas. I'm not quite sure I'd be so positive about it, but Nate gets the idea across. Alright. Let's take a look at the categories that it generated and the opportunities that identified. So here's some content gaps, AI and ethics, sustainable technology operations, human centered digital transformation, all sorts of other different things.\u003C\u002Fp>\u003Cp>And here are some of the categories it's come up with. System architecture, it's put a bunch of different articles in that category, ecommerce, digital business, data management and analytics, user experience and interface design, business operations or business optimization management, automation and AI systems, project management and collaboration. So it's basically taken all of those articles that we put together and categorized them according to common themes in those articles. This could be really useful if you have an existing content collection that you're trying to build a new categorization system for. And what's great is you could just take this and create another prompt to actually apply that taxonomy to articles, and create categories and all sorts of different things for that in Directus.\u003C\u002Fp>\u003Cp>So by the end of this run, here's what the AI model has built. Concept proposals for every article in our database, full body content for many of those articles in English and German, a whole new content categorization system for the articles it wrote, progress logs so that it doesn't lose its place, and database access hints that documents how the challenges were solved so that on future runs, it could do even better. Instead of treating AI like a disposable worker or one that can infinitely stuff and stuff and stuff and work on something until it gets all confused, We're treating it like a teammate that tracks and follows up on what it's done across multiple days, multiple runs, starting with a clean slate on each task and only pulling in the information that it needs. We turned a human in the loop batch processing task into an AI creative workflow by splitting it into discrete steps and letting it kind of pick up where it left off. We gave the model a way to track progress.\u003C\u002Fp>\u003Cp>We built templates to make the results more consistent and reusable, and we recorded information about the database to help the AI model get smarter over time. I've had a ton of fun nailing down this workflow and testing it on all sorts of tasks. For my work, we're actually using it to do things similar to this where we're analyzing a huge amount of content and trying to figure out how to organize and categorize and and do all sorts of things, and it's it's doing really well. The ability to take notes, record what it's done, and just kind of start over and create its own context has been incredibly helpful with turning a workflow that works really well for one or two articles into something that works well across thousands. So So thank you for your time.\u003C\u002Fp>\u003Cp>I really look forward to seeing what everyone does with Directus and Directus MCP going forward, especially as Directus MCP evolves, AI models get more capable, and just the overall core gets stronger. The future is gonna be fun.\u003C\u002Fp>\u003Cp>Speaker 3: Hey. I'm Matt from Morley. We're a directors partner agency based in The UK. And today, I want to give you a quick look at what we've been building, both for our clients and for the directors community. So one of the things we built for directors that we're most proud of is the NUXT directors module.\u003C\u002Fp>\u003Cp>It's an open source NUXT module that wraps the official directors SDK and gives you proper first class integration with NUXT. The idea is simple, you add your module, point it at your Directus instance and that's it, you're up and running. You get session based authentication with cross domain support out of the box, automatic type generation from your directors collections, type safe websockets, Nux images automatically configured for your directors assets, and we even embed the directors admin panel right into the Nux dev tools. So let me show you how to get up and running with that. So I'll just open up Visual Studio Code.\u003C\u002Fp>\u003Cp>The first thing you need to do is go into your Nux config, add the Nux Direct SDK, install it in whatever package manager you like, then go to your environment variable, add your direct to your URL, and if you want to use things like, admin server endpoints or automatic type generation then just add in a Nux, a direct to admin token as well and that will be automatically handled for you. Don't worry nothing will be passed to the front end it's all completely safe. And that's it, when you start the server you get access to everything you'd expect from your Direct SDK automatically imported. So as you can see here on my blog page I've got the directors all I do is call use directors and then things like read items automatically imported and it's fully type safe. You can see all of my collections.\u003C\u002Fp>\u003Cp>I get errors if it's a if it doesn't actually exist in the director's schema and I can do things that you'd expect. Fully typed filtering, fully typed nested fields, and again I will get errors if something doesn't exist, and fully typed sort. That's it. It's up, it's running. You can do, there's even help methods for things like getting your file URLs, where you can pass in options around your thumbnails, whether you want to download it, what you want to call it, all that is handled automatically for the NUXT Directus SDK.\u003C\u002Fp>\u003Cp>We built this because we kept solving the same problems across client projects and rather than copying and pasting boilerplate we packaged it up properly and made available on NPM. It's MIT licensed and we're just about to release version five which targets Nux four and the latest Direct SDK. Here's some of the work that we built using Directus and the Nux Directus SDK. So that's a quick snapshot of what we're building at Rolla. If you're building anything with Nux and Directus, feel free to give the Nux Directus SDK a look.\u003C\u002Fp>\u003Cp>Otherwise, if you want to chat about anything Nux, directors or even potentially a future project please do reach out at rolli. Io. Thank you very much.\u003C\u002Fp>\u003Cp>Speaker 0: Thank Thank you so much for the showcases and to everyone who's already joined and showed enthusiasm. We are really excited about bringing the community together in this way and to see all the possibilities that can come out of it and, yeah, hopefully, we have done enough to convince you to join. That's it from me. If you have any questions, do head over to the community forum at community.directors.io and have a great rest of leap week, everyone. See you soon.\u003C\u002Fp>\u003Cp>Bye.\u003C\u002Fp>","Hello everyone. Welcome to the builder segment as part of Leap Week. I'm Beth. I run community ops here at Directus, and I have the absolute pleasure of talking to you about a brand new community program we launched in the last month called Directus Builders. Builders is a community champion program for people who use Directus, want to share what they're building, and contribute to the community. Whether you're interested in sharing technical insights and receiving amplification from our social channels, joining a network of other DirectUs users, or getting our support for your own community initiatives, this program is for you if you are using directors to build. By joining, you'll enter a private community with other experience builders and our team. It's open to contributors, customers, partners, users, really anyone who uses Directus to build something useful. You don't need to be building something huge, you just need to be building something real. If you're the kind of person who likes helping others figure things out, sharing what you've been learning, or creating something cool, we want to hear from you. Hopefully, that gives you some indication about the types of activities you can be doing as part of directors builders. We've already seen so much enthusiasm from the new joiners, so thank you so much. We have participants from over 13 different countries which is super exciting to see and that is only growing. Next up we have some of our new builders to showcase what they are working on. Hi. My name is Craig Harmon, and I'm from Perth, Western Australia. I'm a developer, and I've been using for about, five or six years now. And I wanted to show you a project I've been working on, called Nuxtus. Now Nuxtus started life as a boilerplate just for myself to get up and running very quickly with Directus and Nuxt. But it's kind of grown bigger than that now, and it can do automate a lot of processes, for me to get up and running really quickly, with a front end in Nuxt being driven by Directus. So I wanted to show it to you very quickly today. So I'm just on the Nuxt website here. We can see it's very easy to get going. There's an m p x create command. So if we run that in the terminal, what's going to happen now is we're going to run through the standard director setup. So we'll just use local host, give a password. We'll use an SQLite database so we can get up and running nice and quickly. Quickly. And now what's gonna happen is the installer is gonna go away, download and set up Directus just like it normally would if you installed Directus yourself manually. But it's also going to create a client project, with Nuxt and Tailwind and the Directus SDK setup. But above and beyond that, it's also got some other little, packages, which will help us when working specifically with Directus and Nuxt. If you don't wanna use the whole of Nuxtus, you don't have to. Each of the packages are available separately. If you go to the nuxtus.com website and then go to the GitHub page, you'll see that each individual packages can be downloaded and used in your own projects without having to use Nuxtus. But Nuxtus is just a nice, easy, quick way to get a new project up and running. So we just wait for Directus to finish setting up here. Perfect. So we can see now that Directus and Nuxt are all set up. So if we go into our project directory, and if we run npm start, we'll see our front end Nuxt website is ready to go. There we go. Also, what's happened is we've got our Directus set up. If we log in to Directus, this is all now good to go. Now you could stop here. You can start writing your manual code if you wanted to, But Nuxtus also has some other really, nice features that you might wanna take, advantage of. So let's create a new collection in Directus. And let's say, just for the sake of a demo, we're gonna create a blog. Let's use all of the optional fields, and we'll also create a blog title and a main content area for the blog. Great. So we've added them in. That's all ready to go. One more more thing we're gonna do because we want to make this blog available on the front end is we're also gonna need to go to, user settings and let's make the blog publicly readable. And now that we've done that, now now this first demo is not going to be too exciting, but we'll show where we can go from there. So I haven't written any code yet, but if I go to blog, it's going to tell me that I've got no blog articles found because Nuxtus has picked up that I've created a collection called blog, but I haven't put any data in there yet. Now if I go back to my blog content and create an item, This is some content. We've now got some content. Let's go back to our blog and refresh. We're now given the index number of that blog. And if we click it, we get the blog collection name and all of the data about that blog. Okay. Now that's not overly useful, but let's see what's happening in the background. If we bring up our editor. So in server is all of our direct us package. You can see there's a direct us extension here, but we can largely leave that alone. Let's have a look at the client because that's where things get interesting. So we've got a standard Nuxt configuration. We've got Tailwind installed. But if we go into pages, automatically, Nuxtus has created this blog folder with two files in it. The index, which is the list of all the blog articles and also a details page, which at the moment is just echoing out a blog item. But it's more than that. This blog that we've created is now a fully typed object. So it's getting its type information from the director schema. So we can go down here and say, well, we don't want to display the ID of the blog to, list our blog items. We wanna show the title and that's fully typed in TypeScript already. So we save that. We'll see straight away in the background here. We're now using the title to list our blog items and we can go through again. And there's our our blog article that we created. Likewise, in the blog article itself, we don't want to show just the whole object. We want to show the title and then we want to have another div where we show the content. And again, blog is fully typed, so we know what we can get pull out from the object. And there we go. There's our change. So we've now got the name of the collection, the name of the blog article that we're looking at and the content of it and our routing all set up for us with doing very minimal code. So if you're interested in having a look at Nuxtus, please do go to the website, nuxtus.com, and, feel free to have it installed and let me know how you go. Thank you very much. Today, I would like to show you how to supercharge AI batch processing using Directus MCP with a self learning note taking workflow. Batch processing is really effective for, for situations where you need raw speed, but it kinda breaks down when you need to make creative decisions on individual items and on the batch as a whole. You can't really do that without a human element. AI models, I found, are great for those sorts of tasks, but they break down when you give them a whole bunch of data. And they also struggle with finding the right information to pull in to make those creative decisions. So the solution I found is to teach AI to take notes. By implementing a workflow that lets Directus MCP take notes directly on whatever it's working on, we gain the ability to do things like long running task tracking because the model can pick up where it left off and and, start fresh with a new context window. And we also get things like self improving database access. You take a note on all the different things that you ran into difficulty with and what you did to solve them and how it worked out. And it speeds up future runs because it can read that note and go, okay. So don't do this. Do this, and I'll be able to just continue with the task I was working on. And then by letting it take notes, we can consolidate a whole bunch of data that was stored in the database. Say, for example, you wanted to pull out all of the aliases for your articles that are related to rabbits and you also want the ID for each one. Well, well, you can just dump that in a note and analyze it in future runs. So in our case, Directus is the knowledge backbone. Every note is just a key value pair. I'll go ahead and show you the notes table here. It's a very simple setup. We have a key, which is just a string, and this is what the AI model uses to kind of categorize what the different notes are about. And we have the value, and that's just a big markdown, field. It's a very simple setup, but it's surprisingly powerful. By using semantic keys and explicit instructions on how to record and review notes, we give the AI models a very quick and effective way to find the context they need. So this database has a problem. We have a whole bunch of articles. We have a 124 articles. The titles don't really make any sense. Oh, the bodies are in Latin. And I I can't work with this. So I've created a prompt for Claude to read the article titles and come up with a concept proposal for each one. What could this article actually be about? So let's look at the system prompt here. You can see that there's two things that it's informing the AI model about. That there's an AI notes table in the rough structure of that table and that it needs to read and record its database insights, especially how it solved problems it ran into and just update that note on every run. This gives it the self learning ability we were talking about earlier. It's able to figure out what it ran into last time and fix it on the next run. Now back to the task. I've told the AI model it's a skilled content analyst and writer. We have a huge collection of articles. All the bodies are full of nonsense. All that. Alright. So its job is to record the concepts that it comes up with in an article concepts note. It's not sure what to do with an article based on the title. Be creative. Find a wacky concept. Then we have some very specific instructions. We say always read the template and template article concepts, this is a note, to determine how to structure your output. Always create a new article concepts note for each run. Always give it the exact name. Always process 30 articles. Always review the last note you created before starting to make sure you don't duplicate any work. This template lets us make sure that we get consistent output on every run. Alright. Let's go ahead and run this a few times and see what its output looks like. I turn on auto refresh, and then I'm gonna go into Claude, add a prompt from Directus, and examine articles and propose concepts. If you want to know how to use this feature, go ahead and take a look at the Directus MCP documentation, and then we're just gonna send it. Now one of the fun things you can do with read and write access direct to Directus is if the model makes a mistake, you can ask it to update the prompt to fix its mistake in future runs. Article concepts. It has identified directly that just about every article appears to be lorem ipsum gibberish and occasional test content. Alright. So came up with a bunch of different articles on a bunch of different ideas. In a bit, we're gonna use this to actually write all these different article concepts. But for now, I just wanna keep going through the batch process to show you how it's able to pick up where it left off and continue. On this run, if you notice, it actually picked up that it needed to look up the translations and didn't have to figure that out from the schema this time. Alright, it is a new day. My cloud usage limits have reset, and we are ready to continue with step two, which is generating the articles based on the concepts that we've put together. All of the, article concepts have now been saved in these, concept notes. They take the article title. They try to figure out what on earth, the article should be about and propose a concept. So now we have the next step of the process, which is to generate a actual article for each of the articles we generate concepts on in both English and German. We're gonna go in batches of 10 and see how well that works. We'll take this prompt and it should automatically read over all of our article concept notes and start filling in articles for those. Let's go. So we're gonna use the turn concepts into full fledged articles prompt. That's gonna go and read through all of our article concept notes and start filling in those articles, and I'll show you those articles as it writes them. I have no idea if these articles are gonna make any sense. This is gonna be fun. I'm having fun reading through these articles. I have no idea how helpful any of this is, but it at least sounds very convincing. Now the key advantage to this approach is that if we were generating concepts and writing articles at the same time, we'd have to use much smaller batches. But because we split the process into two steps, we've saved a ton of context window, and we're able to work in larger batches. And as a bonus, we can do multiple things with those article summaries, while we're working on generating those articles from those summaries. Now this isn't the most efficient workflow for generating articles. There's way better workflows for that. We're just demonstrating this concept. But a nice thing about this approach is that you can perform multiple tasks at the same time. For example, while we were working on these articles, we could also be working on something completely different using the notes that we're generating the articles from. I have this prompt here, categorize article concepts, which will allow Claude to suggest an article taxonomy based on the summaries it's already generated. It'll just read all the article concept notes and create a new note suggesting that new taxonomy. I like the way it describes these articles as a fascinating collection of technical and business focused article concepts with creative jargon filled titles that have been transformed into practical valuable content ideas. I'm not quite sure I'd be so positive about it, but Nate gets the idea across. Alright. Let's take a look at the categories that it generated and the opportunities that identified. So here's some content gaps, AI and ethics, sustainable technology operations, human centered digital transformation, all sorts of other different things. And here are some of the categories it's come up with. System architecture, it's put a bunch of different articles in that category, ecommerce, digital business, data management and analytics, user experience and interface design, business operations or business optimization management, automation and AI systems, project management and collaboration. So it's basically taken all of those articles that we put together and categorized them according to common themes in those articles. This could be really useful if you have an existing content collection that you're trying to build a new categorization system for. And what's great is you could just take this and create another prompt to actually apply that taxonomy to articles, and create categories and all sorts of different things for that in Directus. So by the end of this run, here's what the AI model has built. Concept proposals for every article in our database, full body content for many of those articles in English and German, a whole new content categorization system for the articles it wrote, progress logs so that it doesn't lose its place, and database access hints that documents how the challenges were solved so that on future runs, it could do even better. Instead of treating AI like a disposable worker or one that can infinitely stuff and stuff and stuff and work on something until it gets all confused, We're treating it like a teammate that tracks and follows up on what it's done across multiple days, multiple runs, starting with a clean slate on each task and only pulling in the information that it needs. We turned a human in the loop batch processing task into an AI creative workflow by splitting it into discrete steps and letting it kind of pick up where it left off. We gave the model a way to track progress. We built templates to make the results more consistent and reusable, and we recorded information about the database to help the AI model get smarter over time. I've had a ton of fun nailing down this workflow and testing it on all sorts of tasks. For my work, we're actually using it to do things similar to this where we're analyzing a huge amount of content and trying to figure out how to organize and categorize and and do all sorts of things, and it's it's doing really well. The ability to take notes, record what it's done, and just kind of start over and create its own context has been incredibly helpful with turning a workflow that works really well for one or two articles into something that works well across thousands. So So thank you for your time. I really look forward to seeing what everyone does with Directus and Directus MCP going forward, especially as Directus MCP evolves, AI models get more capable, and just the overall core gets stronger. The future is gonna be fun. Hey. I'm Matt from Morley. We're a directors partner agency based in The UK. And today, I want to give you a quick look at what we've been building, both for our clients and for the directors community. So one of the things we built for directors that we're most proud of is the NUXT directors module. It's an open source NUXT module that wraps the official directors SDK and gives you proper first class integration with NUXT. The idea is simple, you add your module, point it at your Directus instance and that's it, you're up and running. You get session based authentication with cross domain support out of the box, automatic type generation from your directors collections, type safe websockets, Nux images automatically configured for your directors assets, and we even embed the directors admin panel right into the Nux dev tools. So let me show you how to get up and running with that. So I'll just open up Visual Studio Code. The first thing you need to do is go into your Nux config, add the Nux Direct SDK, install it in whatever package manager you like, then go to your environment variable, add your direct to your URL, and if you want to use things like, admin server endpoints or automatic type generation then just add in a Nux, a direct to admin token as well and that will be automatically handled for you. Don't worry nothing will be passed to the front end it's all completely safe. And that's it, when you start the server you get access to everything you'd expect from your Direct SDK automatically imported. So as you can see here on my blog page I've got the directors all I do is call use directors and then things like read items automatically imported and it's fully type safe. You can see all of my collections. I get errors if it's a if it doesn't actually exist in the director's schema and I can do things that you'd expect. Fully typed filtering, fully typed nested fields, and again I will get errors if something doesn't exist, and fully typed sort. That's it. It's up, it's running. You can do, there's even help methods for things like getting your file URLs, where you can pass in options around your thumbnails, whether you want to download it, what you want to call it, all that is handled automatically for the NUXT Directus SDK. We built this because we kept solving the same problems across client projects and rather than copying and pasting boilerplate we packaged it up properly and made available on NPM. It's MIT licensed and we're just about to release version five which targets Nux four and the latest Direct SDK. Here's some of the work that we built using Directus and the Nux Directus SDK. So that's a quick snapshot of what we're building at Rolla. If you're building anything with Nux and Directus, feel free to give the Nux Directus SDK a look. Otherwise, if you want to chat about anything Nux, directors or even potentially a future project please do reach out at rolli. Io. Thank you very much. Thank Thank you so much for the showcases and to everyone who's already joined and showed enthusiasm. We are really excited about bringing the community together in this way and to see all the possibilities that can come out of it and, yeah, hopefully, we have done enough to convince you to join. That's it from me. If you have any questions, do head over to the community forum at community.directors.io and have a great rest of leap week, everyone. See you soon. Bye.","published",[18],{"people_id":19},{"id":20,"first_name":21,"last_name":22,"avatar":23,"bio":24,"links":10},"3dec7812-3664-4d2d-93f8-efc876988cc7","Beth","Loft","1277761e-2a3b-4103-b29b-ffc97e8370f5","Developer Experience at Directus",[],{"id":27,"number":28,"year":29,"episodes":30,"show":38},"289f6534-7fdd-46df-8c00-89a75469fe41",4,"2026",[31,32,33,34,35,36,4,37],"bbaa3063-6fbe-4d96-bbc7-e50672f9a308","f885409e-0ace-41e5-aca3-faf4dcd7659b","7271f0be-33fd-4cea-b7bd-9c63e74969e1","0baede33-974c-4343-abad-3cea928c8112","a10f99c3-6b45-46e6-b703-64366f150c57","1310befc-e361-4e19-848f-d685c19dddef","68536266-9502-4df8-a295-ef082dfe6fd0",{"title":39,"tile":40},"Leap Week","62816023-fa7e-4a76-b9a1-2733ee2093a6",{"title":10,"meta_description":10},{"id":37,"slug":43,"season":27,"vimeo_id":44,"description":45,"tile":46,"length":47,"resources":10,"people":10,"episode_number":48,"published":12,"title":49,"video_transcript_html":50,"video_transcript_text":51,"content":10,"seo":52,"status":16,"episode_people":53,"recommendations":56},"what-next-for-directus","1176305680","A deep-dive look at what's shipping, what's coming, and where the product is heading.\n\n","5795d393-226c-4831-8d38-f47e25419dd5",32,8,"What's Next for Directus","\u003Cp>Speaker 0: Alright. And with that, we've made it to the last session of the Leap Week. I really hope you enjoyed all the great announcements so far. But before we wrap up today, we wanted to take a beat and talk a little bit about what we've shipped recently and what is next for the Directus platform as a whole. I'm Greg Consonzo, the CTO and cofounder here at Directus, and with me is James.\u003C\u002Fp>\u003Cp>Speaker 1: Thank you very much. Yeah. I'm James. Working at Directus as a staff product manager. Thank you for the intro, Rick.\u003C\u002Fp>\u003Cp>Speaker 0: So first and foremost, some of you might have seen that on GitHub discussions, we put a big banner, and we we posted a couple of comments about our new road map. So we moved platforms over to roadmap.direct.io. You might have seen it. Why why did we make this change, James?\u003C\u002Fp>\u003Cp>Speaker 1: If we look at the old mechanism for feature requests, we used to manage this through GitHub discussions. Honestly, it became a a place for things to kind of go away and die, unfortunately, through no, you know, no means on our part or no deliberate means, but, it wasn't so integrated with, you know, linear and the development workflows of the teams. So it's kinda had this, you know, disjointed journey between the feature requests and then how they get actioned and then making that visible to the community as well. So we've started to use a new a new product. And like Wrike said, you'll have seen on some of the discussion threads, that, you know, we've moved over now.\u003C\u002Fp>\u003Cp>So some of the threads have been locked. Some of them we've kept open because we wanna keep the discussion going. Right? And we don't want that to stop on some of that particularly some of the ones that have been upvoted heavily. But what you will find is that, you know, these have been ported over to our our new road map, which you can find at roadmap.directus.io\u002Froadmap.\u003C\u002Fp>\u003Cp>You can go in here, search for existing discussions, and we've maintained that link back to the GitHub thread as well, because there's lots of useful information there. So, yeah, that's that's kinda how things look. I don't know if you've got anything to add, Ryke.\u003C\u002Fp>\u003Cp>Speaker 0: Yeah. I'll say it's it's one of those interesting points where it feels very obvious to keep it all centralized on the repo. I mean, GitHub already has discussions. They already have upvotes. They already have, like, a, submitted by status.\u003C\u002Fp>\u003Cp>They already have the whole it's it's, approved or denied or completed and all that kind of stuff. So it it might be a little weird to just see that move over. But at the end of the day, we kinda just outgrew the tooling that was available. Right? So even right now, when we noticed, oh, we wanna move over, there's no way for us to to prevent new ones from being open on GitHub without shutting down all of the old ones, which is very unfortunate because then people can't find them.\u003C\u002Fp>\u003Cp>So at the end of the day, you know, this is a great, great upgrade, to at least be able to manage these feature requests and and also help our team ship, the things that are truly important here to the community. With that as well, any request that you put into this product line right now goes straight to our product team. So you're also straight talking to the source and and the folks in charge of that roadmap. You're truly in James in this case, which is a lot nicer line of communication in that regard. So just as before, you know, please do take a look at the road map.\u003C\u002Fp>\u003Cp>If you see something that you agree with or you're aligned with, please hit that upvote button. If you have a different request that nobody else has requested yet on this particular list, hit the new request button, and it will fly straight to us. And we'll we'll reach out, for more information.\u003C\u002Fp>\u003Cp>Speaker 1: That's right.\u003C\u002Fp>\u003Cp>Speaker 0: Give it to me. Plus one. Any updates?\u003C\u002Fp>\u003Cp>Speaker 1: Direct line of communication, like you said. And Exactly. Feel free to add an extra layer of detail. If you see something that, you know, you see yourself in in the request, but you wanna add, you know, additional information because that comes directly to me and Mike.\u003C\u002Fp>\u003Cp>Speaker 0: Exactly. And with that being said, I think let's take a look at this road map sort of going in in reverse chronological order maybe for this one. Let's take a look at some of the stuff that we've recently completed. So we'll we'll group this roughly by release, instead of chronological order. Well, I guess it's kinda the same if you think about it.\u003C\u002Fp>\u003Cp>But, you know, we we plan these things out on the road map over time. But starting with with 11 dot 16 release, we have the global draft versions, which is a a part of a bigger new project. James, what what is that project all about?\u003C\u002Fp>\u003Cp>Speaker 1: Yeah. So I think there's been a a perception that, the content versioning features inside Directus have been kind of a advanced feature. They're a little bit tucked away. They work a little bit like GitHub branches, funny enough today. But for, you know, content editors, that need to version content, that workflow for how you work with the draft, how that gets promoted or published into the, you know, the the the live item has been not super intuitive.\u003C\u002Fp>\u003Cp>So we started on this track to make that a lot more native. And the latest update brings, you know, a global draft version to any item that has content versioning enabled. So the moment you switch that on, you're gonna have a draft version inside that that item. That was something you'd have to create yourself before. And then with that, we've brought that into the visual editor as well.\u003C\u002Fp>\u003Cp>So if you're looking at the visual editor and you want to preview draft content, you can now do that, via the visual editor. So it's part of a foundational part to making all of these content editing workflows much more intuitive for you for your business folk who are managing content. And we'll see, you know, extensions of that over the next couple of releases, for sure, particularly in the v 12 release, to make that feel much more native, that whole publishing workflow of content.\u003C\u002Fp>\u003Cp>Speaker 0: So practically, that means that today, the moment you like you said, the moment you like the moment you open an item, it's straight into draft. So then it's it's way more of that sort of one, two step. You make your changes through draft. You hit publish by the time you're ready. You don't have to manually switch, back and forth ahead of time for that to work.\u003C\u002Fp>\u003Cp>Now that allows us to start working towards way more powerful capabilities in the future as well, of course. So we're thinking about things like dedicated permissions for versioning or potentially approval workflows even or releases of multiple of these content items together. So this this first draft change is is one in a step of many, many changes all related to what we're calling the CEW project or the content editorial workflow project, internally.\u003C\u002Fp>\u003Cp>Speaker 1: Awesome. That's right.\u003C\u002Fp>\u003Cp>Speaker 0: Then another thing we shipped recently that fits really well in this sort of one two punch of you make a bunch of changes and you ship it out. Can you guess what it is? It's the deployments module. So we just shipped a new module directly in the studio integrated with Vercel, quickly followed up by Netlify by a community member. Thank you for that.\u003C\u002Fp>\u003Cp>Thank you. What what is that deployments module all about?\u003C\u002Fp>\u003Cp>Speaker 1: Yeah. So it's it's something we we've even struggled with internally, our internal marketing teams that use Directus. You know, the sites are deployed on on Vercel or Netlify or, you know, other other hosting providers. And let's say you're managing some content inside Directus, you then have to leave Directus, you know, assuming you have access to that third party solution, to then go and deploy your site to reflect the the changes that you've made in your CMS. Now that's a little bit nuanced, whether you want all of your content editors to have access to that system, which is primarily about deployments, potentially not.\u003C\u002Fp>\u003Cp>But maybe you wanna give them the flexibility to still rebuild the site on demand. So this is really about bringing that functionality natively into director's core so that you can make those changes. And then, you know, you can go in and you can hit, trigger a build in in Vercel or Netlify. And then we'll give you the, you know, the the deployment status, the build logs, give you a link out to see the the the, the the site once it's built. So, yeah, I mean, all all covered by RBAC.\u003C\u002Fp>\u003Cp>So, you know, if you you want to delegate responsibility beyond the admin in terms of who can trigger deployments, that's all kind of covered by the existing, role based access control settings inside Directus. That's what it's all about. I mean, I think we'd love to extend this beyond Vercel and Netlify as well. So you probably got some ideas.\u003C\u002Fp>\u003Cp>Speaker 0: Gonna say, like, with with most everything we've built in Direct is we've tried to do this in as most of an abstract that way as we could, which is why we saw Netlify flying relatively quickly. Now this is this is too good of a a segue not to use it. If people wanna request which one we should add as a third, where where did they do that?\u003C\u002Fp>\u003Cp>Speaker 1: Well, I I guess you could come come on to here. Right? And you could still add the feedback here, just so it's, you know, tightly related to this project. But this is a completed project, so maybe the best thing to do would be to hit new request. Tell us that you want Cloudflare pages or something like that.\u003C\u002Fp>\u003Cp>And then, that's gonna come right to us. And, obviously, that's gonna be something that we're but we're already thinking about it. Right?\u003C\u002Fp>\u003Cp>Speaker 0: For sure. For sure. Yeah. Alright. Onto a very different topic then.\u003C\u002Fp>\u003Cp>And this is a feature request that I opened back on GitHub maybe four years ago, if not five at this point. The ability to potentially filter within JSON fields. It is one that we've sort of toyed with. We've tried it out. We've done a PR in the past that didn't quite land, but there's updates on that front.\u003C\u002Fp>\u003Cp>James, what's the latest?\u003C\u002Fp>\u003Cp>Speaker 1: There is. And they're currently showing is in progress, but, you know, part of this was actually released in in, like you said, the 11\u002F2016. But, yeah, this is really about bringing support to interact with, you know, JSON data in your database, at the API. So the first piece that we delivered in 11\u002F2016 allows you to select fields within a JSON blob very simply. So you don't have to bring the whole thing, you know, client side and deal with it yourself.\u003C\u002Fp>\u003Cp>That is nice, but it's clearly not the end goal. The end goal is to to bring full support, in the API for filtering, sorting, aliasing, across all of the different database vendors, of course, and then extend it, you know, to to the SDK as well. Make sure it's not just supported in the rest API. So we'll see a big big chunk of that, particularly the filtering drop in the next release. And I think that, you know, in subsequent releases, there might be additional things just to to get us to that final state.\u003C\u002Fp>\u003Cp>But, yeah, like you said, I think the original GitHub discussion maybe we can have a look. Got a feeling this was yeah. A little while ago. But lots of community support for this, so really happy to be able to to work on this. Shout out to Tim internally who's been working on this.\u003C\u002Fp>\u003Cp>It was actually a bit of a hackathon project that ended up getting rolled out, into the core. So\u003C\u002Fp>\u003Cp>Speaker 0: It it was something we've all been wanting to have for a long time, so I'm glad we're getting to it now.\u003C\u002Fp>\u003Cp>Speaker 1: Awesome. Yeah. Super exciting. What about something that's probably quite close to your involvement, which is we've had a bit of an AI related work stream over the last few months. Things have developed not just not just in the market, but also for directors.\u003C\u002Fp>\u003Cp>So maybe you wanna give us a few, a few thoughts on how\u003C\u002Fp>\u003Cp>Speaker 0: how things develop. I might use this as a little bit of a a sneaky personal pitch, but if you happen to have caught my my recent keynotes at the at Vue JS Amsterdam conference or coming up at Vue JS Atlanta, one thing that we have been heavily focused on is to see how can we use the AI technology stacks, so LLMs and generative images and things like that, within the product in a way that actually makes sense for our users. Right? So the thing I'm personally always scared of is shipping a bunch of gimmicks that nobody then cares about, which, you know, hot takes, but it happens all over the place. So how do we use that technology then in a way that actually makes sense?\u003C\u002Fp>\u003Cp>So the first thing we did is implement that MCP endpoint that shipped, I wanna say, in 11\u002F13 or even '12. It's a little while back now. It's been out for a minute. We did it as a standalone package first to test the waters. That went really incredibly well.\u003C\u002Fp>\u003Cp>Then we moved it into core as a native feature that is just there by default. So that allows LLMs outside of the product to use the content and data within and but also take other system actions, like doing the data modeling or even setting up permissions. Although, make sure you confirm what it's doing. The second big step for us there was to move that experience into the product itself. So right now, we have that AI chat sidebar, natively in the product.\u003C\u002Fp>\u003Cp>So it's always available in the bottom right, and it knows the context of the page. Where are you? What tools are available? What can it, you know, what can it do both on the client and server side? So on the server side, we've implemented the same MCP tools that you had before from external LLMs.\u003C\u002Fp>\u003Cp>So that is things like changing the data model, reading or writing items, retrieving files, and some other system operations like that. The second big thing we started developing is sort of the client side tooling integration of that. And what that means is that the LLM chat sidebar can take actions in the studio on your behalf. So not just on the API, but in the studio as well. We're continuing to explore what that looks like.\u003C\u002Fp>\u003Cp>So right now, we're focusing heavily on exactly the e d assets and translations workflow. So that is really focusing on, you know, helping you do the content creation in various languages that you might not be native in on the fly, in line in the studio rather than doing it, you know, hidden away in the background. So a lot of very exciting stuff on that front. We're also doing a little bit of r and d in this sort of more agentic workflows in the background and background processes, but, you know, that is a little too early to to share too much of that.\u003C\u002Fp>\u003Cp>Speaker 1: Nice. And I think since we released some of these capabilities, particularly the the embedded AI assistant, lot of feedback we got was around extending support. Right? I think we went live with Anthropic and OpenAI, but maybe you can add a bit on how we've looked at support beyond that and and what people are still asking for.\u003C\u002Fp>\u003Cp>Speaker 0: For sure. Yeah. I mean, as as anybody who's been anybody who who stumbled into Twitter in in the recent week or so, I mean, you see these models, they they evolve so, so, so rapidly that it is near impossible to just pick one vendor and and be happy with it for, you know, years to come. So as with most everything else at Directus, like we just saw with, the other features we talked about as well around deployment, we wanna make sure we built this in a an agnostic a way as we possibly can. So we'd indeed shipped it with an abstraction with just on top of OpenAI and anthropic to start with.\u003C\u002Fp>\u003Cp>But then immediately, people started mentioning. It's like, oh, but what about Gemini? Or what about Grok? God forbid. Or what about an OpenAI endpoint that I self host, which is very interesting.\u003C\u002Fp>\u003Cp>So we started shipping, some of the big other vendors that you'd expect. So I think we we, well, not I think I know we added support for for Gemini pretty quickly after, but are now also really focusing in on, like, okay. What are the nuances of, like, an open AI that runs on Azure that you have full control over, or what happens if you run a Mistral AI model that you have self hosted? To really tie back into that data sovereignty play. Right?\u003C\u002Fp>\u003Cp>Because at the end of the day, the technology stack is really cool and exciting, but you might not be comfortable with sending, you know, that private data from your database over to some external company that you may or may not trust. So this is a really interesting next angle here for the way we treat AI within Directus that I think fits in really well in our sort of overall self hosted, data sovereignty play.\u003C\u002Fp>\u003Cp>Speaker 1: Very nice. Very nice. So, yeah, you can you can add add an open AI API compatible, that's a hell of a mouthful, provider inside the director settings today if you wanna use the the AI assistant, with an alternative provider. Let's come back to the completed section. I know we're going jumping all over the place as we go, but I think that's okay.\u003C\u002Fp>\u003Cp>Yeah. I mean, this was an interesting one internally for the team, at least. I think collaborative editing was a was a capability that was that was developed suddenly before I joined Directus, but originally built as a extension. Is that right?\u003C\u002Fp>\u003Cp>Speaker 0: That's right. And that was really to make sure that we, just as with the MCP endpoint, had a way to experiment with what that needed to look and feel like. So as you might imagine, with something as broadly used as direct as in terms of use cases, with that comes a lot of different hopes and dreams about how that collaborative nature of the thing works. Is everybody working on the same draft state that we just talked about for the CEW project, or are you working all locally, and does it sync up only when you hit save? And how does that then do do merge resolutions and and complicated things like that?\u003C\u002Fp>\u003Cp>So we shipped it as a plug in first to test the waters. That went really well. We learned a lot from that. Then by the time we were like, okay. This feels now like we know what this needs to look like in the product for real, we were able to move it back into core.\u003C\u002Fp>\u003Cp>And luckily, because, you know, extensions are built as very modular pieces, that are built in the same way that we built the core product, it was actually relatively straightforward to to move that in here as well.\u003C\u002Fp>\u003Cp>Speaker 1: Nice. I think that one was added in in 11\u002F2015 maybe. But, yeah, that's now basically a core a core capability. So if you want to enable collaborative editing, you could do that in the project settings. Once you enable that, you're gonna see, you know, multiple avatars if you're collaborating over the same same item inside the studio.\u003C\u002Fp>\u003Cp>And you get things like field locking behavior as well. So if somebody's working in a field, obviously, you can't edit it while they're editing it. So, yeah, really nice, feature for for content folks, who want to collaborate together. So highly recommend switching it on and, of course, giving us feedback, if you experience anything that you think could be improved or anything like that.\u003C\u002Fp>\u003Cp>Speaker 0: If you know where to find us now. Also, with that quick shout out, you know, we we often do use extensions as the the vessel to do experimental work. So if you're you're curious to see what is, you know, the newest of the new, do take a look at the extensions that are out there, both from us and and the community. We post a lot of experimental work on the Directus Labs GitHub organization that I think is worth, a quick look.\u003C\u002Fp>\u003Cp>Speaker 1: Awesome. Maybe that's a good segue into something which we're gonna have to comment on because it's it's sitting right at the top. Certainly, the thing that caught my attention since I joined Directus, right, which is this one. And the reason I say that is because you you mentioned extensions, and you mentioned, you know, at the moment, this is something where I think people who are looking for a solution to configure as code or or gen more generally speaking, environment synchronization, they are having to look to third party extensions, and there are some good ones out there. I think that's\u003C\u002Fp>\u003Cp>Speaker 0: For sure.\u003C\u002Fp>\u003Cp>Speaker 1: That's something we can say for sure. So a bit of context on this one today. I think schema snapshot is all all or nothing. Right? You can synchronize, one environment to another, but it's all or nothing.\u003C\u002Fp>\u003Cp>And I think that that's not really providing the granular control that people need. I think they need to be able to do it resource specific, be able to exclude, include certain collections, and, of course, support things beyond the schema itself, roles, permissions, etcetera. Maybe we could comment here. I mean, I think I think this is a really big priority for us this year, and we wanna give visibility that this is top of mind. What I would say is at the moment, if you're struggling with this, look to the third party extensions.\u003C\u002Fp>\u003Cp>Some of the the third party extensions here, you know, the the director sync, underneath Traktor. Really good, fully modular, decomposes the schema into discrete files. You know, highly recommend that, if you need kind of selective syncing capabilities in absence of anything native. The migration bundle is actually a Directus Labs one. This is very UI driven, allows you to select resource types, push them to different environments.\u003C\u002Fp>\u003Cp>And then the Directus schema sync as well is another one that I'm aware of that that allows for sort of event driven auto export as well. So there are some great solutions out there. Right? But I think that one of the concerns is is some of these are, you know, they're they're not native solutions, and so we're really looking to bring kind of a first party experience here as well. Don't know if you you wanna add anything on this one, Reich.\u003C\u002Fp>\u003Cp>Speaker 0: Well, I think the fascinating thing here the question is is I'm sure on top of everybody's mind is, what took you so long? Like, why has this thing been open for such a long time? It's been the number one or two. At least top three upvote of feature requests for, you know, as long as this project has been live. And I think it's interesting to dive into that context a little bit because there's there's two feature requests that come to mind that have been open and upvoted a lot.\u003C\u002Fp>\u003Cp>The second one, we'll circle back to, you know, I I would say put in the comments if you can guess which it is. But config as code, it's one of the ones where there's just such a tremendous wide range of opinions and hopes and dreams. Right? Even different use cases as well. Some people wanna use it as a sort of way to move from a dev environment to a prod environment, which is very valid.\u003C\u002Fp>\u003Cp>Some people wanna use it more as a sort of backup and restore approach that you can go back in time to a previous state of your project. Some people have been telling us they wanna use it as a sort of template for new projects. Like, if you run an agency, you just wanna, you know, spin up multiple copies of the same underlying template. And all of those different use cases, they all kind of require the same solution with a twist. So they're all slightly different, and they all have their own requirements and and differences, which is why this has been in in research phase for a long, long time while we just capture and ingest all of that information.\u003C\u002Fp>\u003Cp>So over the now years, we've been talking to a lot of different people about what this means, and what those different use cases are and and outline how it all comes together. And we have a pretty good plan now into how this, this could actually look like for real as a native feature. So that is super exciting and something, you know, I look forward to having.\u003C\u002Fp>\u003Cp>Speaker 1: Cool. Have we covered the completed? Do we want to look at other things on here that are either in progress or coming up?\u003C\u002Fp>\u003Cp>Speaker 0: I mean, when it comes to the completed list, there's there's a lot more to look at here on the road map itself. In the interest of time, you know, I don't wanna spend the rest of the whole day or even this week just going through them item by item. If you do have questions about any of these other stuff, by the way, a, you know, where to find this now on the road map itself, but, also, we have the community, of course. Right? So we have community.directus.io.\u003C\u002Fp>\u003Cp>If you have questions about anything you hear today, anything here on the road map, feel free to to put a post up there as well. We we actively monitor that. I'm more than happy to chat with you, about any anything and everything, frankly. So find us there. I think, you know, a couple of small things that are probably worth calling out on the to do list is the MIME type restrictions on file interfaces, relatively tiny thing, but it's something, you know, people have been asking for, for quite some time.\u003C\u002Fp>\u003Cp>So we're very glad that we've been able to to to put that in. We did a we did a revision to revisions, an update to how, you know, the comparison looks like if you if you look, to compare the current state of your item with a a previous state. So we we changed that from from the little sidebar you might have seen, with the red green changes into more of a side by side view that is a lot more in-depth and allows you to explore, you know, the things that changed. Other than that, we did also finally add bulk file and folder downloading. So in the file library, you could select multiple things at once.\u003C\u002Fp>\u003Cp>Just download them all as a as a folder instead of having to go one by one. It's the little things. It's the little things that are huge quality of life unlocks here for the platform. You know? So oftentimes, things like that, they're a little bit too small to mention anything like this, but it's definitely worth shouting out, I think.\u003C\u002Fp>\u003Cp>Speaker 1: For sure. The the other one that comes to mind is the, external third party JWT support. I think this is something we saw a lot of feedback around how to manage that, how to validate a third party JWT translated into direct us accountability object. And I think we exposed some u utils there to to make that much easier, and there's a there's a really great reference guide. So if you are looking to, you know, integrate sort of for machine to machine purposes with Okta and things like that, then, you know, there's a there's a great reference tutorial, which hopefully is, like, flashing up on screen or something right now, that that I'd recommend people check out as well.\u003C\u002Fp>\u003Cp>Speaker 0: And it's another one of those things. Right? It's like, from the outside looking in, it's it's just hard to really know what that means and what that unlocks. But that external JWT validation means that you can have your users log in using something like Okta or Auth0 and then use that same token you already have from that external service as the token indirect is, which is, you know, not everybody might need that, but when you do, you really do, and there's really no other workaround. So, again, I'm very glad that our extension service combined with some of these utilities that we provided are now allowing you to to unlock that that otherwise blocker.\u003C\u002Fp>\u003Cp>Speaker 1: Good stuff. I think beyond that, looking at kind of, you know, what's in progress now, I think we've we've touched upon a lot of these already. Like we said, the the global draft was the kind of foundation towards this draft and publishing workflow, having that really intuitive experience, and incorporating things within that, like auto save when you're editing a form, which kind of relates to this one. Right? You know, you wanna save and stay.\u003C\u002Fp>\u003Cp>Well, if you have auto save, well, that kind of becomes somewhat redundant. So looking to solve some of these problems that exist in the to do with, you know, some of the solutions that are also in progress right now.\u003C\u002Fp>\u003Cp>Speaker 0: Absolutely. I I teased it a little bit before when I said top three, most upvoted things. Save and stay button, definitely one of the three, but we we have to touch on the elephant in the room, which is renaming collections and fields. You want it. We want it.\u003C\u002Fp>\u003Cp>We all want it. Everybody has wanted it from from a long time. This is one where it's not so much the yeah. There it is. Triple digit.\u003C\u002Fp>\u003Cp>There it is. The big one, the the light will of this team. The the, where where the config is code or even the save and state default state is one of the ones that takes a lot of research because there's so many different opinions and so many different ways of approaching it. Renaming collections of fields feels like a very dumb one in comparison. Right?\u003C\u002Fp>\u003Cp>It's like you have it or you don't. There's really not a lot to figure out for that. So you might be wondering, like, what the hell takes you so long to to do that for the same reason. And this is quite frankly, you know, system design thing from from back in the day. So we have, when we make that change in the database well, of course, it's a very destructive change in the database that is connected, so there's a third party tooling problem potentially.\u003C\u002Fp>\u003Cp>But, But, also, there's a lot of internal references that need to be updated, some of which, can be a bit under the hood, for things like layout options and and other references that are otherwise hidden. So we've we've seen, quite a few different experiments on this topic, recently in in extensions, which, again, thank you for that. It's it's great inspiration. Make sure to check those out. But we also recently started experimenting internally with, like, okay.\u003C\u002Fp>\u003Cp>How could this come together in a way that doesn't immediately break everything? Right? So how can we work on API aliasing, for example, to unlock some of the the requirements for this without breaking the connected database and its connected services that we might not know about. Alternatives as well, of course. Like, what what are the options that we do all of those updates in the system tables as one giant transaction in case, you know, something goes wrong and you have to undo it?\u003C\u002Fp>\u003Cp>All of that is to say is do know that there's not a day that I wake up and not think about renaming collections of fields. You you you find me in person at conferences and it's the first thing you bring up and and do know that I've I've heard you loud and clear. And it's something that's very, very top of mind.\u003C\u002Fp>\u003Cp>Speaker 1: Good stuff. So we expect to hear more about this one, you think, this year?\u003C\u002Fp>\u003Cp>Speaker 0: For sure. I mean, you're gonna hear me bring it up every single time, if if anything. So you're gonna hear about it. You're gonna hear about it. Now we're we have some some very active experiments in flight now to see how we can bring this to life in a way that doesn't completely break everything or is a huge breaking change to migrate into and all that that kind of stuff.\u003C\u002Fp>\u003Cp>Because, of course, you know, it's it's it's one thing to say we now allow you to rename everything, but the migration into the new version takes, you know, a week to do by hand. That's not good enough for us either. So bear with, you know, there's quite a lot of technical work to be figured out here, but do know that we're we're actively talking about it.\u003C\u002Fp>\u003Cp>Speaker 1: It's front of mind.\u003C\u002Fp>\u003Cp>Speaker 0: Front of mind.\u003C\u002Fp>\u003Cp>Speaker 1: Good stuff. Beyond or behind all of this. Right? We've spoken a lot about a lot of stuff today, but maybe to think, beyond just what's visible on the road map here. Few rumors on forums, few things being hinted at over the last year.\u003C\u002Fp>\u003Cp>People are naturally gonna be curious about what that means. If you know, you know. If you've seen things in the forums, you might know what we're speaking about. But can you tell us anything about that, right, is there anything we can let people know about?\u003C\u002Fp>\u003Cp>Speaker 0: Well, I can say we have been teasing and and sometimes leaking, you know, who you are. Some of these some of the information behind this. But, yes, the the rumors there are true. We have been hard at work behind the scenes on something brand new as well. So this is gonna be a separate thing from Directus altogether with more of a back end as a service focus than we've had in the past.\u003C\u002Fp>\u003Cp>It's his own image, inspired by Directus and using the learnings that we have, but aimed at a way sort of larger scale, multi data source, deployment paradigm. I don't wanna overshare too much yet before people get mad at me, but we are putting out a a sign up link if you wanna learn more. So we're gonna do some early sign ups for alpha release for a sort of private testing phase. We're very excited about this, and I wish I could just share, you know, a lot more than that. But be assured, we're gonna be sharing a lot more in the next league week, about this project.\u003C\u002Fp>\u003Cp>Speaker 1: Very nice. Very nice. I think that's a small small teaser for now. And like I said, there should be a resource for people to go and, sign up and and and and get onto some kind of wait list for something. Look forward to hearing more about that.\u003C\u002Fp>\u003Cp>Alright.\u003C\u002Fp>\u003Cp>Speaker 0: With that all being said, I I know we mentioned it a couple of times today, but if you have any other feature requests or ideas about what this road map should look like or what you find important or don't, that's also very valuable information. Know where to find us at roadmap.tractors.io. That gets you straight in touch with James and yours truly. For everything else, any questions, any concerns, any other teasers, find your way to community.directus.io. We have a wonderful discourse server over there, that we actively moderate and manage, and that is incredibly active within the community.\u003C\u002Fp>\u003Cp>So I highly recommend find your way to those two resources, and we'll see you on the Internet.\u003C\u002Fp>","Alright. And with that, we've made it to the last session of the Leap Week. I really hope you enjoyed all the great announcements so far. But before we wrap up today, we wanted to take a beat and talk a little bit about what we've shipped recently and what is next for the Directus platform as a whole. I'm Greg Consonzo, the CTO and cofounder here at Directus, and with me is James. Thank you very much. Yeah. I'm James. Working at Directus as a staff product manager. Thank you for the intro, Rick. So first and foremost, some of you might have seen that on GitHub discussions, we put a big banner, and we we posted a couple of comments about our new road map. So we moved platforms over to roadmap.direct.io. You might have seen it. Why why did we make this change, James? If we look at the old mechanism for feature requests, we used to manage this through GitHub discussions. Honestly, it became a a place for things to kind of go away and die, unfortunately, through no, you know, no means on our part or no deliberate means, but, it wasn't so integrated with, you know, linear and the development workflows of the teams. So it's kinda had this, you know, disjointed journey between the feature requests and then how they get actioned and then making that visible to the community as well. So we've started to use a new a new product. And like Wrike said, you'll have seen on some of the discussion threads, that, you know, we've moved over now. So some of the threads have been locked. Some of them we've kept open because we wanna keep the discussion going. Right? And we don't want that to stop on some of that particularly some of the ones that have been upvoted heavily. But what you will find is that, you know, these have been ported over to our our new road map, which you can find at roadmap.directus.io\u002Froadmap. You can go in here, search for existing discussions, and we've maintained that link back to the GitHub thread as well, because there's lots of useful information there. So, yeah, that's that's kinda how things look. I don't know if you've got anything to add, Ryke. Yeah. I'll say it's it's one of those interesting points where it feels very obvious to keep it all centralized on the repo. I mean, GitHub already has discussions. They already have upvotes. They already have, like, a, submitted by status. They already have the whole it's it's, approved or denied or completed and all that kind of stuff. So it it might be a little weird to just see that move over. But at the end of the day, we kinda just outgrew the tooling that was available. Right? So even right now, when we noticed, oh, we wanna move over, there's no way for us to to prevent new ones from being open on GitHub without shutting down all of the old ones, which is very unfortunate because then people can't find them. So at the end of the day, you know, this is a great, great upgrade, to at least be able to manage these feature requests and and also help our team ship, the things that are truly important here to the community. With that as well, any request that you put into this product line right now goes straight to our product team. So you're also straight talking to the source and and the folks in charge of that roadmap. You're truly in James in this case, which is a lot nicer line of communication in that regard. So just as before, you know, please do take a look at the road map. If you see something that you agree with or you're aligned with, please hit that upvote button. If you have a different request that nobody else has requested yet on this particular list, hit the new request button, and it will fly straight to us. And we'll we'll reach out, for more information. That's right. Give it to me. Plus one. Any updates? Direct line of communication, like you said. And Exactly. Feel free to add an extra layer of detail. If you see something that, you know, you see yourself in in the request, but you wanna add, you know, additional information because that comes directly to me and Mike. Exactly. And with that being said, I think let's take a look at this road map sort of going in in reverse chronological order maybe for this one. Let's take a look at some of the stuff that we've recently completed. So we'll we'll group this roughly by release, instead of chronological order. Well, I guess it's kinda the same if you think about it. But, you know, we we plan these things out on the road map over time. But starting with with 11 dot 16 release, we have the global draft versions, which is a a part of a bigger new project. James, what what is that project all about? Yeah. So I think there's been a a perception that, the content versioning features inside Directus have been kind of a advanced feature. They're a little bit tucked away. They work a little bit like GitHub branches, funny enough today. But for, you know, content editors, that need to version content, that workflow for how you work with the draft, how that gets promoted or published into the, you know, the the the live item has been not super intuitive. So we started on this track to make that a lot more native. And the latest update brings, you know, a global draft version to any item that has content versioning enabled. So the moment you switch that on, you're gonna have a draft version inside that that item. That was something you'd have to create yourself before. And then with that, we've brought that into the visual editor as well. So if you're looking at the visual editor and you want to preview draft content, you can now do that, via the visual editor. So it's part of a foundational part to making all of these content editing workflows much more intuitive for you for your business folk who are managing content. And we'll see, you know, extensions of that over the next couple of releases, for sure, particularly in the v 12 release, to make that feel much more native, that whole publishing workflow of content. So practically, that means that today, the moment you like you said, the moment you like the moment you open an item, it's straight into draft. So then it's it's way more of that sort of one, two step. You make your changes through draft. You hit publish by the time you're ready. You don't have to manually switch, back and forth ahead of time for that to work. Now that allows us to start working towards way more powerful capabilities in the future as well, of course. So we're thinking about things like dedicated permissions for versioning or potentially approval workflows even or releases of multiple of these content items together. So this this first draft change is is one in a step of many, many changes all related to what we're calling the CEW project or the content editorial workflow project, internally. Awesome. That's right. Then another thing we shipped recently that fits really well in this sort of one two punch of you make a bunch of changes and you ship it out. Can you guess what it is? It's the deployments module. So we just shipped a new module directly in the studio integrated with Vercel, quickly followed up by Netlify by a community member. Thank you for that. Thank you. What what is that deployments module all about? Yeah. So it's it's something we we've even struggled with internally, our internal marketing teams that use Directus. You know, the sites are deployed on on Vercel or Netlify or, you know, other other hosting providers. And let's say you're managing some content inside Directus, you then have to leave Directus, you know, assuming you have access to that third party solution, to then go and deploy your site to reflect the the changes that you've made in your CMS. Now that's a little bit nuanced, whether you want all of your content editors to have access to that system, which is primarily about deployments, potentially not. But maybe you wanna give them the flexibility to still rebuild the site on demand. So this is really about bringing that functionality natively into director's core so that you can make those changes. And then, you know, you can go in and you can hit, trigger a build in in Vercel or Netlify. And then we'll give you the, you know, the the deployment status, the build logs, give you a link out to see the the the, the the site once it's built. So, yeah, I mean, all all covered by RBAC. So, you know, if you you want to delegate responsibility beyond the admin in terms of who can trigger deployments, that's all kind of covered by the existing, role based access control settings inside Directus. That's what it's all about. I mean, I think we'd love to extend this beyond Vercel and Netlify as well. So you probably got some ideas. Gonna say, like, with with most everything we've built in Direct is we've tried to do this in as most of an abstract that way as we could, which is why we saw Netlify flying relatively quickly. Now this is this is too good of a a segue not to use it. If people wanna request which one we should add as a third, where where did they do that? Well, I I guess you could come come on to here. Right? And you could still add the feedback here, just so it's, you know, tightly related to this project. But this is a completed project, so maybe the best thing to do would be to hit new request. Tell us that you want Cloudflare pages or something like that. And then, that's gonna come right to us. And, obviously, that's gonna be something that we're but we're already thinking about it. Right? For sure. For sure. Yeah. Alright. Onto a very different topic then. And this is a feature request that I opened back on GitHub maybe four years ago, if not five at this point. The ability to potentially filter within JSON fields. It is one that we've sort of toyed with. We've tried it out. We've done a PR in the past that didn't quite land, but there's updates on that front. James, what's the latest? There is. And they're currently showing is in progress, but, you know, part of this was actually released in in, like you said, the 11\u002F2016. But, yeah, this is really about bringing support to interact with, you know, JSON data in your database, at the API. So the first piece that we delivered in 11\u002F2016 allows you to select fields within a JSON blob very simply. So you don't have to bring the whole thing, you know, client side and deal with it yourself. That is nice, but it's clearly not the end goal. The end goal is to to bring full support, in the API for filtering, sorting, aliasing, across all of the different database vendors, of course, and then extend it, you know, to to the SDK as well. Make sure it's not just supported in the rest API. So we'll see a big big chunk of that, particularly the filtering drop in the next release. And I think that, you know, in subsequent releases, there might be additional things just to to get us to that final state. But, yeah, like you said, I think the original GitHub discussion maybe we can have a look. Got a feeling this was yeah. A little while ago. But lots of community support for this, so really happy to be able to to work on this. Shout out to Tim internally who's been working on this. It was actually a bit of a hackathon project that ended up getting rolled out, into the core. So It it was something we've all been wanting to have for a long time, so I'm glad we're getting to it now. Awesome. Yeah. Super exciting. What about something that's probably quite close to your involvement, which is we've had a bit of an AI related work stream over the last few months. Things have developed not just not just in the market, but also for directors. So maybe you wanna give us a few, a few thoughts on how how things develop. I might use this as a little bit of a a sneaky personal pitch, but if you happen to have caught my my recent keynotes at the at Vue JS Amsterdam conference or coming up at Vue JS Atlanta, one thing that we have been heavily focused on is to see how can we use the AI technology stacks, so LLMs and generative images and things like that, within the product in a way that actually makes sense for our users. Right? So the thing I'm personally always scared of is shipping a bunch of gimmicks that nobody then cares about, which, you know, hot takes, but it happens all over the place. So how do we use that technology then in a way that actually makes sense? So the first thing we did is implement that MCP endpoint that shipped, I wanna say, in 11\u002F13 or even '12. It's a little while back now. It's been out for a minute. We did it as a standalone package first to test the waters. That went really incredibly well. Then we moved it into core as a native feature that is just there by default. So that allows LLMs outside of the product to use the content and data within and but also take other system actions, like doing the data modeling or even setting up permissions. Although, make sure you confirm what it's doing. The second big step for us there was to move that experience into the product itself. So right now, we have that AI chat sidebar, natively in the product. So it's always available in the bottom right, and it knows the context of the page. Where are you? What tools are available? What can it, you know, what can it do both on the client and server side? So on the server side, we've implemented the same MCP tools that you had before from external LLMs. So that is things like changing the data model, reading or writing items, retrieving files, and some other system operations like that. The second big thing we started developing is sort of the client side tooling integration of that. And what that means is that the LLM chat sidebar can take actions in the studio on your behalf. So not just on the API, but in the studio as well. We're continuing to explore what that looks like. So right now, we're focusing heavily on exactly the e d assets and translations workflow. So that is really focusing on, you know, helping you do the content creation in various languages that you might not be native in on the fly, in line in the studio rather than doing it, you know, hidden away in the background. So a lot of very exciting stuff on that front. We're also doing a little bit of r and d in this sort of more agentic workflows in the background and background processes, but, you know, that is a little too early to to share too much of that. Nice. And I think since we released some of these capabilities, particularly the the embedded AI assistant, lot of feedback we got was around extending support. Right? I think we went live with Anthropic and OpenAI, but maybe you can add a bit on how we've looked at support beyond that and and what people are still asking for. For sure. Yeah. I mean, as as anybody who's been anybody who who stumbled into Twitter in in the recent week or so, I mean, you see these models, they they evolve so, so, so rapidly that it is near impossible to just pick one vendor and and be happy with it for, you know, years to come. So as with most everything else at Directus, like we just saw with, the other features we talked about as well around deployment, we wanna make sure we built this in a an agnostic a way as we possibly can. So we'd indeed shipped it with an abstraction with just on top of OpenAI and anthropic to start with. But then immediately, people started mentioning. It's like, oh, but what about Gemini? Or what about Grok? God forbid. Or what about an OpenAI endpoint that I self host, which is very interesting. So we started shipping, some of the big other vendors that you'd expect. So I think we we, well, not I think I know we added support for for Gemini pretty quickly after, but are now also really focusing in on, like, okay. What are the nuances of, like, an open AI that runs on Azure that you have full control over, or what happens if you run a Mistral AI model that you have self hosted? To really tie back into that data sovereignty play. Right? Because at the end of the day, the technology stack is really cool and exciting, but you might not be comfortable with sending, you know, that private data from your database over to some external company that you may or may not trust. So this is a really interesting next angle here for the way we treat AI within Directus that I think fits in really well in our sort of overall self hosted, data sovereignty play. Very nice. Very nice. So, yeah, you can you can add add an open AI API compatible, that's a hell of a mouthful, provider inside the director settings today if you wanna use the the AI assistant, with an alternative provider. Let's come back to the completed section. I know we're going jumping all over the place as we go, but I think that's okay. Yeah. I mean, this was an interesting one internally for the team, at least. I think collaborative editing was a was a capability that was that was developed suddenly before I joined Directus, but originally built as a extension. Is that right? That's right. And that was really to make sure that we, just as with the MCP endpoint, had a way to experiment with what that needed to look and feel like. So as you might imagine, with something as broadly used as direct as in terms of use cases, with that comes a lot of different hopes and dreams about how that collaborative nature of the thing works. Is everybody working on the same draft state that we just talked about for the CEW project, or are you working all locally, and does it sync up only when you hit save? And how does that then do do merge resolutions and and complicated things like that? So we shipped it as a plug in first to test the waters. That went really well. We learned a lot from that. Then by the time we were like, okay. This feels now like we know what this needs to look like in the product for real, we were able to move it back into core. And luckily, because, you know, extensions are built as very modular pieces, that are built in the same way that we built the core product, it was actually relatively straightforward to to move that in here as well. Nice. I think that one was added in in 11\u002F2015 maybe. But, yeah, that's now basically a core a core capability. So if you want to enable collaborative editing, you could do that in the project settings. Once you enable that, you're gonna see, you know, multiple avatars if you're collaborating over the same same item inside the studio. And you get things like field locking behavior as well. So if somebody's working in a field, obviously, you can't edit it while they're editing it. So, yeah, really nice, feature for for content folks, who want to collaborate together. So highly recommend switching it on and, of course, giving us feedback, if you experience anything that you think could be improved or anything like that. If you know where to find us now. Also, with that quick shout out, you know, we we often do use extensions as the the vessel to do experimental work. So if you're you're curious to see what is, you know, the newest of the new, do take a look at the extensions that are out there, both from us and and the community. We post a lot of experimental work on the Directus Labs GitHub organization that I think is worth, a quick look. Awesome. Maybe that's a good segue into something which we're gonna have to comment on because it's it's sitting right at the top. Certainly, the thing that caught my attention since I joined Directus, right, which is this one. And the reason I say that is because you you mentioned extensions, and you mentioned, you know, at the moment, this is something where I think people who are looking for a solution to configure as code or or gen more generally speaking, environment synchronization, they are having to look to third party extensions, and there are some good ones out there. I think that's For sure. That's something we can say for sure. So a bit of context on this one today. I think schema snapshot is all all or nothing. Right? You can synchronize, one environment to another, but it's all or nothing. And I think that that's not really providing the granular control that people need. I think they need to be able to do it resource specific, be able to exclude, include certain collections, and, of course, support things beyond the schema itself, roles, permissions, etcetera. Maybe we could comment here. I mean, I think I think this is a really big priority for us this year, and we wanna give visibility that this is top of mind. What I would say is at the moment, if you're struggling with this, look to the third party extensions. Some of the the third party extensions here, you know, the the director sync, underneath Traktor. Really good, fully modular, decomposes the schema into discrete files. You know, highly recommend that, if you need kind of selective syncing capabilities in absence of anything native. The migration bundle is actually a Directus Labs one. This is very UI driven, allows you to select resource types, push them to different environments. And then the Directus schema sync as well is another one that I'm aware of that that allows for sort of event driven auto export as well. So there are some great solutions out there. Right? But I think that one of the concerns is is some of these are, you know, they're they're not native solutions, and so we're really looking to bring kind of a first party experience here as well. Don't know if you you wanna add anything on this one, Reich. Well, I think the fascinating thing here the question is is I'm sure on top of everybody's mind is, what took you so long? Like, why has this thing been open for such a long time? It's been the number one or two. At least top three upvote of feature requests for, you know, as long as this project has been live. And I think it's interesting to dive into that context a little bit because there's there's two feature requests that come to mind that have been open and upvoted a lot. The second one, we'll circle back to, you know, I I would say put in the comments if you can guess which it is. But config as code, it's one of the ones where there's just such a tremendous wide range of opinions and hopes and dreams. Right? Even different use cases as well. Some people wanna use it as a sort of way to move from a dev environment to a prod environment, which is very valid. Some people wanna use it more as a sort of backup and restore approach that you can go back in time to a previous state of your project. Some people have been telling us they wanna use it as a sort of template for new projects. Like, if you run an agency, you just wanna, you know, spin up multiple copies of the same underlying template. And all of those different use cases, they all kind of require the same solution with a twist. So they're all slightly different, and they all have their own requirements and and differences, which is why this has been in in research phase for a long, long time while we just capture and ingest all of that information. So over the now years, we've been talking to a lot of different people about what this means, and what those different use cases are and and outline how it all comes together. And we have a pretty good plan now into how this, this could actually look like for real as a native feature. So that is super exciting and something, you know, I look forward to having. Cool. Have we covered the completed? Do we want to look at other things on here that are either in progress or coming up? I mean, when it comes to the completed list, there's there's a lot more to look at here on the road map itself. In the interest of time, you know, I don't wanna spend the rest of the whole day or even this week just going through them item by item. If you do have questions about any of these other stuff, by the way, a, you know, where to find this now on the road map itself, but, also, we have the community, of course. Right? So we have community.directus.io. If you have questions about anything you hear today, anything here on the road map, feel free to to put a post up there as well. We we actively monitor that. I'm more than happy to chat with you, about any anything and everything, frankly. So find us there. I think, you know, a couple of small things that are probably worth calling out on the to do list is the MIME type restrictions on file interfaces, relatively tiny thing, but it's something, you know, people have been asking for, for quite some time. So we're very glad that we've been able to to to put that in. We did a we did a revision to revisions, an update to how, you know, the comparison looks like if you if you look, to compare the current state of your item with a a previous state. So we we changed that from from the little sidebar you might have seen, with the red green changes into more of a side by side view that is a lot more in-depth and allows you to explore, you know, the things that changed. Other than that, we did also finally add bulk file and folder downloading. So in the file library, you could select multiple things at once. Just download them all as a as a folder instead of having to go one by one. It's the little things. It's the little things that are huge quality of life unlocks here for the platform. You know? So oftentimes, things like that, they're a little bit too small to mention anything like this, but it's definitely worth shouting out, I think. For sure. The the other one that comes to mind is the, external third party JWT support. I think this is something we saw a lot of feedback around how to manage that, how to validate a third party JWT translated into direct us accountability object. And I think we exposed some u utils there to to make that much easier, and there's a there's a really great reference guide. So if you are looking to, you know, integrate sort of for machine to machine purposes with Okta and things like that, then, you know, there's a there's a great reference tutorial, which hopefully is, like, flashing up on screen or something right now, that that I'd recommend people check out as well. And it's another one of those things. Right? It's like, from the outside looking in, it's it's just hard to really know what that means and what that unlocks. But that external JWT validation means that you can have your users log in using something like Okta or Auth0 and then use that same token you already have from that external service as the token indirect is, which is, you know, not everybody might need that, but when you do, you really do, and there's really no other workaround. So, again, I'm very glad that our extension service combined with some of these utilities that we provided are now allowing you to to unlock that that otherwise blocker. Good stuff. I think beyond that, looking at kind of, you know, what's in progress now, I think we've we've touched upon a lot of these already. Like we said, the the global draft was the kind of foundation towards this draft and publishing workflow, having that really intuitive experience, and incorporating things within that, like auto save when you're editing a form, which kind of relates to this one. Right? You know, you wanna save and stay. Well, if you have auto save, well, that kind of becomes somewhat redundant. So looking to solve some of these problems that exist in the to do with, you know, some of the solutions that are also in progress right now. Absolutely. I I teased it a little bit before when I said top three, most upvoted things. Save and stay button, definitely one of the three, but we we have to touch on the elephant in the room, which is renaming collections and fields. You want it. We want it. We all want it. Everybody has wanted it from from a long time. This is one where it's not so much the yeah. There it is. Triple digit. There it is. The big one, the the light will of this team. The the, where where the config is code or even the save and state default state is one of the ones that takes a lot of research because there's so many different opinions and so many different ways of approaching it. Renaming collections of fields feels like a very dumb one in comparison. Right? It's like you have it or you don't. There's really not a lot to figure out for that. So you might be wondering, like, what the hell takes you so long to to do that for the same reason. And this is quite frankly, you know, system design thing from from back in the day. So we have, when we make that change in the database well, of course, it's a very destructive change in the database that is connected, so there's a third party tooling problem potentially. But, But, also, there's a lot of internal references that need to be updated, some of which, can be a bit under the hood, for things like layout options and and other references that are otherwise hidden. So we've we've seen, quite a few different experiments on this topic, recently in in extensions, which, again, thank you for that. It's it's great inspiration. Make sure to check those out. But we also recently started experimenting internally with, like, okay. How could this come together in a way that doesn't immediately break everything? Right? So how can we work on API aliasing, for example, to unlock some of the the requirements for this without breaking the connected database and its connected services that we might not know about. Alternatives as well, of course. Like, what what are the options that we do all of those updates in the system tables as one giant transaction in case, you know, something goes wrong and you have to undo it? All of that is to say is do know that there's not a day that I wake up and not think about renaming collections of fields. You you you find me in person at conferences and it's the first thing you bring up and and do know that I've I've heard you loud and clear. And it's something that's very, very top of mind. Good stuff. So we expect to hear more about this one, you think, this year? For sure. I mean, you're gonna hear me bring it up every single time, if if anything. So you're gonna hear about it. You're gonna hear about it. Now we're we have some some very active experiments in flight now to see how we can bring this to life in a way that doesn't completely break everything or is a huge breaking change to migrate into and all that that kind of stuff. Because, of course, you know, it's it's it's one thing to say we now allow you to rename everything, but the migration into the new version takes, you know, a week to do by hand. That's not good enough for us either. So bear with, you know, there's quite a lot of technical work to be figured out here, but do know that we're we're actively talking about it. It's front of mind. Front of mind. Good stuff. Beyond or behind all of this. Right? We've spoken a lot about a lot of stuff today, but maybe to think, beyond just what's visible on the road map here. Few rumors on forums, few things being hinted at over the last year. People are naturally gonna be curious about what that means. If you know, you know. If you've seen things in the forums, you might know what we're speaking about. But can you tell us anything about that, right, is there anything we can let people know about? Well, I can say we have been teasing and and sometimes leaking, you know, who you are. Some of these some of the information behind this. But, yes, the the rumors there are true. We have been hard at work behind the scenes on something brand new as well. So this is gonna be a separate thing from Directus altogether with more of a back end as a service focus than we've had in the past. It's his own image, inspired by Directus and using the learnings that we have, but aimed at a way sort of larger scale, multi data source, deployment paradigm. I don't wanna overshare too much yet before people get mad at me, but we are putting out a a sign up link if you wanna learn more. So we're gonna do some early sign ups for alpha release for a sort of private testing phase. We're very excited about this, and I wish I could just share, you know, a lot more than that. But be assured, we're gonna be sharing a lot more in the next league week, about this project. Very nice. Very nice. I think that's a small small teaser for now. And like I said, there should be a resource for people to go and, sign up and and and and get onto some kind of wait list for something. Look forward to hearing more about that. Alright. With that all being said, I I know we mentioned it a couple of times today, but if you have any other feature requests or ideas about what this road map should look like or what you find important or don't, that's also very valuable information. Know where to find us at roadmap.tractors.io. That gets you straight in touch with James and yours truly. For everything else, any questions, any concerns, any other teasers, find your way to community.directus.io. We have a wonderful discourse server over there, that we actively moderate and manage, and that is incredibly active within the community. So I highly recommend find your way to those two resources, and we'll see you on the Internet.","0a212673-7f3c-4be5-8bb2-cf71df4a9aea",[54,55],"ab4d84a8-5507-4a27-a392-52c6af41a007","b02696e6-fb11-47cf-bcc4-b7378353b257",[],1781213222555]