[{"data":1,"prerenderedAt":456},["ShallowReactive",2],{"footer-primary":3,"footer-secondary":93,"footer-description":119,"the-changelog-march-2025":121,"the-changelog-march-2025-next":186,"sales-reps":204},{"items":4},[5,29,49,69],{"id":6,"title":7,"url":8,"page":8,"children":9},"522e608a-77b0-4333-820d-d4f44be2ade1","Solutions",null,[10,15,20,25],{"id":11,"title":12,"url":8,"page":13},"fcafe85a-a798-4710-9e7a-776fe413aae5","Headless CMS",{"permalink":14},"/solutions/headless-cms",{"id":16,"title":17,"url":8,"page":18},"79972923-93cf-4777-9e32-5c9b0315fc10","Backend-as-a-Service",{"permalink":19},"/solutions/backend-as-a-service",{"id":21,"title":22,"url":8,"page":23},"0fa8d0c1-7b64-4f6f-939d-d7fdb99fc407","Product Information",{"permalink":24},"/solutions/product-information-management",{"id":26,"title":27,"url":28,"page":8},"63946d54-6052-4780-8ff4-91f5a9931dcc","100+ Things to Build","https://directus.io/blog/100-tools-apps-and-platforms-you-can-build-with-directus",{"id":30,"title":31,"url":8,"page":8,"children":32},"8ab4f9b1-f3e2-44d6-919b-011d91fe072f","Resources",[33,37,41,45],{"id":34,"title":35,"url":36,"page":8},"f951fb84-8777-4b84-9e91-996fe9d25483","Documentation","https://docs.directus.io",{"id":38,"title":39,"url":40,"page":8},"366febc7-a538-4c08-a326-e6204957f1e3","Guides","https://docs.directus.io/guides/",{"id":42,"title":43,"url":44,"page":8},"aeb9128e-1c5f-417f-863c-2449416433cd","Community","https://directus.chat",{"id":46,"title":47,"url":48,"page":8},"da1c2ed8-0a77-49b0-a903-49c56cb07de5","Release Notes","https://github.com/directus/directus/releases",{"id":50,"title":51,"url":8,"page":8,"children":52},"d61fae8c-7502-494a-822f-19ecff3d0256","Support",[53,57,61,65],{"id":54,"title":55,"url":56,"page":8},"8c43c781-7ebd-475f-a931-747e293c0a88","Issue Tracker","https://github.com/directus/directus/issues",{"id":58,"title":59,"url":60,"page":8},"d77bb78e-cf7b-4e01-932a-514414ba49d3","Feature Requests","https://github.com/directus/directus/discussions?discussions_q=is:open+sort:top",{"id":62,"title":63,"url":64,"page":8},"4346be2b-2c53-476e-b53b-becacec626a6","Community Chat","https://discord.com/channels/725371605378924594/741317677397704757",{"id":66,"title":67,"url":68,"page":8},"26c115d2-49f7-4edc-935e-d37d427fb89d","Cloud Dashboard","https://directus.cloud",{"id":70,"title":71,"url":8,"page":8,"children":72},"49141403-4f20-44ac-8453-25ace1265812","Organization",[73,78,84,88],{"id":74,"title":75,"url":76,"page":77},"1f36ea92-8a5e-47c8-914c-9822a8b9538a","About","/about",{"permalink":76},{"id":79,"title":80,"url":81,"page":82},"b84bf525-5471-4b14-a93c-225f6c386005","Careers","#",{"permalink":83},"/careers",{"id":85,"title":86,"url":87,"page":8},"86aabc3a-433d-434b-9efa-ad1d34be0a34","Brand Assets","https://drive.google.com/drive/folders/1lBOTba4RaA5ikqOn8Ewo4RYzD0XcymG9?usp=sharing",{"id":89,"title":90,"url":8,"page":91},"8d2fa1e3-198e-4405-81e1-2ceb858bc237","Contact",{"permalink":92},"/contact",{"items":94},[95,101,107,113],{"id":96,"title":97,"url":8,"page":98,"children":100},"8a1b7bfa-429d-4ffc-a650-2a5fdcf356da","Cloud Policies",{"permalink":99},"/cloud-policies",[],{"id":102,"title":103,"url":81,"page":104,"children":106},"bea848ef-828f-4306-8017-6b00ec5d4a0c","License",{"permalink":105},"/bsl",[],{"id":108,"title":109,"url":81,"page":110,"children":112},"4e914f47-4bee-42b7-b445-3119ee4196ef","Terms",{"permalink":111},"/terms",[],{"id":114,"title":115,"url":81,"page":116,"children":118},"ea69eda6-d317-4981-8421-fcabb1826bfd","Privacy",{"permalink":117},"/privacy",[],{"description":120},"\u003Cp>A composable backend to build your Headless CMS, BaaS, and more.&nbsp;\u003C/p>",{"id":122,"slug":123,"vimeo_id":124,"description":125,"tile":126,"length":127,"resources":8,"people":8,"episode_number":128,"published":129,"title":130,"video_transcript_html":131,"video_transcript_text":132,"content":8,"status":133,"episode_people":134,"recommendations":169,"season":170,"seo":185},"0ed97d3a-f55b-497e-a5c1-5812814a841e","march-2025","1063229947","Join us for The Changelog, taking you through the month’s Directus updates including product updates, new content and community contribution highlights. This month includes new extensions such as an SEO plugin and field comments module, a new episode of Unchartered Territory and What's in your Dock from Bryant.","f6439d36-d8f8-45f9-91f1-8dd032f99b32",34,8,"2025-03-12","March 2025","\u003Cp>Speaker 0: Alright. Hello, everyone. Hopefully, you are having a great day. If you're new here, I'm Beth, and I am here to take you through what is new with Directus in March. We have a really great show for you today.\u003C/p>\n\u003Cp>We have a lot of Bryant. We're very lucky. He will be taking us through what his working setup is in a special edition of what's in your dock. We also have a brand new episode one of uncharted territory, a brand new director's TV show. But first, I have an invite for you.\u003C/p>\n\u003Cp>So if you are free on the March 20, we are hosting a workshop with Ingest called building advanced content workflows. And in it, you can learn how to build an automated translation system using direct us in ingest that you can implement immediately. It is on the March 20. And if you are in our Discord, you can see it with the little events tab on the there. First of all though I'm gonna take you through to Carmen who has got the product updates for you, for this month.\u003C/p>\n\u003Cp>Speaker 1: Hey, everyone. Carmen here to tell you about what we've shipped in Directus in the last month or so with eleven point five point zero and eleven point five point one. We've added numerous small improvements and bug fixes. And in this section, I'm gonna highlight two of these to draw your attention. Firstly and importantly, we have a breaking change to bring to your attention.\u003C/p>\n\u003Cp>There is a changed error message when a flow condition operation fails, And we've added partial Prometheus supports for your monitoring needs. Currently, we support the pull method via the metrics endpoint. Metrics generated can be controlled by a CSV of services to observe using the metric services environment variable. So that's what we've released in the last month. Be sure to keep up with releases on our documentation at directus.i0/docs.\u003C/p>\n\u003Cp>And if you have any questions or feedback, be sure to join us on Discord. This month, we've added two different tutorials to our documentation in four frameworks each, Next. Js, Astro, SvelteKit, and Nuxt. So, yeah, we've got eight new articles. These are on implementing multilingual content using Directus and the framework and rendering dynamic blocks using framework.\u003C/p>\n\u003Cp>You can check them out at directus.i0/docs forward /tutorials forward slash getting dash started.\u003C/p>\n\u003Cp>Speaker 2: Hello. I'm Mike, and I'm from the marketing team. I'm gonna be here to talk to you about all the latest extensions that have been released in the Director's Labs org on GitHub. Just as a reminder, this org is where we publish regularly new experimental extensions with quality of life or feature improvements that could be used. First, we're gonna be talking about the field comments module.\u003C/p>\n\u003Cp>First, what we need to do is connect it to a collection. In this case, I'm gonna attach it to our employees collection. We can enable it on all fields by default, or we can select specific fields we wish to be able to comment against. When we add an official record, so for this, I'll be adding myself. I am the developer experience engineer.\u003C/p>\n\u003Cp>I do things with extensions. You'll notice how there's no additional information or anything here. Once the record is created, we can go back in, and you'll notice how there are now additional comments sections that we can add. So in this case, at admin user, is this person actually the dev ex engineer? Once we submit this, we'll be had a comment to that field, and it'll tag accordingly how many comments are available.\u003C/p>\n\u003Cp>This also uses the existing commenting, feature of directors. So if you tag somebody, etcetera, they will receive a notification about it. And as an aside, any field level comment is completely isolated to its field and doesn't appear in the item level comments. The next extension we're talking about is the SEO plugin. We can configure this quickly with templates for both the title, the meta description, and we can enable additional functionality such as sitemap controls for how often things are going to be updating our sitemap, search engine controls for things such as no follow and no index, as well as adding the social media image for graphs.\u003C/p>\n\u003Cp>I'm going to just quickly skip that one so I don't have to attach an image. Add this to\u003C/p>\n\u003Cp>Speaker 1: our data model. Once we are\u003C/p>\n\u003Cp>Speaker 2: back in our data model, you'll be able to see that we have our content as well as our new fields for SEO. So, okay. Alsmore is the DevX engineer. Mike those things with extensions for directors. And you'll notice how we're now getting a lovely preview with some help controllers, so we don't want this to be followed, but we do want it to be indexed.\u003C/p>\n\u003Cp>And now we can save this. This extension that we'll be looking at is the WYSIWYG add edit file link. So if we create an item, this is the selected field. There is a new add edit file link button. So if we have some content and we want to insert a file, for example, we can grab off my desktop a text file, add it, the transcript of the meeting, and we can have it open in a new field.\u003C/p>\n\u003Cp>This image, preview doesn't work as it's not an image, but we add this, and we'll have the transcript to the new meeting as a file. We can also then go in, revise it, and change anything. The complete just as if we were editing the normal link, we can also and just to double check, we can also upload an image. Director's logo, which will have the preview and allow us to insert it with the download option. And they look like so, with the complete URL through to the assets library locally.\u003C/p>\n\u003Cp>The final module for this month is going to be the migrate module. Here you can see I have the migrate modules interface, and the Directus instance I'm going to send it to. This is, my local instance, and this is a remote cloud instance. As you can see here, there is no content, no collections available, but we have a collection available here. So I'm just gonna quickly grab a static token, as the module requires a authorization token to interact with the client.\u003C/p>\n\u003Cp>Don't worry. I'll recycle this afterwards so that nobody can use it. Save that. Going to grab our domain for the client. Now we can really check to see if it is compatible.\u003C/p>\n\u003Cp>And you'll see here that there there is a difference. My local is running 11.4, and the remote is 11.51. We can force this through. I'm going to now. Or we can use this as an opportunity to run any upgrades, etcetera, to make sure everything is aligned, especially if there is a major difference like version 10 or any of the larger schema changes internally.\u003C/p>\n\u003Cp>So we're gonna force this, and we don't want to copy over the users because I already have an admin user over in my remote. So we are now going to start the dry run, and it's going to create a snapshot and create collection options. This may take a moment. We're also able to preview every one of the files created as part of the migration, all the individual components that make it up. Now to actually do the migration, we apply our key and our domain.\u003C/p>\n\u003Cp>We are once again gonna have to force it through, and we remove the driver and tag. This way, it's not just building it and running locally. It is pushing up to the remote instance. So just to validate again, we don't have a collection here. I'm gonna start the migration process.\u003C/p>\n\u003Cp>And now we can see that the migration is complete, but it has skipped the users as we already have an admin user. Now if I reload the content, we will have our employee collection with me, the developer experience engineer, with all the relevant information internally. The only thing that's missing is this instance will now need to be configured with the correct extensions for it to operate as expected.\u003C/p>\n\u003Cp>Speaker 0: Alright. Hopefully, you found those interesting. Mike, I don't know if you're in the chat, but what is your keyboard? It's clicky, it's a chef's kiss. Very nice.\u003C/p>\n\u003Cp>It's very satisfying. If you are planning on using anything that was just mentioned or you have any questions, let us know. A few of us are hanging around in the chat so we can see them and answer your questions. Or if you are catching this on demand, let us know in Discord, and we'll see what we can do. It is time for the first of Brian's sections.\u003C/p>\n\u003Cp>So he is gonna be talking us through what is in your doc. And if you haven't caught that on the director's TV already, we have a bunch of cool people with very interesting jobs tell us what they are using in their day to day setup. And so here is Bryant's. Hey.\u003C/p>\n\u003Cp>Speaker 3: Hey. Bryant here from Directus, and I I guess today I'm actually breaking down what's in my doc. Now, our CTO, Ryke, did one of these videos not too long ago and there's a lot of overlap in our setups. So I'll try to cover some of the apps that he didn't mention, but if you haven't checked out his video, definitely give it a watch to see what he's running. Alright.\u003C/p>\n\u003Cp>So let's dive in. Right. Onto, like, my main squeezes, the daily drivers. First up has got to be Missive. Hands down, the only email app you'll ever need.\u003C/p>\n\u003Cp>I've been using it for years. Now what makes it special? Well, I can manage both work and personal inboxes in a single app. That's the biggest thing. No more bouncing between Gmail tabs or different applications.\u003C/p>\n\u003Cp>And, you know, if you're working with a team, the collaboration features are killer, especially if you're just sharing inboxes with said team. Alright. Next up is gonna be Raycast. I use that for navigating and launching apps, and I was an Alford user for a lot of years. Even built a few plugins for that, but honestly Raycast blows it out of the water.\u003C/p>\n\u003Cp>Quick app switching, the clipboard history is probably what I use most. It's just become one of those tools that I can't imagine working without anymore. I do pay for the Pro plan, but, honestly, I don't use the AI features a ton because the experience is just a little clunky compared to some of the dedicated apps. For API work I'm using Bruno. If you've caught any of my 100 Apps one hundred Hours episodes, you've probably seen me using it to make API calls.\u003C/p>\n\u003Cp>It's a great open source alternative to Postman. The interface is a lot cleaner, and it's been super reliable for me. I've also recently switched to Orb Stack as a replacement for Docker Desktop. It seems to be a lot lighter on resources, it starts up a lot faster for me, and it it really just feels more native. So definitely give it a look.\u003C/p>\n\u003Cp>Now, on to videos, which is what I get asked about most. So, like, my setup, I get questions on all the time on the YouTube channel, both privately in the Discord community and sometimes via email. We do a lot of different styles of videos, so I'm gonna do a quick breakdown here of what I'm using. As far as the video apps, Loom is my go to for sharing quick updates with the Directus Core team or within the Directus community. If you need to explain a bug or show how something works, just click Record, boom, I get a link to share and then I'm done.\u003C/p>\n\u003Cp>That's it. For those UI focused recordings where you see me zipping around the screen, with all the slick animations, I'm using Screen Studio. It automatically adds those smooth zooms and highlights, and it makes just UI demos way more engaging. 99% of the time audio is off for those videos. When I need something more robust for longer form content, I'm using ScreenFlow.\u003C/p>\n\u003Cp>The editing capabilities within it are super quick and lightweight. It's perfect for me to put out, quick but yet still polished videos. Most of the time though, I'm exporting for our main man, Nat, who is our editor. And, Nat, you should probably edit yourself in here taking a battle somewhere because you are freaking amazing. And then the little mouse highlight pointy thing that everybody asks about, that's Mouse Pose.\u003C/p>\n\u003Cp>It's a nice simple little tool with a hot key. It makes following those cursor movements so much easier for viewers and I've been using it for so long, like, using it to explain stuff has become second nature to me. As far as the video gear that I'm using, on the hardware side, my mic is the Rode VideoMic NTG. It's a bit older, maybe like five, six years old, but the sound quality is incredible for the price point, and I can use it both on my camera or mounted on my desktop here. The headphones that you always see me in are Sony WH-1000XM5s.\u003C/p>\n\u003Cp>I recently upgraded because my dog got a hold of the old pair. These are pretty pricey, but, I've got three little girls so the noise cancellation is definitely worth it to me. Everything plugs into a CalDigit TS USB hub. I've got the TS three plus. There's a newer version available, but this one has worked for me for years.\u003C/p>\n\u003Cp>I still can't get to that one cable nirvana though because I've got two of these, LG five ks displays and my MacBook Pro doesn't run all of that through a single cable. For the camera, I've got a Sony a 6,400 with a Sigma sixteen millimeter lens. That's what gives me that nice bokeh effect that you see in the background. All that is connected through an Elgato Cam Link four k, which converts the HDMI signal to USB and lets me plug that into the computer. The mood lights in the background, those are Govee light bars.\u003C/p>\n\u003Cp>I think that's how you pronounce it. I have their iPhone app so I can just change the vibe depending on what I'm recording or, you know, sometimes my mood that particular day. If it's Christmas, I can turn on Christmas lights. Amazing. Alright.\u003C/p>\n\u003Cp>So for a little more spicier territory, AI. Right? You've probably seen me use AI in some of the hundred apps, hundred hours episodes, if you've caught any. But here's what I'm actually using day to day. Claude has become my daily driver.\u003C/p>\n\u003Cp>It's part of my workflow in some form just about every single day. I could be using it for, like, creating ASCII art for a rabbit that I need for a CLI app. Don't judge me. Or summarizing documents or content that I don't have time to read. Recently used it for, like, health insurance research.\u003C/p>\n\u003Cp>Or, you know, work related. I'm writing meta descriptions for blog posts or, Directus TV episodes. I'm also using Cursor for coding, which, you know, I have a love hate relationship with at the moment. Auto completion works amazingly well probably 75, 80 percent of the time for what I use it for. But most of the LLMs still have the older Directus SDK syntax memorized, so you have to prompt it a bit to pull that out of it.\u003C/p>\n\u003Cp>The agent feature in cursor is is interesting. You know, I've used it on some greenfield projects or some new features. With existing code bases, though, it's kinda been a bit of a mixed bag for me. Also AI wise, I've been playing a lot with replicate. I don't have a ton of time.\u003C/p>\n\u003Cp>I've got three little girls. So, like, setting up all these models and trying to run them locally for me is is not an option or just something I'm not willing to commit to. So, for image generation, I've been playing around with the Flux models. So if you've seen any weird AI generated images, from me, that's where they're coming from. I like Replicate because it's quick and easy to experiment, and I've even run a couple of fine tunes using their platform.\u003C/p>\n\u003Cp>So that's it. You know, the tools I use mostly just to help me get the job done quickly. I'll see you in the community and on Directus TV. I'm definitely gonna invoke rule number two here. And I'm going to go into Directus Cloud and you can call this cheating, you can call this taking advantage of what we've already built previously, but we are going to do a new project using our simple CMS template.\u003C/p>\n\u003Cp>If I bring up my little mouse pointer tool here, it's called Mouse Pose by the way. I think that is like 90% of modern JavaScript development is wrestling with dependencies and bundlers and config. Why go with four? To me, I I hate giving people a middle ground. Right?\u003C/p>\n\u003Cp>So if we have bad or, let's say, the worst, bad, and then good and great, there's no middle ground. Right? So you gotta get off the fence. Hey. That's the way the cookie crumbles sometimes.\u003C/p>\n\u003Cp>I'm not sure what I am doing wrong with this. Feel free to steal this password here because this project should be turned off by the time we get to airing this actual episode. I'm just gonna create a new component. We'll call it feedback. Should we call it widget?\u003C/p>\n\u003Cp>Love widgets. Who doesn't love widgets? This is the personalized content engine. Website personalization engine. Badabing badaboom.\u003C/p>\n\u003Cp>This is beautiful. Right? I've got no idea whether we're actually going to be able to, like, push this one across the finish line or not. So that should be exciting for this episode. Filnaughty.\u003C/p>\n\u003Cp>Filnaughty just typing that out. And then we have the nice list. Create a strong password. Why do I have to create a strong password? Come on, dog.\u003C/p>\n\u003Cp>Why is it asking me to do this? I'm not sure. I'm sure somebody could figure out how to get access to my local host. I know we got a lot of really great hackers out there in the community. This is gonna be Site B.\u003C/p>\n\u003Cp>Alright. The other site. The site that I don't like. Site B. Don't even care about it enough to give it a nice name.\u003C/p>\n\u003Cp>Everything is installed. PMPM dev. I think we need like a blooper reel, but maybe that would be every episode that resulted in just non stop bloopers. We'll delete all of these fields that are no longer global in our data model. And today's exes episode is is really just a, a big exercise in data modeling.\u003C/p>\n\u003Cp>Alright. Delete. Delete. Delete. And this is how you know that these things aren't scripted because if it was, I would be way more organized than this.\u003C/p>\n\u003Cp>Boom. I've got a REST API. Magic happens. Sparkles fall from the sky, etcetera. Sometimes you win, sometimes you lose.\u003C/p>\n\u003Cp>Just gotta keep rolling the dice. Alright. That's it for this episode of hundred apps, hundred hours. We'll catch you on the next one. Thanks for joining.\u003C/p>\n\u003Cp>Speaker 0: Amazing. And all 10 episodes of 100 apps one hundred hours season three. So there's over 30, episodes for you at directorsi0/tv, and it's the first one. I made it the first one, when I uploaded it, so you should have no worries finding it. But thank you so much for Brian for taking us through both what is in his doc and also, the full a hundred apps, a hundred hours season three.\u003C/p>\n\u003Cp>Do go check them out. He's a very entertaining person. It's it's gonna be good. So, next up, we have episode one of another, brand new director's TV, show, which is uncharted territory, and that is we're learning how to use geospatial data with Directus. So I'm gonna hand it over to Carmen to take you through episode one.\u003C/p>\n\u003Cp>Speaker 1: This is my Directus project for tracking all of my hiking activity. And as you can see, I've got a collection called hikes, which is currently empty. Let's take a look at its structure by going to settings, data model, and hikes. Now, here we can see we've got two fields in our hikes collection. But I'd love to show on a map where my hike took place.\u003C/p>\n\u003Cp>So what we're gonna do is create a new field, make it of type map, and call it location. And we can see right now that the type is set to point. But as it turns out, there's lots of types of map data. And in this episode, we're gonna cover each and every one of them. So let's start with point.\u003C/p>\n\u003Cp>I'm gonna save this field and then go and create a hike. Gonna click on create item. Date set to today, and I'll set my location to be in this part of Vienna. So that's what the point type is. It lets us set a single point on a map.\u003C/p>\n\u003Cp>If we take a look at our collection, we'll see we have our type set to point and our coordinates set to these coordinates. Of course, this doesn't look as nice, but we'll cover the layout thereof in another episode. But a point is nice, but a hike is more of a, you know, a journey along a line. What I'm gonna do is create that map type location again, but this time set the type to line string. Go ahead and save that.\u003C/p>\n\u003Cp>And let's try again. Set the date to today. And go for a hike somewhere in France. And what I can do is by setting a certain number of points, create this line that indicates my hiking journey. So now we can see that we have a series of coordinates, which is good.\u003C/p>\n\u003Cp>But what about the other types? Let's once again create that location field and this time set the type to be a polygon. Let's go to Slovakia. So what I can do here is once again, by clicking around, I can now set a polygon to denote which area I've covered with my hike. Go ahead and save that.\u003C/p>\n\u003Cp>And we can see once again, the coordinates are set accordingly. Now let's try the multi point type. Go ahead and create a new hike. Now with multi point, I can set a variety of points. Next let's try the multiline string.\u003C/p>\n\u003Cp>Let's go to The United States. Now with a multiline string, similar to the line string itself, I can now have several strings. The multi polygon location allows us to create multiple polygons on a map. Let's give that a try. Let's go to Argentina.\u003C/p>\n\u003Cp>And as you can see, I can create multiple polygons in a map. Let's try the geometry all option. I'm gonna save this and create a new hike. Now what the geography all option lets you do is mark all kinds of points. So we can have points, we can have polygons, and we can have lines.\u003C/p>\n\u003Cp>Let's cover what the rest of the types look like. First, there's json. And json looks exactly like a geometry all object, but stored as json. A string is also a geometry all object stored as a string of characters, a text. You guessed it.\u003C/p>\n\u003Cp>Also a geometry all object, but stored as text. And CSV is a geometry object, but stored as CSV or comma separated values. How can I best store my hike? Now, as we said towards the beginning of this, the line string is really going to be my best bet because it's a series of points that I follow during my hike. So these are the different types in which we can store that GeoJSON mapping data in DirectUs.\u003C/p>\n\u003Cp>Speaker 4: We want to take a moment towards the end of the change log for thanking our amazing community contributors who give their time to improve the director's project. Since last month, there have been two contributors. A huge thank you to Chiyako for fixing a marketplace extension detail page back button and Gerard for removing a duplicated key validation logic from update by query. Thank you again. You can see the specific pull requests inside of the full release notes on GitHub.\u003C/p>\n\u003Cp>Lastly, we also want to take the time to thank our GitHub sponsors of February who financially contribute to Directsys development. A huge thank you to Wayfan, Entel, Mike, Fergus, Omar, Marcus, Peter, Utomic, Steven, Robson, Nonlinear, Andreas, John, Khan, Biab, Adam, Jason, Birka, Vincent, CK, Valentino, and Jens. The money we are given from our GitHub Sponsors goes straight back to community members who build tooling and extensions for the directors ecosystem. Thank you again for being part of that. For this month's reading list, we're following on from changing up a bit like last month with the audio special and are coming to you with video recommendations coming from FODSTEM, the free and open source software developers European meeting that took place last month.\u003C/p>\n\u003Cp>There are recordings from lots of different tracks including community, data analytics, inclusive web, security, tool the docs and so many others. To call out three of the recordings, there's alternative text for images text anyway from Mike Gifford, lessons learned open sourcing The UK's COVID tracing app from Terence Eden, and beyond the readme, crafting a better developer Experience for Open Source Projects from Lorna Mitchell. There's a seriously impressive volume of resources available to watch at fosdem.org, so we recommend you go check them out.\u003C/p>\n\u003Cp>Speaker 0: Alright. That is it for March's the changelog. If you are still here, thank you so much for taking the time to hang out with us. Hopefully, you found something useful and something that excites you for the day. Have a great rest of your day.\u003C/p>\n\u003Cp>In the meantime, as I said at the beginning, if you are free on the March 20 and want to join our workshop with Ingest, I have just posted the link in the chat. If you're not, in the Direct to CV chat live, you can also find it in the events tab on Discord. Have a great rest of your day, and hopefully see you for the next one. Take care, everyone. Have a good one.\u003C/p>\n\u003Cp>Bye.\u003C/p>","Alright. Hello, everyone. Hopefully, you are having a great day. If you're new here, I'm Beth, and I am here to take you through what is new with Directus in March. We have a really great show for you today. We have a lot of Brian. We're very lucky. He will be taking us through what his working setup is in a special edition of what's in your dock. We also have a brand new episode one of uncharted territory, a brand new director's TV show. But first, I have an invite for you. So if you are free on the March 20, we are hosting a workshop with Ingest called building advanced content workflows. And in it, you can learn how to build an automated translation system using direct us in ingest that you can implement immediately. It is on the March 20. And if you are in our Discord, you can see it with the little events tab on the there. First of all though I'm gonna take you through to Carmen who has got the product updates for you, for this month. Hey, everyone. Carmen here to tell you about what we've shipped in Directus in the last month or so with eleven point five point zero and eleven point five point one. We've added numerous small improvements and bug fixes. And in this section, I'm gonna highlight two of these to draw your attention. Firstly and importantly, we have a breaking change to bring to your attention. There is a changed error message when a flow condition operation fails, And we've added partial Prometheus supports for your monitoring needs. Currently, we support the pull method via the metrics endpoint. Metrics generated can be controlled by a CSV of services to observe using the metric services environment variable. So that's what we've released in the last month. Be sure to keep up with releases on our documentation at directus.i0/docs. And if you have any questions or feedback, be sure to join us on Discord. This month, we've added two different tutorials to our documentation in four frameworks each, Next. Js, Astro, SvelteKit, and Nuxt. So, yeah, we've got eight new articles. These are on implementing multilingual content using Directus and the framework and rendering dynamic blocks using framework. You can check them out at directus.i0/docs forward /tutorials forward slash getting dash started. Hello. I'm Mike, and I'm from the marketing team. I'm gonna be here to talk to you about all the latest extensions that have been released in the Director's Labs org on GitHub. Just as a reminder, this org is where we publish regularly new experimental extensions with quality of life or feature improvements that could be used. First, we're gonna be talking about the field comments module. First, what we need to do is connect it to a collection. In this case, I'm gonna attach it to our employees collection. We can enable it on all fields by default, or we can select specific fields we wish to be able to comment against. When we add an official record, so for this, I'll be adding myself. I am the developer experience engineer. I do things with extensions. You'll notice how there's no additional information or anything here. Once the record is created, we can go back in, and you'll notice how there are now additional comments sections that we can add. So in this case, at admin user, is this person actually the dev ex engineer? Once we submit this, we'll be had a comment to that field, and it'll tag accordingly how many comments are available. This also uses the existing commenting, feature of directors. So if you tag somebody, etcetera, they will receive a notification about it. And as an aside, any field level comment is completely isolated to its field and doesn't appear in the item level comments. The next extension we're talking about is the SEO plugin. We can configure this quickly with templates for both the title, the meta description, and we can enable additional functionality such as sitemap controls for how often things are going to be updating our sitemap, search engine controls for things such as no follow and no index, as well as adding the social media image for graphs. I'm going to just quickly skip that one so I don't have to attach an image. Add this to our data model. Once we are back in our data model, you'll be able to see that we have our content as well as our new fields for SEO. So, okay. Alsmore is the DevX engineer. Mike those things with extensions for directors. And you'll notice how we're now getting a lovely preview with some help controllers, so we don't want this to be followed, but we do want it to be indexed. And now we can save this. This extension that we'll be looking at is the WYSIWYG add edit file link. So if we create an item, this is the selected field. There is a new add edit file link button. So if we have some content and we want to insert a file, for example, we can grab off my desktop a text file, add it, the transcript of the meeting, and we can have it open in a new field. This image, preview doesn't work as it's not an image, but we add this, and we'll have the transcript to the new meeting as a file. We can also then go in, revise it, and change anything. The complete just as if we were editing the normal link, we can also and just to double check, we can also upload an image. Director's logo, which will have the preview and allow us to insert it with the download option. And they look like so, with the complete URL through to the assets library locally. The final module for this month is going to be the migrate module. Here you can see I have the migrate modules interface, and the Directus instance I'm going to send it to. This is, my local instance, and this is a remote cloud instance. As you can see here, there is no content, no collections available, but we have a collection available here. So I'm just gonna quickly grab a static token, as the module requires a authorization token to interact with the client. Don't worry. I'll recycle this afterwards so that nobody can use it. Save that. Going to grab our domain for the client. Now we can really check to see if it is compatible. And you'll see here that there there is a difference. My local is running 11.4, and the remote is 11.51. We can force this through. I'm going to now. Or we can use this as an opportunity to run any upgrades, etcetera, to make sure everything is aligned, especially if there is a major difference like version 10 or any of the larger schema changes internally. So we're gonna force this, and we don't want to copy over the users because I already have an admin user over in my remote. So we are now going to start the dry run, and it's going to create a snapshot and create collection options. This may take a moment. We're also able to preview every one of the files created as part of the migration, all the individual components that make it up. Now to actually do the migration, we apply our key and our domain. We are once again gonna have to force it through, and we remove the driver and tag. This way, it's not just building it and running locally. It is pushing up to the remote instance. So just to validate again, we don't have a collection here. I'm gonna start the migration process. And now we can see that the migration is complete, but it has skipped the users as we already have an admin user. Now if I reload the content, we will have our employee collection with me, the developer experience engineer, with all the relevant information internally. The only thing that's missing is this instance will now need to be configured with the correct extensions for it to operate as expected. Alright. Hopefully, you found those interesting. Mike, I don't know if you're in the chat, but what is your keyboard? It's clicky, it's a chef's kiss. Very nice. It's very satisfying. If you are planning on using anything that was just mentioned or you have any questions, let us know. A few of us are hanging around in the chat so we can see them and answer your questions. Or if you are catching this on demand, let us know in Discord, and we'll see what we can do. It is time for the first of Brian's sections. So he is gonna be talking us through what is in your doc. And if you haven't caught that on the director's TV already, we have a bunch of cool people with very interesting jobs tell us what they are using in their day to day setup. And so here is Bryant's. Hey. Hey. Bryant here from Directus, and I I guess today I'm actually breaking down what's in my doc. Now, our CTO, Ryke, did one of these videos not too long ago and there's a lot of overlap in our setups. So I'll try to cover some of the apps that he didn't mention, but if you haven't checked out his video, definitely give it a watch to see what he's running. Alright. So let's dive in. Right. Onto, like, my main squeezes, the daily drivers. First up has got to be Missive. Hands down, the only email app you'll ever need. I've been using it for years. Now what makes it special? Well, I can manage both work and personal inboxes in a single app. That's the biggest thing. No more bouncing between Gmail tabs or different applications. And, you know, if you're working with a team, the collaboration features are killer, especially if you're just sharing inboxes with said team. Alright. Next up is gonna be Raycast. I use that for navigating and launching apps, and I was an Alford user for a lot of years. Even built a few plugins for that, but honestly Raycast blows it out of the water. Quick app switching, the clipboard history is probably what I use most. It's just become one of those tools that I can't imagine working without anymore. I do pay for the Pro plan, but, honestly, I don't use the AI features a ton because the experience is just a little clunky compared to some of the dedicated apps. For API work I'm using Bruno. If you've caught any of my 100 Apps one hundred Hours episodes, you've probably seen me using it to make API calls. It's a great open source alternative to Postman. The interface is a lot cleaner, and it's been super reliable for me. I've also recently switched to Orb Stack as a replacement for Docker Desktop. It seems to be a lot lighter on resources, it starts up a lot faster for me, and it it really just feels more native. So definitely give it a look. Now, on to videos, which is what I get asked about most. So, like, my setup, I get questions on all the time on the YouTube channel, both privately in the Discord community and sometimes via email. We do a lot of different styles of videos, so I'm gonna do a quick breakdown here of what I'm using. As far as the video apps, Loom is my go to for sharing quick updates with the Directus Core team or within the Directus community. If you need to explain a bug or show how something works, just click Record, boom, I get a link to share and then I'm done. That's it. For those UI focused recordings where you see me zipping around the screen, with all the slick animations, I'm using Screen Studio. It automatically adds those smooth zooms and highlights, and it makes just UI demos way more engaging. 99% of the time audio is off for those videos. When I need something more robust for longer form content, I'm using ScreenFlow. The editing capabilities within it are super quick and lightweight. It's perfect for me to put out, quick but yet still polished videos. Most of the time though, I'm exporting for our main man, Nat, who is our editor. And, Nat, you should probably edit yourself in here taking a battle somewhere because you are freaking amazing. And then the little mouse highlight pointy thing that everybody asks about, that's Mouse Pose. It's a nice simple little tool with a hot key. It makes following those cursor movements so much easier for viewers and I've been using it for so long, like, using it to explain stuff has become second nature to me. As far as the video gear that I'm using, on the hardware side, my mic is the Rode VideoMic NTG. It's a bit older, maybe like five, six years old, but the sound quality is incredible for the price point, and I can use it both on my camera or mounted on my desktop here. The headphones that you always see me in are Sony WH-1000XM5s. I recently upgraded because my dog got a hold of the old pair. These are pretty pricey, but, I've got three little girls so the noise cancellation is definitely worth it to me. Everything plugs into a CalDigit TS USB hub. I've got the TS three plus. There's a newer version available, but this one has worked for me for years. I still can't get to that one cable nirvana though because I've got two of these, LG five ks displays and my MacBook Pro doesn't run all of that through a single cable. For the camera, I've got a Sony a 6,400 with a Sigma sixteen millimeter lens. That's what gives me that nice bokeh effect that you see in the background. All that is connected through an Elgato Cam Link four k, which converts the HDMI signal to USB and lets me plug that into the computer. The mood lights in the background, those are Govee light bars. I think that's how you pronounce it. I have their iPhone app so I can just change the vibe depending on what I'm recording or, you know, sometimes my mood that particular day. If it's Christmas, I can turn on Christmas lights. Amazing. Alright. So for a little more spicier territory, AI. Right? You've probably seen me use AI in some of the hundred apps, hundred hours episodes, if you've caught any. But here's what I'm actually using day to day. Claude has become my daily driver. It's part of my workflow in some form just about every single day. I could be using it for, like, creating ASCII art for a rabbit that I need for a CLI app. Don't judge me. Or summarizing documents or content that I don't have time to read. Recently used it for, like, health insurance research. Or, you know, work related. I'm writing meta descriptions for blog posts or, Directus TV episodes. I'm also using Cursor for coding, which, you know, I have a love hate relationship with at the moment. Auto completion works amazingly well probably 75, 80 percent of the time for what I use it for. But most of the LLMs still have the older Directus SDK syntax memorized, so you have to prompt it a bit to pull that out of it. The agent feature in cursor is is interesting. You know, I've used it on some greenfield projects or some new features. With existing code bases, though, it's kinda been a bit of a mixed bag for me. Also AI wise, I've been playing a lot with replicate. I don't have a ton of time. I've got three little girls. So, like, setting up all these models and trying to run them locally for me is is not an option or just something I'm not willing to commit to. So, for image generation, I've been playing around with the Flux models. So if you've seen any weird AI generated images, from me, that's where they're coming from. I like Replicate because it's quick and easy to experiment, and I've even run a couple of fine tunes using their platform. So that's it. You know, the tools I use mostly just to help me get the job done quickly. I'll see you in the community and on Directus TV. I'm definitely gonna invoke rule number two here. And I'm going to go into Directus Cloud and you can call this cheating, you can call this taking advantage of what we've already built previously, but we are going to do a new project using our simple CMS template. If I bring up my little mouse pointer tool here, it's called Mouse Pose by the way. I think that is like 90% of modern JavaScript development is wrestling with dependencies and bundlers and config. Why go with four? To me, I I hate giving people a middle ground. Right? So if we have bad or, let's say, the worst, bad, and then good and great, there's no middle ground. Right? So you gotta get off the fence. Hey. That's the way the cookie crumbles sometimes. I'm not sure what I am doing wrong with this. Feel free to steal this password here because this project should be turned off by the time we get to airing this actual episode. I'm just gonna create a new component. We'll call it feedback. Should we call it widget? Love widgets. Who doesn't love widgets? This is the personalized content engine. Website personalization engine. Badabing badaboom. This is beautiful. Right? I've got no idea whether we're actually going to be able to, like, push this one across the finish line or not. So that should be exciting for this episode. Filnaughty. Filnaughty just typing that out. And then we have the nice list. Create a strong password. Why do I have to create a strong password? Come on, dog. Why is it asking me to do this? I'm not sure. I'm sure somebody could figure out how to get access to my local host. I know we got a lot of really great hackers out there in the community. This is gonna be Site B. Alright. The other site. The site that I don't like. Site B. Don't even care about it enough to give it a nice name. Everything is installed. PMPM dev. I think we need like a blooper reel, but maybe that would be every episode that resulted in just non stop bloopers. We'll delete all of these fields that are no longer global in our data model. And today's exes episode is is really just a, a big exercise in data modeling. Alright. Delete. Delete. Delete. And this is how you know that these things aren't scripted because if it was, I would be way more organized than this. Boom. I've got a REST API. Magic happens. Sparkles fall from the sky, etcetera. Sometimes you win, sometimes you lose. Just gotta keep rolling the dice. Alright. That's it for this episode of hundred apps, hundred hours. We'll catch you on the next one. Thanks for joining. Amazing. And all 10 episodes of 100 apps one hundred hours season three. So there's over 30, episodes for you at directorsi0/tv, and it's the first one. I made it the first one, when I uploaded it, so you should have no worries finding it. But thank you so much for Brian for taking us through both what is in his doc and also, the full a hundred apps, a hundred hours season three. Do go check them out. He's a very entertaining person. It's it's gonna be good. So, next up, we have episode one of another, brand new director's TV, show, which is uncharted territory, and that is we're learning how to use geospatial data with Directus. So I'm gonna hand it over to Carmen to take you through episode one. This is my Directus project for tracking all of my hiking activity. And as you can see, I've got a collection called hikes, which is currently empty. Let's take a look at its structure by going to settings, data model, and hikes. Now, here we can see we've got two fields in our hikes collection. But I'd love to show on a map where my hike took place. So what we're gonna do is create a new field, make it of type map, and call it location. And we can see right now that the type is set to point. But as it turns out, there's lots of types of map data. And in this episode, we're gonna cover each and every one of them. So let's start with point. I'm gonna save this field and then go and create a hike. Gonna click on create item. Date set to today, and I'll set my location to be in this part of Vienna. So that's what the point type is. It lets us set a single point on a map. If we take a look at our collection, we'll see we have our type set to point and our coordinates set to these coordinates. Of course, this doesn't look as nice, but we'll cover the layout thereof in another episode. But a point is nice, but a hike is more of a, you know, a journey along a line. What I'm gonna do is create that map type location again, but this time set the type to line string. Go ahead and save that. And let's try again. Set the date to today. And go for a hike somewhere in France. And what I can do is by setting a certain number of points, create this line that indicates my hiking journey. So now we can see that we have a series of coordinates, which is good. But what about the other types? Let's once again create that location field and this time set the type to be a polygon. Let's go to Slovakia. So what I can do here is once again, by clicking around, I can now set a polygon to denote which area I've covered with my hike. Go ahead and save that. And we can see once again, the coordinates are set accordingly. Now let's try the multi point type. Go ahead and create a new hike. Now with multi point, I can set a variety of points. Next let's try the multiline string. Let's go to The United States. Now with a multiline string, similar to the line string itself, I can now have several strings. The multi polygon location allows us to create multiple polygons on a map. Let's give that a try. Let's go to Argentina. And as you can see, I can create multiple polygons in a map. Let's try the geometry all option. I'm gonna save this and create a new hike. Now what the geography all option lets you do is mark all kinds of points. So we can have points, we can have polygons, and we can have lines. Let's cover what the rest of the types look like. First, there's json. And json looks exactly like a geometry all object, but stored as json. A string is also a geometry all object stored as a string of characters, a text. You guessed it. Also a geometry all object, but stored as text. And CSV is a geometry object, but stored as CSV or comma separated values. How can I best store my hike? Now, as we said towards the beginning of this, the line string is really going to be my best bet because it's a series of points that I follow during my hike. So these are the different types in which we can store that GeoJSON mapping data in DirectUs. We want to take a moment towards the end of the change log for thanking our amazing community contributors who give their time to improve the director's project. Since last month, there have been two contributors. A huge thank you to Chiyako for fixing a marketplace extension detail page back button and Gerard for removing a duplicated key validation logic from update by query. Thank you again. You can see the specific pull requests inside of the full release notes on GitHub. Lastly, we also want to take the time to thank our GitHub sponsors of February who financially contribute to Directsys development. A huge thank you to Wayfan, Entel, Mike, Fergus, Omar, Marcus, Peter, Utomic, Steven, Robson, Nonlinear, Andreas, John, Khan, Biab, Adam, Jason, Birka, Vincent, CK, Valentino, and Jens. The money we are given from our GitHub Sponsors goes straight back to community members who build tooling and extensions for the directors ecosystem. Thank you again for being part of that. For this month's reading list, we're following on from changing up a bit like last month with the audio special and are coming to you with video recommendations coming from FODSTEM, the free and open source software developers European meeting that took place last month. There are recordings from lots of different tracks including community, data analytics, inclusive web, security, tool the docs and so many others. To call out three of the recordings, there's alternative text for images text anyway from Mike Gifford, lessons learned open sourcing The UK's COVID tracing app from Terence Eden, and beyond the readme, crafting a better developer Experience for Open Source Projects from Lorna Mitchell. There's a seriously impressive volume of resources available to watch at fosdem.org, so we recommend you go check them out. Alright. That is it for March's the changelog. If you are still here, thank you so much for taking the time to hang out with us. Hopefully, you found something useful and something that excites you for the day. Have a great rest of your day. In the meantime, as I said at the beginning, if you are free on the March 20 and want to join our workshop with Ingest, I have just posted the link in the chat. If you're not, in the Direct to CV chat live, you can also find it in the events tab on Discord. Have a great rest of your day, and hopefully see you for the next one. Take care, everyone. Have a good one. Bye.","published",[135,142,156,163],{"people_id":136},{"id":137,"first_name":138,"last_name":139,"avatar":140,"bio":141,"links":8},"3dec7812-3664-4d2d-93f8-efc876988cc7","Beth","Loft","1277761e-2a3b-4103-b29b-ffc97e8370f5","Developer Experience at Directus",{"people_id":143},{"id":144,"first_name":145,"last_name":146,"avatar":147,"bio":148,"links":149},"791e1503-1d88-463d-9347-0b9192933576","Bryant","Gillespie","9013afc8-e8d7-4182-9b18-44db08117bb9","Developer Advocate at Directus",[150,153],{"url":151,"service":152},"https://directus.io/team/bryant-gillespie","website",{"service":154,"url":155},"github","https://github.com/bryantgillespie",{"people_id":157},{"id":158,"first_name":159,"last_name":160,"avatar":161,"bio":162,"links":8},"49c9e2fa-e7d7-45c9-b7b0-7125a2219f16","Carmen","Huidobro","fedb548b-def3-437c-b90a-f0d4d3d81d1d","Developer Educator at Directus",{"people_id":164},{"id":165,"first_name":166,"last_name":167,"avatar":168,"bio":148,"links":8},"85f70038-9975-49ac-83ab-1dd09b248d83","Mike","Elsmore","a3141fa4-da55-4198-872c-8625447128fd",[],{"id":171,"number":172,"year":173,"episodes":174,"show":182},"8d55b0f7-e337-475c-99c7-3b65612fbcff",2,"2025",[175,176,122,177,178,179,180,181],"b730c9d0-30fb-4eff-b4b6-5be61826c8c0","c14eb0dd-301c-412e-b15f-a81dfe7c1265","89e3526f-dcfc-4280-96bb-126465f340f3","24ba631d-1e9f-4c47-b4eb-3f72e60dd0cd","7dd74ad6-eca6-4193-851e-8e4322847794","c181631f-45fb-4190-9f78-760fdf735bd6","3d916baf-bb4c-4fa7-8d0d-a7beb07945ff",{"title":183,"tile":184},"The Changelog","de6f3b4b-3c36-4142-819b-3312690e08a1",{"title":8,"meta_description":8},{"id":187,"slug":188,"season":189,"vimeo_id":190,"description":191,"tile":192,"length":193,"resources":8,"people":8,"episode_number":194,"published":195,"title":196,"video_transcript_html":197,"video_transcript_text":198,"content":8,"seo":199,"status":133,"episode_people":200,"recommendations":203},"6f059d81-f200-4dc7-88db-cb29239b3979","February-2026","e1a5a496-3320-4bb4-8267-8fec1c7c5f57","1168199994","Join us for The Changelog, taking you through the month’s Directus updates including product updates, new content and community contribution highlights. This month's show includes an AI update from Bryant and a new community program to get involved with from Beth.\n\n","253fe0a0-a0f9-4d82-9e60-5e38f3d8bed4",33,1,"2026-03-04","February 2026","\u003Cp>Speaker 0: Hello everyone, welcome to the changelog from Directus for February. I'm Beth and we have a really great show for you coming up. We've got a product update from James, an AI update from Brian, I'm around with a brand new community program to get involved with and we have a fresh one app ten minute episode with some brand new directors faces, so do stick around if you can. Whether you are joining us for the first time or you are a regular, hi hello, thank you for spending some time with us, and without further ado, let's kick it off with James and a product update for you.\u003C/p>\u003Cp>Speaker 1: Hey. This is James from Directus, and I'm gonna take you through some of the highlights in the 11 dot 15 release. Now first up, our AI assistant is now in GA, and it is coming with some very tasty updates. We've added multi provider support with Google and OpenAI compatible providers. So now you can use our AI assistant with Olauma Mistral AI, extending on prior support for exclusively anthropic and OpenAI.\u003C/p>\u003Cp>We've also made the AI assistant native across all of the interfaces in the director studio, meaning you can even use the AI assistant in the visual editor now. Now with new power comes new responsibility. And to use this feature, you will need to update the Director's visual editing library to v 1.2.0 plus on your website. We've also added a new deployments module inside Director's. This allows you to connect your Director's instance with Vercel to centrally manage deployments, monitor build status and control your front end projects all without leaving Directus.\u003C/p>\u003Cp>We've added support for Vercel first, but Netlify and others are sure to come soon. Let's have a look at how it works. You'll find the Deployments module inside the settings and you'll need to enable this first. Once you've enabled that you're going to get the Deployments module in the sidebar of Directus. Let's take a look.\u003C/p>\u003Cp>Let's have a go at configuring Vercel. What you'll need is your personal access token from Vercel, and here's one I have from earlier. Once you add that, you'll see the projects listed from your Vercel account. You can choose to bring one or more of these into directors. So let's bring in a couple.\u003C/p>\u003Cp>Now you see the projects listed in the project listing. And if we click into one of these, we're able to hit deploy and start building our site from inside directors. So let's assume that we've made some content changes. Patch we've updated, you know, the price of an item on our website. And as a result, we need our site on Vercel to be rebuilt.\u003C/p>\u003Cp>So I'd come into the deployments module after making that content change and I'd hit deploy. Now the other great thing here is we can monitor the deployment status as that is building. So in case that fails, I'm gonna be able to see the reasons for the site failing. And when it's successful, I'm actually gonna have the link up at the top right to be able to visit the end result. So we'll just give that a second while it's building.\u003C/p>\u003Cp>Awesome. Now I can see the status is ready. And if I hit refresh, I'm gonna see this link up here which allows me to visit the end result. Now if I come back into here, I can see I can go back and I can see the deployment listing. Now one thing to call out is you're only gonna see deployments triggered from Directus inside the listing today.\u003C/p>\u003Cp>So all of your deployments made from Vercel will not appear here at the moment. One last call out is at the moment, the deployments module is only accessible for admins. However, we do plan to add, RBAC support so you can open this up to more users in the next release. We've also brought collaborative editing into core. Now this was previously built as an extension, but we wanted to bring it into core to make some performance improvements, reduce the amount of setup, and make sure that this is a native capability.\u003C/p>\u003Cp>Now under the hood, this runs on WebSocket connections for real time sync, so you do need to have this enabled on your project. It also plugs into the existing Director's permissions so users can only collaborate on records they have access to. Let's have a look at how to enable this in 11.15. You'll find this new setting in the project settings in your Directus instance. And once enabled, this will enable the real time sync.\u003C/p>\u003Cp>So let's take a look at a record in our content space. We've got a collection of products, and let's assume that two people are working on the denim jacket. And I will just there we go. We can see that both myself, James, and Michael Matthews are now working inside, the Product Datastem. Now let's assume that somebody is working inside a specific field.\u003C/p>\u003Cp>You'll see that that field lock comes into play, and that stops people overwriting each other's changes. So that's collaborative editing, and that's now available in the core. Now we've also made some improvements to how you can review view revisions inside the studio. So let's assume that we're updating the price of our denim jacket. And let's come back in to look at the revisions.\u003C/p>\u003Cp>Now previously when you viewed a revision, we were always comparing the revision you open to the latest revision of that item. But we've made some changes to make this a little bit more intuitive. So if I update my latest revision, you'll see I have that revision on the right hand side and I'm always comparing it to the previous revision now so that we can see the granular change from a 100 dot 99 to 50.99 in this case. Now we've also maintained some flexibility for you to compare a previous revision. Let's choose a much older one and see how that currently compares to the latest revision.\u003C/p>\u003Cp>Now this is advantageous in the case for restoration, in case you wanted to restore an older version but you want to understand exactly what it's going to update on the latest version of that item. So you just toggle this pill and you can switch between what you're comparing inside the revisions comparison model. So we've been through all of the main items inside the 11 dot 15 release. But as usual, you can go to the release notes on GitHub if you want to view every granular change, that got made inside 11 dot 15.\u003C/p>\u003Cp>Speaker 2: Hey, guys. Brian here. And I'm gonna showcase some of the exciting new features we shipped to the AI assistant in v 11 dot 15. Alright. First and foremost, it's an absolute banger.\u003C/p>\u003Cp>Not only can you now use the visual editor right alongside the form inside the live preview pane, but I can use the AI assistant right alongside the visual editor. I just click the magic AI button here. And now the AI assistant has this visual editor element into our context. And we'll just ask it to, let's punch up the copy a bit for this headline. Cool.\u003C/p>\u003Cp>So it understands where that is at on the page, what's going on. And now we can see once we approve that tool call, that gets updated in line. All right, that's just the start, right? That is a heavy hitter in this case. You can also add context to the AI assistant now.\u003C/p>\u003Cp>So, I can update pages that I'm not currently on. Let's say I've got this test page. Please update the slug and title for the test page to slash about. Right? And because we are injecting that into the context, it knows what page to update.\u003C/p>\u003Cp>And if we just go back to our pages list, we could see now that is updated. Last but not least, you can also reuse the AI prompts, those templated prompts from the MCP. So if you go to your AI settings, make sure that the MCP is enabled and that you've got the AI prompts collection. And then you can reuse these prompts over and over again. So if there are dynamic variables, Directus will ask you to fill those out.\u003C/p>\u003Cp>Or you know, if you don't have any variables, you could just\u003C/p>\u003Cp>Speaker 3: do this and say, hey,\u003C/p>\u003Cp>Speaker 2: tell me a nice dad joke. Alright. We'll see what it comes up with. Guy walks into a library, books about paranoia. She whispered, they're right behind you.\u003C/p>\u003Cp>Perfect. Alright. Now, onto some of the other items that you guys asked for, and I wanted to make sure that we delivered here. So now you can also control which models for the three major providers, OpenAI, Anthropic, and Google, so you can lock those down. The other big rock out of this release is going to be the OpenAI compatible provider.\u003C/p>\u003Cp>So as long as you have an endpoint that is OpenAI compatible, you can now go in here and set your base URL, add your API keys, you could set up your different models. Make sure you include the context limit, the output limit. You can also pass custom provider options if needed. And then you can use Ollama or, any other self hosted models, any other, OpenAI compatible models. Let's say, hey from Ollama.\u003C/p>\u003Cp>And this might be just a little bit slow because my MacBook is absolutely screaming at me right now. We'll fast forward. Alright. So now you can see that we've got the text back. Your mileage is gonna vary with the self hosted models, but, you know, if you've got Azure OpenAI or some other open open AI compatible endpoint that you're using, this is a great solution for you.\u003C/p>\u003Cp>And as always, keep the feedback coming. We love to iterate on these features, and we want to deliver real value instead of just the usual AI hype. That's it for me. Back to you, Beth.\u003C/p>\u003Cp>Speaker 0: I'm here to talk through a brand new community program we're launching 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 directors 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 experienced builders and our team. It's open to contributors, customers, partners, users, really anyone who uses Directus to build something useful.\u003C/p>\u003Cp>You don't need to be building something huge, you just need to be building something real. If you're the person who likes helping others figure things out, sharing what you've been learning, or creating something cool, we want to hear from you. Applications to join the first cohort are now open. If you've got any questions or you have an idea that you think might work as part of this programme, we're all ears, we want to hear it. There's a couple of ways you can get in touch with us: submit via the application form, send an email to devreldirectus.\u003C/p>\u003Cp>Io, or post on the community forum. All of those work and we can get talking from there. We're really excited about launching this program, we hope you will also share the excitement and want to join and we're really looking to shape the future of the program collaboratively with the builders into something that works for everyone. So if you do have ideas, thoughts, questions, please do let us\u003C/p>\u003Cp>Speaker 3: know. Alright, viewers. Welcome to, yet another episode of 100 app, 100 oh, no. No. No.\u003C/p>\u003Cp>No. One app in ten minutes. Right? We are doing the remix version today where we have ten minutes to build and plan plan and build an amazing app clone, crazy suggestion, and I have no idea what we're gonna do. So the rules.\u003C/p>\u003Cp>Right? Ten minutes to plan and build. No more, no less. How we're gonna do that? We are going to use some, amazing tools that we have built into Directus.\u003C/p>\u003Cp>And then, rule number two, the anti rule. Use whatever you've got at your disposal. Today, I've got two awesome dudes at my disposal, mister Alvaro and Mark from our team here at Directus. No strangers to the Vue community. Welcome to the show, gents.\u003C/p>\u003Cp>Speaker 4: Thanks for having us, Bryant.\u003C/p>\u003Cp>Speaker 5: Thank you very much for the nice intro. Happy, to be here.\u003C/p>\u003Cp>Speaker 3: Yeah. Yeah. No. I'm super excited. Have you guys given any thought to what we're what we're gonna build?\u003C/p>\u003Cp>Speaker 5: I think, Mark, you have some idea though.\u003C/p>\u003Cp>Speaker 4: Yeah. So yesterday, we talked a little bit. I talked with Ava what we could build and, I don't know if if I showed it to you, Brian, but on my website I have a, instead of new year's solutions, I have new year's bingo cards. So you have five by five grid of stuff I want to do in the year. And if I get at least one in a row, so diagonal or horizontal or vertical, I already have bingo and it's a success.\u003C/p>\u003Cp>So I don't have to do all of them. And if you go to mark.dev/bingo\u003C/p>\u003Cp>Speaker 3: Okay. Let's check it out, guys.\u003C/p>\u003Cp>Speaker 4: You can it's still since it's just well, now February, not a lot has happened there. But\u003C/p>\u003Cp>Speaker 5: it's a it's a really nice way to actually do some of the New Year's resolution. I always get the press at the end of the year like I have done, like, a quarter of them.\u003C/p>\u003Cp>Speaker 3: Yeah. I love it. Alright. So alright. This is neat, man.\u003C/p>\u003Cp>I I miss Yep.\u003C/p>\u003Cp>Speaker 4: And each of them can be either, like, you did it or you didn't do it or it can be progressive. Like, read six books and you are, like, one books, two books, three books in. And I think I also have, like, sub tasks. If we can make that work, like, if one one, let's say, one bingo item has a few sub items as well. Like, don't have an example now, but that would also be cool.\u003C/p>\u003Cp>Speaker 3: Gotcha. Okay. New Year's resolution. Bingo card generator. Alright.\u003C/p>\u003Cp>That's what we're doing. This is gonna be amazing. This should be fun. What color are you guys feeling? Purple, pink?\u003C/p>\u003Cp>Speaker 5: I go I go purple. Blue. Or purple?\u003C/p>\u003Cp>Speaker 3: Purple. There we go.\u003C/p>\u003Cp>Speaker 4: Direct is purple. Nice.\u003C/p>\u003Cp>Speaker 3: Direct is purple. Alright, guys. Alright. So I'm sure you've seen the show. We're gonna start the clock.\u003C/p>\u003Cp>We got ten minutes to plan and build this thing. Let's do it. Alright. So the first thing I usually do here is cover requirements. Right?\u003C/p>\u003Cp>So what are the requirements we need out of this? Right? We need to generate bingo cards. Like, what do you what were you calling those?\u003C/p>\u003Cp>Speaker 4: Like, items probably or\u003C/p>\u003Cp>Speaker 3: Okay.\u003C/p>\u003Cp>Speaker 4: Goals. Yeah. Items.\u003C/p>\u003Cp>Speaker 5: Yeah. Like a grid of of of items. Mhmm.\u003C/p>\u003Cp>Speaker 3: Yeah. Alright. So we got some goals. Those are what kinda fields are you tracking on those? Just the name of the goal?\u003C/p>\u003Cp>Speaker 4: Yeah. A name description and then the status.\u003C/p>\u003Cp>Speaker 3: Status of the goal. Progress. Progress. Is it are you status and progress interchangeable?\u003C/p>\u003Cp>Speaker 4: Yeah. I guess if you like the if the progress is under percent, the status\u003C/p>\u003Cp>Speaker 3: Ah, okay. Yeah. Yeah. Yeah. Got it.\u003C/p>\u003Cp>Okay. And then we've got if you got goals, you got what? Items underneath the goals? We want, like, subtasks, like, if it's\u003C/p>\u003Cp>Speaker 4: You you can have subtasks. Let's see if there's one that has subtasks. I don't remember.\u003C/p>\u003Cp>Speaker 3: Task. It's called test.\u003C/p>\u003Cp>Speaker 4: Alright. So that the task would play into into progress as well, I guess.\u003C/p>\u003Cp>Speaker 3: Into goal. And then the task completed increases progress. Cool. Alright. And task needs what?\u003C/p>\u003Cp>Name? Description? No. Just name? Date date probably.\u003C/p>\u003Cp>Speaker 4: Maybe the, the item can have a a completed ad. Yeah. They completed as well for the task for the, item on top. Yeah.\u003C/p>\u003Cp>Speaker 3: Alright. And then we we wanna try to get a front end set up for this as well. Yeah. Alright. And we we need a front end to display the pingo cards.\u003C/p>\u003Cp>Alright. This could be a stretch in seven minutes now. Let's see how we do. Alright. So what are we using today?\u003C/p>\u003Cp>Right? We've got a blank directus project. We've got Claude code over here. Let's dive into it. Alright?\u003C/p>\u003Cp>I'm going to I'm not sure what you guys have been coding with. I've been using Super Whisper. I dig it. Alright. How are you doing?\u003C/p>\u003Cp>Alright, guys. We are building a New Year's resolution bingo card generator. I'm gonna copy and paste the data model that we want. You have access to a direct assistance. I want you to create our schema for that.\u003C/p>\u003Cp>We're also going to be building a front end to display the bingo cards. Let me know what questions you have. Let's create a plan. Alright. So this is crunching the transcript for that right now.\u003C/p>\u003Cp>Cool. There we go. I'll just, copy and paste this. Hopefully, we'll get some something good out of it. And we're gonna ask Claude Coad to plan.\u003C/p>\u003Cp>Speaker 5: Alright.\u003C/p>\u003Cp>Speaker 3: So now we've got the schema. So we've got the direct us MCP connected to this thing. And I I think you guys have had a chance to try this out already. Right? Yeah.\u003C/p>\u003Cp>Speaker 4: I think Avro has. I haven't.\u003C/p>\u003Cp>Speaker 5: Yeah. Play with it in the morning. It's gonna create the collections, the scheme is for you.\u003C/p>\u003Cp>Speaker 3: Yeah. Alright. So it's got a fresh direction. No custom collections. Alright.\u003C/p>\u003Cp>And I can zoom in just a little bit more so we could see this. What is the plan? And this is probably one of my favorite parts about this thing where it will prompt you for questions. Direct us flow, that's what we wanna do there. Vanilla JS.\u003C/p>\u003Cp>Yeah. That's what we'll do. What do you guys think? Five by five grid? Four by four?\u003C/p>\u003Cp>Speaker 4: We we can do also four by four so we don't have to come up with 25 things.\u003C/p>\u003Cp>Speaker 3: Amazing. Right? We got five minutes left.\u003C/p>\u003Cp>Speaker 5: You you can say to the MCP, hey, cloud, get, your twenty twenty six, bingo\u003C/p>\u003Cp>Speaker 4: Oh, that was cool.\u003C/p>\u003Cp>Speaker 3: Yeah. Yeah. Alright. Public read, that's fine. Anyone can view those.\u003C/p>\u003Cp>Cool. Alright. And now, hopefully, this thing should have a plan.\u003C/p>\u003Cp>Speaker 5: I wonder which resolutions Cloud Cove could have.\u003C/p>\u003Cp>Speaker 3: I don't know. Let's see. We'll we'll spin that up in an in a new find out. Alright. Cool.\u003C/p>\u003Cp>Right? Here's the direct to schema. There's our it's gonna create a flow. It's gonna create the front end. Sounds good.\u003C/p>\u003Cp>Let's let's roll with it. Right? I don't know what we're actually doing other than just talking this through here, but, I'm curious to see just how this thing works. I've you know, of course, like, spent a ton of time testing and building the MCP, but I've not spent a ton of time using it with the the latest Opus four five model. Alright.\u003C/p>\u003Cp>So it is checked the existing schema. Now we are it should start implementing. Yes. Please just start jamming on here. And if I refresh, now we should see some collections start to come in to the direct instance.\u003C/p>\u003Cp>We should see some collections. Start to come into the direct instance. There we go. Okay. Alright.\u003C/p>\u003Cp>Oh, nice. I was just worried that I did something wrong. So we got our goals. We got our tasks. Amazing.\u003C/p>\u003Cp>Right? Now I could go in. We could potentially create some new ones if we need. One of the things that I like about this is it, like it seems like the anthropic models do a better job of, like, actually putting together a cohesive form than than, like, the OpenAI ones. So it's going through creating relations and fields.\u003C/p>\u003Cp>Alright, guys. So in this other one, create, some New Year's resolutions for yourself, Claude. Alright. You guys have any more guidance for this thing?\u003C/p>\u003Cp>Speaker 4: They should follow this the smart principle, probably.\u003C/p>\u003Cp>Speaker 3: Follow the smart principle. What's the smart principle?\u003C/p>\u003Cp>Speaker 4: Now you got me. So it's like measurable, achievable.\u003C/p>\u003Cp>Speaker 3: I know what you're talking about now. Yeah. The smart goals.\u003C/p>\u003Cp>Speaker 1: Yeah. Yeah. Yeah.\u003C/p>\u003Cp>Speaker 3: And include the add them to the goals and tasks inside.\u003C/p>\u003Cp>Speaker 4: For the for me, the most important one is always measurable. You have to be able to measure what you do. If not, you lose yourself.\u003C/p>\u003Cp>Speaker 5: You lose yourself. That's so funny.\u003C/p>\u003Cp>Speaker 3: That is very poetic. I love it, man. Alright. So it looks like okay. Yeah.\u003C/p>\u003Cp>I was just making sure we've got the relationship created correctly there. Alright. It is going to so we got two claws going. We got two minutes here. Let's see.\u003C/p>\u003Cp>I can see their goals and tasks.\u003C/p>\u003Cp>Speaker 5: Alright. This is the next development, man. Right? This is\u003C/p>\u003Cp>Speaker 3: the next development. Yeah. This thing is going to yeah. I need to enter YOLO mode so we can actually have this thing not stop to do these calls. But, behind the scenes, right, it is building this progress calculator flow.\u003C/p>\u003Cp>And and flows are Sure. A a nice piece of functionality. It can be a little time consuming to set up, like, complex flows via the UI. So having direct us put these together, is, yeah, definitely time saving. Right?\u003C/p>\u003Cp>That's probably, like, five, ten steps there. Yes. Create those items. Alright. Let's see what we've got.\u003C/p>\u003Cp>Are we gonna get to the front end for this thing? I don't know if we are, man.\u003C/p>\u003Cp>Speaker 4: I should've had Bryant.\u003C/p>\u003Cp>Speaker 3: Should've had, Claude do that first. It's connecting the operations. Claude, you need to go faster, my friend. Alright. So what are the what are the goals that Claude set for itself?\u003C/p>\u003Cp>This should be interesting.\u003C/p>\u003Cp>Speaker 5: Put that description statement.\u003C/p>\u003Cp>Speaker 4: I'll reduce\u003C/p>\u003Cp>Speaker 3: average response latency by 20%. Achieve 95% task completion rate without clarification. What an interesting goal. Here's the the individual tasks. And, oh,\u003C/p>\u003Cp>Speaker 5: and that was done there.\u003C/p>\u003Cp>Speaker 3: The HTML.\u003C/p>\u003Cp>Speaker 5: The front end.\u003C/p>\u003Cp>Speaker 3: Now it's doing it. No. Let me open this test project up. Is it going to have enough time? Yes.\u003C/p>\u003Cp>Proceed. New Year's resolution. Bingo. Oh, no. We ran out of time.\u003C/p>\u003Cp>It's so close. MCP connection should have access. No need to set up. I think, you know, this was so close, guys. I'm just going to it's against the rules, but you know what?\u003C/p>\u003Cp>We can make up our own rules here. I am just going to give access here to see and see if this will actually finish. Of course. There it is, man. The API permissions got us.\u003C/p>\u003Cp>We could see the bingo card here. There's the individual task. Ten minutes, full working back end with permissions, so close to a working front end.\u003C/p>\u003Cp>Speaker 4: It did pretty cool.\u003C/p>\u003Cp>Speaker 3: This is this is very cool. Right?\u003C/p>\u003Cp>Speaker 5: Even even with the subtask because that that wasn't an extra thing. Like, now it's the only iteration. Like, put the progress in the front end and\u003C/p>\u003Cp>Speaker 3: Yeah. I'm very curious to see. Right? It's already got it looks like it maybe did it miss some of the flows? Right?\u003C/p>\u003Cp>So the thing to take away here is obviously, like, you could build incredibly quickly with Directus and MCP, and this is not loading, probably because of my computer. Just hates running all these Docker containers locally. What is going on?\u003C/p>\u003Cp>Speaker 5: How many do you have?\u003C/p>\u003Cp>Speaker 3: There's probably, like, five or 10 running at the moment, like, different instances. And I'm sure if I, like, killed the camera, it would probably stop doing this. I don't I don't know what's going on here. Local host 8055. I at least want to end this episode on a high note and show something.\u003C/p>\u003Cp>Come on. Alright. So we could see the flows. Did they yeah. It actually connected the flow.\u003C/p>\u003Cp>So I'm just curious. Right. Just wanting to see. Right? Build a mastering five new programming frameworks.\u003C/p>\u003Cp>Let's say we completed this right now. Does this flow actually work? And So it it\u003C/p>\u003Cp>Speaker 5: it could increase the progress of the task of the goal.\u003C/p>\u003Cp>Speaker 3: It should. It should. And, of course, doing a hard refresh here is not not a great idea.\u003C/p>\u003Cp>Speaker 2: Alright. Well, gents,\u003C/p>\u003Cp>Speaker 3: you know, I'm not sure whether to put a, like, a thumbs up stamp on this one. Thumbs down stamp. So we just do I think yeah. This was, we we got most of the functionality\u003C/p>\u003Cp>Speaker 5: here. We\u003C/p>\u003Cp>Speaker 3: just didn't get, the front end all the way there.\u003C/p>\u003Cp>Speaker 4: Oh, Brian, you are lagging quite\u003C/p>\u003Cp>Speaker 3: Of course, I did.\u003C/p>\u003Cp>Speaker 5: Yeah.\u003C/p>\u003Cp>Speaker 3: Because it does I think you\u003C/p>\u003Cp>Speaker 4: you get a a thumbs up, Brian, because it we got a working thing at the end, and you had the the grid showing everything with the progress. So I think you get a thumbs up.\u003C/p>\u003Cp>Speaker 3: Yeah. Alright, guys. My computer is struggling. So we are going to sign off for this episode. Mark Alvaro, I've heard a little rumor that there might be a podcast coming up, so I'm super excited for that.\u003C/p>\u003Cp>Thanks for joining me for this episode of one app in ten minutes.\u003C/p>\u003Cp>Speaker 0: We want to take a moment towards the end of the change log for thanking our amazing community contributors who give their time to improve the director's project. In January, we had 14 contributors, and so we'd like to say a huge thank you to Oscar for removing the deprecated webhooks functionality across the stack, Abdullah for removing the comment tab from the activities page, Thomas for adding concurrency control for file uploads via a new files max upload concurrency environment variable, 'kiki' for fixing an issue that would cause some draw header icons from being displayed too large, 'pancaj' for fixing incorrect initial slider fill position when the midpoint is not a valid stepped value, and for fixing markdown editor layout when a minimum input height is applied. VDR for fixing sticky column background in many to many list interface. Fan for improving system permissions collection picker to support easier multi selection. Ty for replacing the local use local storage composable with the view use equivalent, Daniel for disabling text highlighting for druggable view elements in Chrome and Firefox, Clint for fixing permission cache to respect cache system TTL, Bruno for fixing conversion of fields from object notation to dot syntax in SDK subscription queries, Arthur for fixing an issue where the Supabase storage driver would fail if the root folder is the empty string, and Joseph for adding support for specifying a KMS key ID in s three storage when using AWS KMS server side encryption.\u003C/p>\u003Cp>Thank you again to these individuals. You can see their specific pull inside of the full release notes on GitHub. Lastly, we also want to take the time to thank our GitHub Sponsors of January who financially contribute to Directus' development. Thank you to Wayfan, Mike, Fergus, Omar, Marcus, Mission Control, Utomic, Steven, James, Manuel, Andreas, John, Burb, Adam, Jason, Yuya, Valentino, Jens and Wayne. The money we are given from our GitHub sponsors goes straight back to community members who build tooling and extensions for the director's ecosystem.\u003C/p>\u003Cp>Thank you again for being part of that. Alright, that is it for this month's changelog, if you are still here still watching thank you very much for spending the time with us. If you have any questions head on over to the directors forum, have a great rest of your day and see you soon.\u003C/p>","Hello everyone, welcome to the changelog from Directus for February. I'm Beth and we have a really great show for you coming up. We've got a product update from James, an AI update from Brian, I'm around with a brand new community program to get involved with and we have a fresh one app ten minute episode with some brand new directors faces, so do stick around if you can. Whether you are joining us for the first time or you are a regular, hi hello, thank you for spending some time with us, and without further ado, let's kick it off with James and a product update for you. Hey. This is James from Directus, and I'm gonna take you through some of the highlights in the 11 dot 15 release. Now first up, our AI assistant is now in GA, and it is coming with some very tasty updates. We've added multi provider support with Google and OpenAI compatible providers. So now you can use our AI assistant with Olauma Mistral AI, extending on prior support for exclusively anthropic and OpenAI. We've also made the AI assistant native across all of the interfaces in the director studio, meaning you can even use the AI assistant in the visual editor now. Now with new power comes new responsibility. And to use this feature, you will need to update the Director's visual editing library to v 1.2.0 plus on your website. We've also added a new deployments module inside Director's. This allows you to connect your Director's instance with Vercel to centrally manage deployments, monitor build status and control your front end projects all without leaving Directus. We've added support for Vercel first, but Netlify and others are sure to come soon. Let's have a look at how it works. You'll find the Deployments module inside the settings and you'll need to enable this first. Once you've enabled that you're going to get the Deployments module in the sidebar of Directus. Let's take a look. Let's have a go at configuring Vercel. What you'll need is your personal access token from Vercel, and here's one I have from earlier. Once you add that, you'll see the projects listed from your Vercel account. You can choose to bring one or more of these into directors. So let's bring in a couple. Now you see the projects listed in the project listing. And if we click into one of these, we're able to hit deploy and start building our site from inside directors. So let's assume that we've made some content changes. Patch we've updated, you know, the price of an item on our website. And as a result, we need our site on Vercel to be rebuilt. So I'd come into the deployments module after making that content change and I'd hit deploy. Now the other great thing here is we can monitor the deployment status as that is building. So in case that fails, I'm gonna be able to see the reasons for the site failing. And when it's successful, I'm actually gonna have the link up at the top right to be able to visit the end result. So we'll just give that a second while it's building. Awesome. Now I can see the status is ready. And if I hit refresh, I'm gonna see this link up here which allows me to visit the end result. Now if I come back into here, I can see I can go back and I can see the deployment listing. Now one thing to call out is you're only gonna see deployments triggered from Directus inside the listing today. So all of your deployments made from Vercel will not appear here at the moment. One last call out is at the moment, the deployments module is only accessible for admins. However, we do plan to add, RBAC support so you can open this up to more users in the next release. We've also brought collaborative editing into core. Now this was previously built as an extension, but we wanted to bring it into core to make some performance improvements, reduce the amount of setup, and make sure that this is a native capability. Now under the hood, this runs on WebSocket connections for real time sync, so you do need to have this enabled on your project. It also plugs into the existing Director's permissions so users can only collaborate on records they have access to. Let's have a look at how to enable this in 11.15. You'll find this new setting in the project settings in your Directus instance. And once enabled, this will enable the real time sync. So let's take a look at a record in our content space. We've got a collection of products, and let's assume that two people are working on the denim jacket. And I will just there we go. We can see that both myself, James, and Michael Matthews are now working inside, the Product Datastem. Now let's assume that somebody is working inside a specific field. You'll see that that field lock comes into play, and that stops people overwriting each other's changes. So that's collaborative editing, and that's now available in the core. Now we've also made some improvements to how you can review view revisions inside the studio. So let's assume that we're updating the price of our denim jacket. And let's come back in to look at the revisions. Now previously when you viewed a revision, we were always comparing the revision you open to the latest revision of that item. But we've made some changes to make this a little bit more intuitive. So if I update my latest revision, you'll see I have that revision on the right hand side and I'm always comparing it to the previous revision now so that we can see the granular change from a 100 dot 99 to 50.99 in this case. Now we've also maintained some flexibility for you to compare a previous revision. Let's choose a much older one and see how that currently compares to the latest revision. Now this is advantageous in the case for restoration, in case you wanted to restore an older version but you want to understand exactly what it's going to update on the latest version of that item. So you just toggle this pill and you can switch between what you're comparing inside the revisions comparison model. So we've been through all of the main items inside the 11 dot 15 release. But as usual, you can go to the release notes on GitHub if you want to view every granular change, that got made inside 11 dot 15. Hey, guys. Brian here. And I'm gonna showcase some of the exciting new features we shipped to the AI assistant in v 11 dot 15. Alright. First and foremost, it's an absolute banger. Not only can you now use the visual editor right alongside the form inside the live preview pane, but I can use the AI assistant right alongside the visual editor. I just click the magic AI button here. And now the AI assistant has this visual editor element into our context. And we'll just ask it to, let's punch up the copy a bit for this headline. Cool. So it understands where that is at on the page, what's going on. And now we can see once we approve that tool call, that gets updated in line. All right, that's just the start, right? That is a heavy hitter in this case. You can also add context to the AI assistant now. So, I can update pages that I'm not currently on. Let's say I've got this test page. Please update the slug and title for the test page to slash about. Right? And because we are injecting that into the context, it knows what page to update. And if we just go back to our pages list, we could see now that is updated. Last but not least, you can also reuse the AI prompts, those templated prompts from the MCP. So if you go to your AI settings, make sure that the MCP is enabled and that you've got the AI prompts collection. And then you can reuse these prompts over and over again. So if there are dynamic variables, Directus will ask you to fill those out. Or you know, if you don't have any variables, you could just do this and say, hey, tell me a nice dad joke. Alright. We'll see what it comes up with. Guy walks into a library, books about paranoia. She whispered, they're right behind you. Perfect. Alright. Now, onto some of the other items that you guys asked for, and I wanted to make sure that we delivered here. So now you can also control which models for the three major providers, OpenAI, Anthropic, and Google, so you can lock those down. The other big rock out of this release is going to be the OpenAI compatible provider. So as long as you have an endpoint that is OpenAI compatible, you can now go in here and set your base URL, add your API keys, you could set up your different models. Make sure you include the context limit, the output limit. You can also pass custom provider options if needed. And then you can use Ollama or, any other self hosted models, any other, OpenAI compatible models. Let's say, hey from Ollama. And this might be just a little bit slow because my MacBook is absolutely screaming at me right now. We'll fast forward. Alright. So now you can see that we've got the text back. Your mileage is gonna vary with the self hosted models, but, you know, if you've got Azure OpenAI or some other open open AI compatible endpoint that you're using, this is a great solution for you. And as always, keep the feedback coming. We love to iterate on these features, and we want to deliver real value instead of just the usual AI hype. That's it for me. Back to you, Beth. I'm here to talk through a brand new community program we're launching 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 directors 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 experienced 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 person who likes helping others figure things out, sharing what you've been learning, or creating something cool, we want to hear from you. Applications to join the first cohort are now open. If you've got any questions or you have an idea that you think might work as part of this programme, we're all ears, we want to hear it. There's a couple of ways you can get in touch with us: submit via the application form, send an email to devreldirectus. Io, or post on the community forum. All of those work and we can get talking from there. We're really excited about launching this program, we hope you will also share the excitement and want to join and we're really looking to shape the future of the program collaboratively with the builders into something that works for everyone. So if you do have ideas, thoughts, questions, please do let us know. Alright, viewers. Welcome to, yet another episode of 100 app, 100 oh, no. No. No. No. One app in ten minutes. Right? We are doing the remix version today where we have ten minutes to build and plan plan and build an amazing app clone, crazy suggestion, and I have no idea what we're gonna do. So the rules. Right? Ten minutes to plan and build. No more, no less. How we're gonna do that? We are going to use some, amazing tools that we have built into Directus. And then, rule number two, the anti rule. Use whatever you've got at your disposal. Today, I've got two awesome dudes at my disposal, mister Alvaro and Mark from our team here at Directus. No strangers to the Vue community. Welcome to the show, gents. Thanks for having us, Bryant. Thank you very much for the nice intro. Happy, to be here. Yeah. Yeah. No. I'm super excited. Have you guys given any thought to what we're what we're gonna build? I think, Mark, you have some idea though. Yeah. So yesterday, we talked a little bit. I talked with Ava what we could build and, I don't know if if I showed it to you, Brian, but on my website I have a, instead of new year's solutions, I have new year's bingo cards. So you have five by five grid of stuff I want to do in the year. And if I get at least one in a row, so diagonal or horizontal or vertical, I already have bingo and it's a success. So I don't have to do all of them. And if you go to mark.dev/bingo Okay. Let's check it out, guys. You can it's still since it's just well, now February, not a lot has happened there. But it's a it's a really nice way to actually do some of the New Year's resolution. I always get the press at the end of the year like I have done, like, a quarter of them. Yeah. I love it. Alright. So alright. This is neat, man. I I miss Yep. And each of them can be either, like, you did it or you didn't do it or it can be progressive. Like, read six books and you are, like, one books, two books, three books in. And I think I also have, like, sub tasks. If we can make that work, like, if one one, let's say, one bingo item has a few sub items as well. Like, don't have an example now, but that would also be cool. Gotcha. Okay. New Year's resolution. Bingo card generator. Alright. That's what we're doing. This is gonna be amazing. This should be fun. What color are you guys feeling? Purple, pink? I go I go purple. Blue. Or purple? Purple. There we go. Direct is purple. Nice. Direct is purple. Alright, guys. Alright. So I'm sure you've seen the show. We're gonna start the clock. We got ten minutes to plan and build this thing. Let's do it. Alright. So the first thing I usually do here is cover requirements. Right? So what are the requirements we need out of this? Right? We need to generate bingo cards. Like, what do you what were you calling those? Like, items probably or Okay. Goals. Yeah. Items. Yeah. Like a grid of of of items. Mhmm. Yeah. Alright. So we got some goals. Those are what kinda fields are you tracking on those? Just the name of the goal? Yeah. A name description and then the status. Status of the goal. Progress. Progress. Is it are you status and progress interchangeable? Yeah. I guess if you like the if the progress is under percent, the status Ah, okay. Yeah. Yeah. Yeah. Got it. Okay. And then we've got if you got goals, you got what? Items underneath the goals? We want, like, subtasks, like, if it's You you can have subtasks. Let's see if there's one that has subtasks. I don't remember. Task. It's called test. Alright. So that the task would play into into progress as well, I guess. Into goal. And then the task completed increases progress. Cool. Alright. And task needs what? Name? Description? No. Just name? Date date probably. Maybe the, the item can have a a completed ad. Yeah. They completed as well for the task for the, item on top. Yeah. Alright. And then we we wanna try to get a front end set up for this as well. Yeah. Alright. And we we need a front end to display the pingo cards. Alright. This could be a stretch in seven minutes now. Let's see how we do. Alright. So what are we using today? Right? We've got a blank directus project. We've got Claude code over here. Let's dive into it. Alright? I'm going to I'm not sure what you guys have been coding with. I've been using Super Whisper. I dig it. Alright. How are you doing? Alright, guys. We are building a New Year's resolution bingo card generator. I'm gonna copy and paste the data model that we want. You have access to a direct assistance. I want you to create our schema for that. We're also going to be building a front end to display the bingo cards. Let me know what questions you have. Let's create a plan. Alright. So this is crunching the transcript for that right now. Cool. There we go. I'll just, copy and paste this. Hopefully, we'll get some something good out of it. And we're gonna ask Claude Coad to plan. Alright. So now we've got the schema. So we've got the direct us MCP connected to this thing. And I I think you guys have had a chance to try this out already. Right? Yeah. I think Avro has. I haven't. Yeah. Play with it in the morning. It's gonna create the collections, the scheme is for you. Yeah. Alright. So it's got a fresh direction. No custom collections. Alright. And I can zoom in just a little bit more so we could see this. What is the plan? And this is probably one of my favorite parts about this thing where it will prompt you for questions. Direct us flow, that's what we wanna do there. Vanilla JS. Yeah. That's what we'll do. What do you guys think? Five by five grid? Four by four? We we can do also four by four so we don't have to come up with 25 things. Amazing. Right? We got five minutes left. You you can say to the MCP, hey, cloud, get, your twenty twenty six, bingo Oh, that was cool. Yeah. Yeah. Alright. Public read, that's fine. Anyone can view those. Cool. Alright. And now, hopefully, this thing should have a plan. I wonder which resolutions Cloud Cove could have. I don't know. Let's see. We'll we'll spin that up in an in a new find out. Alright. Cool. Right? Here's the direct to schema. There's our it's gonna create a flow. It's gonna create the front end. Sounds good. Let's let's roll with it. Right? I don't know what we're actually doing other than just talking this through here, but, I'm curious to see just how this thing works. I've you know, of course, like, spent a ton of time testing and building the MCP, but I've not spent a ton of time using it with the the latest Opus four five model. Alright. So it is checked the existing schema. Now we are it should start implementing. Yes. Please just start jamming on here. And if I refresh, now we should see some collections start to come in to the direct instance. We should see some collections. Start to come into the direct instance. There we go. Okay. Alright. Oh, nice. I was just worried that I did something wrong. So we got our goals. We got our tasks. Amazing. Right? Now I could go in. We could potentially create some new ones if we need. One of the things that I like about this is it, like it seems like the anthropic models do a better job of, like, actually putting together a cohesive form than than, like, the OpenAI ones. So it's going through creating relations and fields. Alright, guys. So in this other one, create, some New Year's resolutions for yourself, Claude. Alright. You guys have any more guidance for this thing? They should follow this the smart principle, probably. Follow the smart principle. What's the smart principle? Now you got me. So it's like measurable, achievable. I know what you're talking about now. Yeah. The smart goals. Yeah. Yeah. Yeah. And include the add them to the goals and tasks inside. For the for me, the most important one is always measurable. You have to be able to measure what you do. If not, you lose yourself. You lose yourself. That's so funny. That is very poetic. I love it, man. Alright. So it looks like okay. Yeah. I was just making sure we've got the relationship created correctly there. Alright. It is going to so we got two claws going. We got two minutes here. Let's see. I can see their goals and tasks. Alright. This is the next development, man. Right? This is the next development. Yeah. This thing is going to yeah. I need to enter YOLO mode so we can actually have this thing not stop to do these calls. But, behind the scenes, right, it is building this progress calculator flow. And and flows are Sure. A a nice piece of functionality. It can be a little time consuming to set up, like, complex flows via the UI. So having direct us put these together, is, yeah, definitely time saving. Right? That's probably, like, five, ten steps there. Yes. Create those items. Alright. Let's see what we've got. Are we gonna get to the front end for this thing? I don't know if we are, man. I should've had Bryant. Should've had, Claude do that first. It's connecting the operations. Claude, you need to go faster, my friend. Alright. So what are the what are the goals that Claude set for itself? This should be interesting. Put that description statement. I'll reduce average response latency by 20%. Achieve 95% task completion rate without clarification. What an interesting goal. Here's the the individual tasks. And, oh, and that was done there. The HTML. The front end. Now it's doing it. No. Let me open this test project up. Is it going to have enough time? Yes. Proceed. New Year's resolution. Bingo. Oh, no. We ran out of time. It's so close. MCP connection should have access. No need to set up. I think, you know, this was so close, guys. I'm just going to it's against the rules, but you know what? We can make up our own rules here. I am just going to give access here to see and see if this will actually finish. Of course. There it is, man. The API permissions got us. We could see the bingo card here. There's the individual task. Ten minutes, full working back end with permissions, so close to a working front end. It did pretty cool. This is this is very cool. Right? Even even with the subtask because that that wasn't an extra thing. Like, now it's the only iteration. Like, put the progress in the front end and Yeah. I'm very curious to see. Right? It's already got it looks like it maybe did it miss some of the flows? Right? So the thing to take away here is obviously, like, you could build incredibly quickly with Directus and MCP, and this is not loading, probably because of my computer. Just hates running all these Docker containers locally. What is going on? How many do you have? There's probably, like, five or 10 running at the moment, like, different instances. And I'm sure if I, like, killed the camera, it would probably stop doing this. I don't I don't know what's going on here. Local host 8055. I at least want to end this episode on a high note and show something. Come on. Alright. So we could see the flows. Did they yeah. It actually connected the flow. So I'm just curious. Right. Just wanting to see. Right? Build a mastering five new programming frameworks. Let's say we completed this right now. Does this flow actually work? And So it it it could increase the progress of the task of the goal. It should. It should. And, of course, doing a hard refresh here is not not a great idea. Alright. Well, gents, you know, I'm not sure whether to put a, like, a thumbs up stamp on this one. Thumbs down stamp. So we just do I think yeah. This was, we we got most of the functionality here. We just didn't get, the front end all the way there. Oh, Brian, you are lagging quite Of course, I did. Yeah. Because it does I think you you get a a thumbs up, Brian, because it we got a working thing at the end, and you had the the grid showing everything with the progress. So I think you get a thumbs up. Yeah. Alright, guys. My computer is struggling. So we are going to sign off for this episode. Mark Alvaro, I've heard a little rumor that there might be a podcast coming up, so I'm super excited for that. Thanks for joining me for this episode of one app in ten minutes. We want to take a moment towards the end of the change log for thanking our amazing community contributors who give their time to improve the director's project. In January, we had 14 contributors, and so we'd like to say a huge thank you to Oscar for removing the deprecated webhooks functionality across the stack, Abdullah for removing the comment tab from the activities page, Thomas for adding concurrency control for file uploads via a new files max upload concurrency environment variable, 'kiki' for fixing an issue that would cause some draw header icons from being displayed too large, 'pancaj' for fixing incorrect initial slider fill position when the midpoint is not a valid stepped value, and for fixing markdown editor layout when a minimum input height is applied. VDR for fixing sticky column background in many to many list interface. Fan for improving system permissions collection picker to support easier multi selection. Ty for replacing the local use local storage composable with the view use equivalent, Daniel for disabling text highlighting for druggable view elements in Chrome and Firefox, Clint for fixing permission cache to respect cache system TTL, Bruno for fixing conversion of fields from object notation to dot syntax in SDK subscription queries, Arthur for fixing an issue where the Supabase storage driver would fail if the root folder is the empty string, and Joseph for adding support for specifying a KMS key ID in s three storage when using AWS KMS server side encryption. Thank you again to these individuals. You can see their specific pull inside of the full release notes on GitHub. Lastly, we also want to take the time to thank our GitHub Sponsors of January who financially contribute to Directus' development. Thank you to Wayfan, Mike, Fergus, Omar, Marcus, Mission Control, Utomic, Steven, James, Manuel, Andreas, John, Burb, Adam, Jason, Yuya, Valentino, Jens and Wayne. The money we are given from our GitHub sponsors goes straight back to community members who build tooling and extensions for the director's ecosystem. Thank you again for being part of that. Alright, that is it for this month's changelog, if you are still here still watching thank you very much for spending the time with us. If you have any questions head on over to the directors forum, have a great rest of your day and see you soon.","73bc207d-4411-4b34-8a99-3ace5581711e",[201,202],"ca7b298d-cfce-4a0a-a467-352f31bd3140","12d14e99-9340-4084-9bce-25e042471e7d",[],{"reps":205},[206,262],{"name":207,"sdr":8,"link":208,"countries":209,"states":211},"John Daniels","https://meet.directus.io/meetings/john2144/john-contact-form-meeting",[210],"United States",[212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261],"Michigan","Indiana","Ohio","West Virginia","Kentucky","Virginia","Tennessee","North Carolina","South Carolina","Georgia","Florida","Alabama","Mississippi","New York","MI","IN","OH","WV","KY","VA","TN","NC","SC","GA","FL","AL","MS","NY","Connecticut","CT","Delaware","DE","Maine","ME","Maryland","MD","Massachusetts","MA","New Hampshire","NH","New Jersey","NJ","Pennsylvania","PA","Rhode Island","RI","Vermont","VT","Washington DC","DC",{"name":263,"link":264,"countries":265},"Michelle Riber","https://meetings.hubspot.com/mriber",[266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,243,454,455],"Albania","ALB","Algeria","DZA","Andorra","AND","Angola","AGO","Austria","AUT","Belgium","BEL","Benin","BEN","Bosnia and Herzegovina","BIH","Botswana","BWA","Bulgaria","BGR","Burkina Faso","BFA","Burundi","BDI","Cameroon","CMR","Cape Verde","CPV","Central African Republic","CAF","Chad","TCD","Comoros","COM","Côte d'Ivoire","CIV","Croatia","HRV","Czech Republic","CZE","Democratic Republic of Congo","COD","Denmark","DNK","Djibouti","DJI","Egypt","EGY","Equatorial Guinea","GNQ","Eritrea","ERI","Estonia","EST","Eswatini","SWZ","Ethiopia","ETH","Finland","FIN","France","FRA","Gabon","GAB","Gambia","GMB","Ghana","GHA","Greece","GRC","Guinea","GIN","Guinea-Bissau","GNB","Hungary","HUN","Iceland","ISL","Ireland","IRL","Italy","ITA","Kenya","KEN","Latvia","LVA","Lesotho","LSO","Liberia","LBR","Libya","LBY","Liechtenstein","LIE","Lithuania","LTU","Luxembourg","LUX","Madagascar","MDG","Malawi","MWI","Mali","MLI","Malta","MLT","Mauritania","MRT","Mauritius","MUS","Moldova","MDA","Monaco","MCO","Montenegro","MNE","Morocco","MAR","Mozambique","MOZ","Namibia","NAM","Niger","NER","Nigeria","NGA","North Macedonia","MKD","Norway","NOR","Poland","POL","Portugal","PRT","Republic of Congo","COG","Romania","ROU","Rwanda","RWA","San Marino","SMR","São Tomé and Príncipe","STP","Senegal","SEN","Serbia","SRB","Seychelles","SYC","Sierra Leone","SLE","Slovakia","SVK","Slovenia","SVN","Somalia","SOM","South Africa","ZAF","South Sudan","SSD","Spain","ESP","Sudan","SDN","Sweden","SWE","Tanzania","TZA","Togo","TGO","Tunisia","TUN","Uganda","UGA","United Kingdom","GBR","Vatican City","VAT","Zambia","ZMB","Zimbabwe","ZWE","UK","Germany","Netherlands","Switzerland","CH","NL",1773850449358]