[{"data":1,"prerenderedAt":460},["ShallowReactive",2],{"footer-primary":3,"footer-secondary":93,"footer-description":119,"the-changelog-may-2025":121,"the-changelog-may-2025-next":190,"sales-reps":208},{"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":173,"season":174,"seo":189},"24ba631d-1e9f-4c47-b4eb-3f72e60dd0cd","may-2025","1082491904","Join us for The Changelog, taking you through the month’s Directus updates including product updates, new content and community contribution highlights.","69658fd3-a1f8-4fc9-b9c8-37f004731e7d",39,10,"2025-05-14","May 2025","\u003Cp>Speaker 0: Alright. Hello, everyone. I hope you're all having a wonderful day. Welcome to the May changelog. And if you are joining us live or you're watching later on, hi.\u003C/p>\u003Cp>Hello. Thank you for joining us. I'm Beth, and I'm gonna be taking you through today's show. We have a lot of Brian today. It's very exciting.\u003C/p>\u003Cp>I, however, am gonna be kicking you off by taking you to Carmen with the product\u003C/p>\u003Cp>Speaker 1: updates. Thanks, Beth. And hey, everybody. Carmen here to tell you about what we've shipped in the last month or so with Directus eleven point seven point o through to eleven point seven point two. Now we've launched a couple of exciting new features, some bug fixes, and just one potential breaking change that you should know about.\u003C/p>\u003Cp>Now let's start with some potential breaking changes. As of Directus 11.7 o, we will no longer be supporting MySQL 5.7 in the API, so keep an eye out for that. One of the biggest improvements we've made is in the UX and UI of the visual editor module, so go check it out. Lastly, we've published the Directus schema builder package for mocking database schemas. So that's an overview of what we've been working on over the last month.\u003C/p>\u003Cp>Be sure to check out further details of the visual editor module improvements later on.\u003C/p>\u003Cp>Speaker 2: Hey. What's up? Brian here. I'm gonna tell you about some updates to, one of our more popular extensions that we've released to the Directus Labs program, the superheader. So the superheader is, basically a powerful header component that gives you a couple different pieces inside one box.\u003C/p>\u003Cp>So you get a a a title that uses dynamic values. You get a subtitle, so you can add things like published and, you know, additional metadata. You get contextual help, and you get an action bar where you can add links or you can run flows right from the form instead of opening in the right sidebar. So this has been pretty popular since we launched it, but we also got a slew of feedback from you guys. So keep the feedback coming.\u003C/p>\u003Cp>Love it. We have fixed, quite a few of the bugs that are were happening on opening different modal windows within modals. So that is resolved. And let's take a look at the new functionality. So one of the pieces that is brand new is the ability to open the help content in a modal instead of inline, as a like an accordion type experience.\u003C/p>\u003Cp>For me, I think this is a better experience, but we still support the inline help if you prefer that as well. Next, we have fixed some of the issues with, like, loading internal links. So you can see here, I can open this up in\u003C/p>\u003Cp>Speaker 3: the visual\u003C/p>\u003Cp>Speaker 2: editor. That does not have to spin up the app or open in a new window, so we've solved that. And then when opening flows or running flows, now we have the capability to, properly manage the overlay so that if you open something else inside your flow, which you can do let's take a look at this, where we wanna pick up the direct Us users. This is no longer showing behind that. So, just quality of life improvements.\u003C/p>\u003Cp>Now, onto the two biggest improvements. Right? The ability to translate the help content, which was a huge one for, anybody outside The US. And, initially, I wasn't super sure there was an easy way to get the this done, but we managed to do that. So here is how you enable translation support within the superheader.\u003C/p>\u003Cp>So we're here inside the data model. We go into our interface, and we scroll down, and now we have this enable help translations. So the help translations here, this uses the custom translation strings, and you'll have to set these up just like you would anywhere else, that you're leveraging those for fields. And what this will do, whatever you set for these translation strings will override whatever the the help content is here. So let's just take a look at what that experience looks like.\u003C/p>\u003Cp>I'm gonna go in. And if I look at my custom translations, you could see I've got two different values for this key. I've got one in English, and this is just HTML content. That still works just fine. And then I have the same thing in French.\u003C/p>\u003Cp>So now go to the home page. We could see, okay, this is English. If I go to my specific user, we just change the default language to French, and we go back. You know? So we see some of this content.\u003C/p>\u003Cp>Obviously, it doesn't have translation strings set up for it. It. But if we load our help, now we've got that help content localized for our user. So that just works out of the box with the standard setup. Now I'll go back in, just quickly set this back.\u003C/p>\u003Cp>And then the last piece of the puzzle is relational item support. So when we first launched this, we could not, fetch relationships. Now you can. So if you have, like, a site set up where I've got a site that this belongs to. We wanna show the name of the site or even inside, like, our actions where we want to leverage a, a domain from another collection or a field from a many to one relationship, we can do that now, which is great.\u003C/p>\u003Cp>I know some of you have multi tenant setups, and this enables that workflow. So now I can go in. I could see the site name. This is linked to Bryant's site if we open that up or Bryant's front end. And then if I hit view on website, that will load that link for me.\u003C/p>\u003Cp>So that is the update for the superheader. Hope you guys enjoy this. Super powerful. Got an update for you on our SEO plugin. So this was a a plug in that we launched not too long ago.\u003C/p>\u003Cp>We've added, a lot of nice updates to it. So, if you've already used it before, this should look familiar to you. The plug in is all about managing your SEO metadata in a simple, easy to use interface. So, out of the box, you kinda get page titles and meta descriptions, which is basically the the bare minimum that you want on the SEO side. We show you a a quick little search preview of what that would look like.\u003C/p>\u003Cp>You could populate this with a template from the page title, and we give you just some contextual help of, you know, how many characters you should have for the page title or the meta description. And if I go over those, you could see that that's gonna be truncated in our search preview. We've also added a preview for your social media links or OG images. So here, I can, upload my social images or my OG image and actually get a quick preview of what it's gonna look like if it's shared on different platforms, and what that link will actually look like. Just, again, helpful little context.\u003C/p>\u003Cp>But now we have added even more powerful features to this, based on feedback that we received. So, we can enable an advanced controls like search engine for, like, no index, no follow so that it doesn't follow links or this particular page doesn't get indexed. You can add site map controls if you want to change the frequency, which the crawlers look at your site, or the SEO fields. Those were, like, custom SEO fields where I can define, like, canonical URLs or basically any other metadata that I want to pass to my front end. But the new thing here is our focus key phrase.\u003C/p>\u003Cp>So we can actually analyze your content. So I'm gonna go into our pages collection, and let's set up the SEO plug in for our blog posts. So So I'm just gonna add this focus key phrase, and when I enable that, it asks me for a slug field and content fields. So where are we actually keeping the content that we're gonna render on the page? Now if you've ever u if you're coming from WordPress, this is very similar to something like Yoast or or some of those other SEO tools where the it's just static analysis of our content.\u003C/p>\u003Cp>So if I pull this up, we go over to our SEO tab, and here we've got the option to add our main key phrase. So if I add CMS as our main key phrase, you could see this analysis will happen almost immediately. It says, hey. Your focus key phrase does not appear in the content. So this keyword isn't showing up in my content.\u003C/p>\u003Cp>You know, maybe bunny would be a better one for this. Cool. And then it shows us, hey. Your subheadings, like your h ones, h twos, h threes, those do not contain that focus key phrase. So it gives us improvements, good results.\u003C/p>\u003Cp>Just a quick, nice little check on your content before you publish to know that you're covering your SEO basics. So that is the update for the SEO plugin. I I hope you'll find this helpful. Keep the feedback coming, please. We love it.\u003C/p>\u003Cp>Speaker 1: So what's new in content this month? We've been hard at work and published eight new articles all about CMSs or content management systems. Be sure to check them out. We've got articles on how to create a CMS and how to generate dynamic pages for CMSs in Astro, Nuxt, Next. Js, and SvelteKit.\u003C/p>\u003Cp>Don't miss them.\u003C/p>\u003Cp>Speaker 0: Alright. And as a reminder, you can find the extensions in github.com/directors-labs/extensions and also the tutorials on directors.i0/docs/tutorials. Next up, we have more of Brian. I told you we were super lucky today. He is gonna be talking us through the visual editor updates.\u003C/p>\u003Cp>Speaker 2: Super excited for this one. This is a huge feature release for us. Visual editing. It's here. It's real.\u003C/p>\u003Cp>It's freaking awesome. And, yeah, I don't get excite well, I get very excited about a lot of things, but I'm super excited about this one, and you should be too. This is gonna change the game. Right? The problem with most headless CMS experiences, great for us as developers, we love the structured data.\u003C/p>\u003Cp>Structured data is great for LLMs and AI. But, when you go headless, you kinda miss that that standard see what I'm editing experience. Right? You're relying on the front end to interpret a lot of that. So in the past, we've had live preview.\u003C/p>\u003Cp>That works great. But what if we take this a step further and I just allow my content editors not to have to do this in a form, but as they're browsing the page and they could see the edits they're making right in line. That is visual editing. It's here. Let's take a look at it.\u003C/p>\u003Cp>So I'm just gonna open this page up. This is our super header extension, but I'm just gonna open this page in our visual editor. So here I could see, we've got our content, and you'll notice as I start mousing over things, because I've enabled visual editor and it's, visual editor is two pieces. Right? There's a module inside Directus, and then there's a front end library that you install on your website.\u003C/p>\u003Cp>Works with any of your favorite frameworks. So Nuxt, Next, Astro, Svelte. We've actually got starter kits for you. % ready to go with this integrated, so you don't really have to do a lot of work to get started with this, but super powerful. Right up here at the top, we'll see our different URLs that are available to navigate to.\u003C/p>\u003Cp>I can also do this where I just toggle the navigation and hide that. And basically from here, it is like a full on browsing experience. I can jump between different pages and I can hover over an element, go in and edit that. Edit this form. Great.\u003C/p>\u003Cp>All the keyboard shortcuts that you would expect are here. So I can hit command save to save that if I'm opening this up. I can hit escape to close. So it's a very nice experience. Up at the top, I can also toggle all the editable elements.\u003C/p>\u003Cp>So I can see everything that I can edit in one one go. Super easy. Right? I can go in and update all of my navigation items. I could add new items to my navigation.\u003C/p>\u003Cp>And, basically, this is, all just using the data model that you've got set up in Directus. On the front end, you're enabling these fields and the behavior that you want through data attributes. Couldn't be simpler to integrate, works with any deployment target, whether that's Netlify or Vercel, just a regular node, long running server. Whatever you've got, you can make this work. And this is baked into core as well, which, you know, it's not hidden behind some enterprise plan, which is huge.\u003C/p>\u003Cp>So I'll I'll just go in and let's navigate to our page at the bottom here. This is integrated into our front end where you can see I can now just drag and drop these blocks. And instead of doing this in a form and hitting save and waiting for the changes to happen, now I can see this happen directly in line. So this is content editing, and this is freaking awesome. So number one, your content editors are going to love this.\u003C/p>\u003Cp>You know, definitely check this out. I'm gonna show you inside our docs where this is located. First and foremost, like I said, we've got starters ready to go for you. There's a command that you can just copy here, n p x directus dash template dash cli at latest init. Copy this.\u003C/p>\u003Cp>Run this. It will pull down a example of our CMS template that you see here, and then it will also prompt you to install your favorite front end framework, which, again, we've got it all set up. But if you go to our docs, go to the guide section, and under content, look for the visual editor. So this is a a quick preview of what it looks like. We've got documentation on the front end library.\u003C/p>\u003Cp>Again, that works through data attributes. You just install this, do a little bit of config, and boom. Your content editors will love you. They'll be 10 times more efficient, 10 times more productive, and I this is just an amazing feature all around. I I'm super excited about it.\u003C/p>\u003Cp>I hope you are too.\u003C/p>\u003Cp>Speaker 0: Alright. Thank you for those updates, Brian. If you are regular here at the changelog, first of all, thank you. You are my favorite people. And secondly, you will know that the community showcase is my all time favorite part of this show, and we are back, and I'm so excited for it.\u003C/p>\u003Cp>So we have Jochem talking through his currency extension next.\u003C/p>\u003Cp>Speaker 4: Hello, everybody. My name is Jochem Gourdes, and I'm a software developer from The Netherlands. In my day to day job, I have a lot of focus on building software for the app, mainly in the front end space. My go to back end to use with my front end applications and the one that I really enjoy using is Directus. And one of the things I really like about Directus is the extensibility via custom extensions.\u003C/p>\u003Cp>And that's also the topic of my video today. I recently built and released an extension called simple currency fields. The main goal of this extension is to provide a custom editor interface and an inline display for the Data Studio to enter and view currency values the same convenient way as we're used to in the Director Studio. And why currency values? Well, for example, to store prices for products in an ecommerce store.\u003C/p>\u003Cp>The reason I wanted to build this extension was because the default input field field for the decimal type didn't give me enough flexibility for safely handling user inputs and correctly displaying a currency value. And as a technical side note, I did want to extend upon the decimal type for the fields because of its accuracy in the database. So the extension will actually only work with fields that have decimal as their type. I've prepared a tiny demo within a local direct instance on my computer and they'll be using a custom product collection I've prepared. So let's have a look.\u003C/p>\u003Cp>So let's have a look at our product collection. As you can see, we have a couple of pretty common, fields, status, image, name, and price fields. Interface size, also price, and a couple of other fields fields which are not important for this demo. For the inputs, for the interface side, we have a euro symbol. And for our display portion, we also have a euro symbol.\u003C/p>\u003Cp>And if we are going to our product data model, we can see that price field is configured as a decimal field with precision 19 and scale of two, which means we can store pretty big, numbers in our database for these fields. And in the interface tab, you can see how I configured the euro sign as icons for the in for the interface and euro sign as prefix that's being used by the display. I've also enabled auto formatting for this field, and I think this is a pretty common way how you normally would configure currency fields in directors. So what I want to do next is change my system settings, my language settings to Dutch. Let's do that.\u003C/p>\u003Cp>And let's go back to our product collection. And one of the problems I was talking about should become visible now because the way the price is presented here is not common for, the Dutch language. For instance, it should be using a comma as a decimal separator, but instead it's still showing a dot for it. If we now go into one of the products and edit it as we and edit it, we can see the dot here as well. Important to note here though is that users should also use a document changing the value here.\u003C/p>\u003Cp>And this is probably not convenient for a lot of users and maybe even worse if I copy a valid ditch price into the fields, that will just change it into a comma here, we will get a very crisp and clear error message. At least I hope so. Well, not really. Most technical users would be able to figure out what's going on here, but most probably would not. So these are a couple of the things I want to solve with the extension.\u003C/p>\u003Cp>A simple way to input and view currency values preferably in the local of the user handling the content. So let's solve that. For this, we can go to our extensions and we can see that we have no extensions installed yet. And if you go to the marketplace, we can search for the simple fields, simple currency field, extension. We can install it.\u003C/p>\u003Cp>We have to reload the page and then we can go back to our collection to the price fields. And let's start with the display, now with the interface. And let's change the input to currency. And let's configure our currency to euro. Save it.\u003C/p>\u003Cp>And if we go back to our product listing and to a product, we can now see properly formatted currency value. In fact, I can type whatever I want Unless it's a number, it will not accept it as input. What's also need to show here is that as soon as you leave the field, the field will automatically be formatted into the correct logo for the user. So it also supports rounding. So if I add a six, it should be become 96, and that will also work.\u003C/p>\u003Cp>But you can also add in bigger numbers to get a thousand separator like this. And if you leave the field, it will automatically, probably format it. If you save it to the same thing and you can also, copy in numbers with a thousand separator in it. Like this, for instance, as an example. If I copy that into the fields, it will automatically use the proper inputting format.\u003C/p>\u003Cp>And as soon as I leave it, it will use the proper display formatting. And yeah. Let's also enable it for the display. So if you go back to our collection, go to the display settings, remove the configured version and pick currency. Save that.\u003C/p>\u003Cp>The currency symbol is automatically derived from the interface settings. Let's go back to our collection and we can see it's properly formatting here as well. One last thing to show here, I think, is that, instead of changing, current fields, you can also easily add new currency fields to any of your collections. For instance, let's imagine we need a subtotal field in our product collection. We can easily do so by selecting the currency, field here, which is just a placeholder for the input field with types at two decimal.\u003C/p>\u003Cp>Let's name that subtotal. Let's also give that the same, currency symbol. And let's go to the advanced, options in order to set precision and scale to be the same as the price field. Save it. Move it and let's go back to our collection.\u003C/p>\u003Cp>And here you can see now that we can use the field with the with the extension. So that was my demo. With this extension, I hope to make handling currency values in Directus not only easier, but also more intuitive and user friendly, especially for those working in different logos. If you would like to try this extension yourself, you can find it on the Directus marketplace and on my GitHub profile. You can also find me on Directus Discord server if you want to chat.\u003C/p>\u003Cp>And if you have any feedback, suggestions, or ideas for improvements, feel free to reach out. I'm always open for to suggestions and collaboration. Thank you for watching this demo, and I look forward to see how the community makes use of the simple currency field extension. Have a great day. Bye.\u003C/p>\u003Cp>Speaker 0: Alright. And there's actually since Yohum very kindly, recorded that video, there is a new post on our new community platform, which I will link here as well. And that brings us to our next section, which is that Ryke and I had a little chat about just that. Welcome. We have Raik with us who is do you want to introduce yourself in case people don't know?\u003C/p>\u003Cp>Maybe they're finding this on a different platform.\u003C/p>\u003Cp>Speaker 3: Yes, please. I'm the CTO and cofounder\u003C/p>\u003Cp>Speaker 0: And you're here with exciting news, which you may have already heard if you are in our Discord. But what is the exciting news, Royce?\u003C/p>\u003Cp>Speaker 3: We have a new community platform that is very exciting news.\u003C/p>\u003Cp>Speaker 0: What is the new platform? Where is it?\u003C/p>\u003Cp>Speaker 3: New platform is community.directors.ao, and it's a discourse forum.\u003C/p>\u003Cp>Speaker 0: Are we about to battle it out between Discord and discourse right now?\u003C/p>\u003Cp>Speaker 3: I think we should. Shouldn't we?\u003C/p>\u003Cp>Speaker 0: I think we should. I think we should. So we're moving from Discord to Discourse. Why? Why are we why are we doing that?\u003C/p>\u003Cp>Speaker 3: Right. So we've been on Discord for, gosh, years now. Right? We started it as an open community server, and it kinda turned into a bit of a, you know, q and a type of thing, a chat with contributors. But over time, we realized as that community grew, we just hit a couple of roadblocks, really.\u003C/p>\u003Cp>It's like the search kinda didn't work, so people have they have to ask the same question multiple times. You know, the the questions don't show up on the Internet. So if you Google for stuff, you're not gonna find any of the questions that were asked on Discord. And generally speaking, you know, it it started to you know, there's some cracks showed up. There were some cracks at that skill for sure.\u003C/p>\u003Cp>So the the main points that we realized we wanted to solve is a, just that findability. Right? Make it accessible, make it accessible to the Internet, make it accessible and therefore and then and then the second part is make sure that it's in a in a structured format that is a little bit of QA rather than just check messages that are all, you know, intertwined like that. So, yeah, we we chose Discourse as sort of the tool for the job, and that's now accessible.\u003C/p>\u003Cp>Speaker 0: Yes. It is. So you can view it without a, an account or you can make an account and you can start posting and liking things. What's happening to the current Discord? Was is it completely going?\u003C/p>\u003Cp>Are we are we shutting it down? Oh, no.\u003C/p>\u003Cp>Speaker 3: No. No. No. No. No.\u003C/p>\u003Cp>So what Discord is really good for is active chatting, obviously. I mean, it's a chat platform. Right? So we're gonna keep it around for chatting with the community and just talking to each other, talking with contributors, talking to, you know, folks in the community in general. But we are explicitly saying, hey.\u003C/p>\u003Cp>Discourse is just the better tool for the job when it comes to q and a. So if you have any questions around Directus or how to use it or you're running into something, Discourse is gonna be the place to go. Right? Community.directus.ao. And for everything else, if you just, you know, wanna chat, wanna hang out, Discord is gonna stick around.\u003C/p>\u003Cp>Speaker 0: I'm gonna give you a very quick tour of the new community platform. If you head over to community.directors.io, you'll land here, which has all of the top posts. You can also filter from all time, year, quarter, month, week or on today. There's also the ability to see the latest activity on posts. You can also filter with tags or in categories.\u003C/p>\u003Cp>So for example, if you want to see the showcases, here you go. You have the ability to sign up with your Google, your GitHub, your Discord or your email address. Once you've signed in 'here I am is definitely not Beth' you'll be able to post topics, so you can pick whichever category is the right one for your post and any tags that relate to it as well as a title and a body of text. You can also interact with other people's posts by liking, you've got a few choice of different emojis, as well as replying. If you've got any questions about the new platform or what's happening with Discord or anything else, let us know.\u003C/p>\u003Cp>The general chat in Discord is still available or make a new topic on our community platform.\u003C/p>\u003Cp>Speaker 2: Welcome back to another episode of Short Hops. I'm your host Brian Gillespie. And in this episode, I'm gonna give you one of the coolest tips and tricks that I've probably ever shared here on Short Hops. So stick with me on this one. It's really cool.\u003C/p>\u003Cp>Alright. So what are we focused on today? We're gonna build a better user experience using filters on our relational interfaces. That is a mouthful, kind of underwhelming title. But let's dive into an example project and I'll show you what we've got going on.\u003C/p>\u003Cp>So this is a sample Directus instance. This is my agency OS project that we put out under the Directus Labs organization. Be sure to check that out. But I wanna show you the scenario. So I'm creating a project in here and we've got an organization and we could add multiple contacts to this.\u003C/p>\u003Cp>So a a project belongs to an organization. Let's go with Tesla, in this case, pretty ambiguous name. And then I want to add an existing contact to this. But you could see here here's my problem. If I take a look, I get all the contacts for this.\u003C/p>\u003Cp>So, you know, I'm only wanting to be able to select contacts that are at Tesla. So this is kind of a a dependency here. How do we manage something like this? So I'm just gonna open the settings. We're gonna go into our data model.\u003C/p>\u003Cp>I'm gonna look for the projects collection. And here inside organization, we've got contacts right beside it. What I'm looking for, you know, we could see the relationship tab and how all these things come together. But when I go into the interface, and this is a mini to mini collection or relationship, so you'll have to be mindful of how you've got your relationship set up. But if I want to set that up dependent upon a field that we already have, I could do something like this.\u003C/p>\u003Cp>Down here in my filter, you know, I could go in and and like hard code a value of, you know, show me all the contacts where the name contains Ashley. But we want this to be dynamic, right? So I'm gonna drill into our organizations. This is a many to many relationship. And I'm gonna say organizations dot ID equals, and I could do this.\u003C/p>\u003Cp>So I'm gonna do mustache brackets here, hold on, and And I'm gonna do organization, which is the name of that other field inside our data model. Alright. Great. So let's take a look at this and we'll go back. We'll create a new project.\u003C/p>\u003Cp>Right now if I click add existing, no contact show up. How come? Right? So what I could do here, we'll say direct us test. That's the company we wanna do this project for.\u003C/p>\u003Cp>And now I only see the contacts who are part of that organization. Right? Likewise, if I change this to Tesla, I open it up and I see I've got Elon Musk here as the only option to select. So that's it. Take a look at the filter on any of the relational interfaces that you've set up.\u003C/p>\u003Cp>This is a a nice little technique to use in certain scenarios like this one. That's it for this episode. Stay tuned for the next one.\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. Since last month, there have been three contributors. A huge thank you to Osman for fixing duplicate values for is one off filter, Gevelium for ensuring that the context menu of a field in the data model settings appear at full height, and to Ziles for adding data collection and field name attributes to parent wrapper for all form elements. Thank you again. You can see their specific pull requests inside of the full release notes on GitHub.\u003C/p>\u003Cp>Lastly, we also want to take the time to thank our GitHub Sponsors of April who financially contribute to their Exodus development. A huge thank you to Weifan, Entel, Mike, Fergus, Omar, Marcus, Mission Control, Peter, Utomic, Steven, James, Nonlinear, Andreas, Khan, John, Jamiluddin, Burb, Adam, Jason, Birka, Yuya, Vincent, CK, Valentino, Jens, Wayne, and Yannis. 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.\u003C/p>\u003Cp>That is everything for this month's changelog. Thank you so much. If you've made it to this point, you are incredible, and I appreciate you spending the time with us. I hope to see you next month. In the meantime, do go check out the new community platform.\u003C/p>\u003Cp>And if you've got any questions, you've got two choices now. You can either go into the Discord or you can be top tier and go to our new community platform. So please go see you over there and let go and check out more of what's been going on. Have a great rest of your day, your week, and your month, everyone, and I will see you again shortly.\u003C/p>","Alright. Hello, everyone. I hope you're all having a wonderful day. Welcome to the May changelog. And if you are joining us live or you're watching later on, hi. Hello. Thank you for joining us. I'm Beth, and I'm gonna be taking you through today's show. We have a lot of Brian today. It's very exciting. I, however, am gonna be kicking you off by taking you to Carmen with the product updates. Thanks, Beth. And hey, everybody. Carmen here to tell you about what we've shipped in the last month or so with Directus eleven point seven point o through to eleven point seven point two. Now we've launched a couple of exciting new features, some bug fixes, and just one potential breaking change that you should know about. Now let's start with some potential breaking changes. As of Directus 11.7 o, we will no longer be supporting MySQL 5.7 in the API, so keep an eye out for that. One of the biggest improvements we've made is in the UX and UI of the visual editor module, so go check it out. Lastly, we've published the Directus schema builder package for mocking database schemas. So that's an overview of what we've been working on over the last month. Be sure to check out further details of the visual editor module improvements later on. Hey. What's up? Brian here. I'm gonna tell you about some updates to, one of our more popular extensions that we've released to the Directus Labs program, the superheader. So the superheader is, basically a powerful header component that gives you a couple different pieces inside one box. So you get a a a title that uses dynamic values. You get a subtitle, so you can add things like published and, you know, additional metadata. You get contextual help, and you get an action bar where you can add links or you can run flows right from the form instead of opening in the right sidebar. So this has been pretty popular since we launched it, but we also got a slew of feedback from you guys. So keep the feedback coming. Love it. We have fixed, quite a few of the bugs that are were happening on opening different modal windows within modals. So that is resolved. And let's take a look at the new functionality. So one of the pieces that is brand new is the ability to open the help content in a modal instead of inline, as a like an accordion type experience. For me, I think this is a better experience, but we still support the inline help if you prefer that as well. Next, we have fixed some of the issues with, like, loading internal links. So you can see here, I can open this up in the visual editor. That does not have to spin up the app or open in a new window, so we've solved that. And then when opening flows or running flows, now we have the capability to, properly manage the overlay so that if you open something else inside your flow, which you can do let's take a look at this, where we wanna pick up the direct Us users. This is no longer showing behind that. So, just quality of life improvements. Now, onto the two biggest improvements. Right? The ability to translate the help content, which was a huge one for, anybody outside The US. And, initially, I wasn't super sure there was an easy way to get the this done, but we managed to do that. So here is how you enable translation support within the superheader. So we're here inside the data model. We go into our interface, and we scroll down, and now we have this enable help translations. So the help translations here, this uses the custom translation strings, and you'll have to set these up just like you would anywhere else, that you're leveraging those for fields. And what this will do, whatever you set for these translation strings will override whatever the the help content is here. So let's just take a look at what that experience looks like. I'm gonna go in. And if I look at my custom translations, you could see I've got two different values for this key. I've got one in English, and this is just HTML content. That still works just fine. And then I have the same thing in French. So now go to the home page. We could see, okay, this is English. If I go to my specific user, we just change the default language to French, and we go back. You know? So we see some of this content. Obviously, it doesn't have translation strings set up for it. It. But if we load our help, now we've got that help content localized for our user. So that just works out of the box with the standard setup. Now I'll go back in, just quickly set this back. And then the last piece of the puzzle is relational item support. So when we first launched this, we could not, fetch relationships. Now you can. So if you have, like, a site set up where I've got a site that this belongs to. We wanna show the name of the site or even inside, like, our actions where we want to leverage a, a domain from another collection or a field from a many to one relationship, we can do that now, which is great. I know some of you have multi tenant setups, and this enables that workflow. So now I can go in. I could see the site name. This is linked to Bryant's site if we open that up or Bryant's front end. And then if I hit view on website, that will load that link for me. So that is the update for the superheader. Hope you guys enjoy this. Super powerful. Got an update for you on our SEO plugin. So this was a a plug in that we launched not too long ago. We've added, a lot of nice updates to it. So, if you've already used it before, this should look familiar to you. The plug in is all about managing your SEO metadata in a simple, easy to use interface. So, out of the box, you kinda get page titles and meta descriptions, which is basically the the bare minimum that you want on the SEO side. We show you a a quick little search preview of what that would look like. You could populate this with a template from the page title, and we give you just some contextual help of, you know, how many characters you should have for the page title or the meta description. And if I go over those, you could see that that's gonna be truncated in our search preview. We've also added a preview for your social media links or OG images. So here, I can, upload my social images or my OG image and actually get a quick preview of what it's gonna look like if it's shared on different platforms, and what that link will actually look like. Just, again, helpful little context. But now we have added even more powerful features to this, based on feedback that we received. So, we can enable an advanced controls like search engine for, like, no index, no follow so that it doesn't follow links or this particular page doesn't get indexed. You can add site map controls if you want to change the frequency, which the crawlers look at your site, or the SEO fields. Those were, like, custom SEO fields where I can define, like, canonical URLs or basically any other metadata that I want to pass to my front end. But the new thing here is our focus key phrase. So we can actually analyze your content. So I'm gonna go into our pages collection, and let's set up the SEO plug in for our blog posts. So So I'm just gonna add this focus key phrase, and when I enable that, it asks me for a slug field and content fields. So where are we actually keeping the content that we're gonna render on the page? Now if you've ever u if you're coming from WordPress, this is very similar to something like Yoast or or some of those other SEO tools where the it's just static analysis of our content. So if I pull this up, we go over to our SEO tab, and here we've got the option to add our main key phrase. So if I add CMS as our main key phrase, you could see this analysis will happen almost immediately. It says, hey. Your focus key phrase does not appear in the content. So this keyword isn't showing up in my content. You know, maybe bunny would be a better one for this. Cool. And then it shows us, hey. Your subheadings, like your h ones, h twos, h threes, those do not contain that focus key phrase. So it gives us improvements, good results. Just a quick, nice little check on your content before you publish to know that you're covering your SEO basics. So that is the update for the SEO plugin. I I hope you'll find this helpful. Keep the feedback coming, please. We love it. So what's new in content this month? We've been hard at work and published eight new articles all about CMSs or content management systems. Be sure to check them out. We've got articles on how to create a CMS and how to generate dynamic pages for CMSs in Astro, Nuxt, Next. Js, and SvelteKit. Don't miss them. Alright. And as a reminder, you can find the extensions in github.com/directors-labs/extensions and also the tutorials on directors.i0/docs/tutorials. Next up, we have more of Brian. I told you we were super lucky today. He is gonna be talking us through the visual editor updates. Super excited for this one. This is a huge feature release for us. Visual editing. It's here. It's real. It's freaking awesome. And, yeah, I don't get excite well, I get very excited about a lot of things, but I'm super excited about this one, and you should be too. This is gonna change the game. Right? The problem with most headless CMS experiences, great for us as developers, we love the structured data. Structured data is great for LLMs and AI. But, when you go headless, you kinda miss that that standard see what I'm editing experience. Right? You're relying on the front end to interpret a lot of that. So in the past, we've had live preview. That works great. But what if we take this a step further and I just allow my content editors not to have to do this in a form, but as they're browsing the page and they could see the edits they're making right in line. That is visual editing. It's here. Let's take a look at it. So I'm just gonna open this page up. This is our super header extension, but I'm just gonna open this page in our visual editor. So here I could see, we've got our content, and you'll notice as I start mousing over things, because I've enabled visual editor and it's, visual editor is two pieces. Right? There's a module inside Directus, and then there's a front end library that you install on your website. Works with any of your favorite frameworks. So Nuxt, Next, Astro, Svelte. We've actually got starter kits for you. % ready to go with this integrated, so you don't really have to do a lot of work to get started with this, but super powerful. Right up here at the top, we'll see our different URLs that are available to navigate to. I can also do this where I just toggle the navigation and hide that. And basically from here, it is like a full on browsing experience. I can jump between different pages and I can hover over an element, go in and edit that. Edit this form. Great. All the keyboard shortcuts that you would expect are here. So I can hit command save to save that if I'm opening this up. I can hit escape to close. So it's a very nice experience. Up at the top, I can also toggle all the editable elements. So I can see everything that I can edit in one one go. Super easy. Right? I can go in and update all of my navigation items. I could add new items to my navigation. And, basically, this is, all just using the data model that you've got set up in Directus. On the front end, you're enabling these fields and the behavior that you want through data attributes. Couldn't be simpler to integrate, works with any deployment target, whether that's Netlify or Vercel, just a regular node, long running server. Whatever you've got, you can make this work. And this is baked into core as well, which, you know, it's not hidden behind some enterprise plan, which is huge. So I'll I'll just go in and let's navigate to our page at the bottom here. This is integrated into our front end where you can see I can now just drag and drop these blocks. And instead of doing this in a form and hitting save and waiting for the changes to happen, now I can see this happen directly in line. So this is content editing, and this is freaking awesome. So number one, your content editors are going to love this. You know, definitely check this out. I'm gonna show you inside our docs where this is located. First and foremost, like I said, we've got starters ready to go for you. There's a command that you can just copy here, n p x directus dash template dash cli at latest init. Copy this. Run this. It will pull down a example of our CMS template that you see here, and then it will also prompt you to install your favorite front end framework, which, again, we've got it all set up. But if you go to our docs, go to the guide section, and under content, look for the visual editor. So this is a a quick preview of what it looks like. We've got documentation on the front end library. Again, that works through data attributes. You just install this, do a little bit of config, and boom. Your content editors will love you. They'll be 10 times more efficient, 10 times more productive, and I this is just an amazing feature all around. I I'm super excited about it. I hope you are too. Alright. Thank you for those updates, Brian. If you are regular here at the changelog, first of all, thank you. You are my favorite people. And secondly, you will know that the community showcase is my all time favorite part of this show, and we are back, and I'm so excited for it. So we have Jochem talking through his currency extension next. Hello, everybody. My name is Jochem Gourdes, and I'm a software developer from The Netherlands. In my day to day job, I have a lot of focus on building software for the app, mainly in the front end space. My go to back end to use with my front end applications and the one that I really enjoy using is Directus. And one of the things I really like about Directus is the extensibility via custom extensions. And that's also the topic of my video today. I recently built and released an extension called simple currency fields. The main goal of this extension is to provide a custom editor interface and an inline display for the Data Studio to enter and view currency values the same convenient way as we're used to in the Director Studio. And why currency values? Well, for example, to store prices for products in an ecommerce store. The reason I wanted to build this extension was because the default input field field for the decimal type didn't give me enough flexibility for safely handling user inputs and correctly displaying a currency value. And as a technical side note, I did want to extend upon the decimal type for the fields because of its accuracy in the database. So the extension will actually only work with fields that have decimal as their type. I've prepared a tiny demo within a local direct instance on my computer and they'll be using a custom product collection I've prepared. So let's have a look. So let's have a look at our product collection. As you can see, we have a couple of pretty common, fields, status, image, name, and price fields. Interface size, also price, and a couple of other fields fields which are not important for this demo. For the inputs, for the interface side, we have a euro symbol. And for our display portion, we also have a euro symbol. And if we are going to our product data model, we can see that price field is configured as a decimal field with precision 19 and scale of two, which means we can store pretty big, numbers in our database for these fields. And in the interface tab, you can see how I configured the euro sign as icons for the in for the interface and euro sign as prefix that's being used by the display. I've also enabled auto formatting for this field, and I think this is a pretty common way how you normally would configure currency fields in directors. So what I want to do next is change my system settings, my language settings to Dutch. Let's do that. And let's go back to our product collection. And one of the problems I was talking about should become visible now because the way the price is presented here is not common for, the Dutch language. For instance, it should be using a comma as a decimal separator, but instead it's still showing a dot for it. If we now go into one of the products and edit it as we and edit it, we can see the dot here as well. Important to note here though is that users should also use a document changing the value here. And this is probably not convenient for a lot of users and maybe even worse if I copy a valid ditch price into the fields, that will just change it into a comma here, we will get a very crisp and clear error message. At least I hope so. Well, not really. Most technical users would be able to figure out what's going on here, but most probably would not. So these are a couple of the things I want to solve with the extension. A simple way to input and view currency values preferably in the local of the user handling the content. So let's solve that. For this, we can go to our extensions and we can see that we have no extensions installed yet. And if you go to the marketplace, we can search for the simple fields, simple currency field, extension. We can install it. We have to reload the page and then we can go back to our collection to the price fields. And let's start with the display, now with the interface. And let's change the input to currency. And let's configure our currency to euro. Save it. And if we go back to our product listing and to a product, we can now see properly formatted currency value. In fact, I can type whatever I want Unless it's a number, it will not accept it as input. What's also need to show here is that as soon as you leave the field, the field will automatically be formatted into the correct logo for the user. So it also supports rounding. So if I add a six, it should be become 96, and that will also work. But you can also add in bigger numbers to get a thousand separator like this. And if you leave the field, it will automatically, probably format it. If you save it to the same thing and you can also, copy in numbers with a thousand separator in it. Like this, for instance, as an example. If I copy that into the fields, it will automatically use the proper inputting format. And as soon as I leave it, it will use the proper display formatting. And yeah. Let's also enable it for the display. So if you go back to our collection, go to the display settings, remove the configured version and pick currency. Save that. The currency symbol is automatically derived from the interface settings. Let's go back to our collection and we can see it's properly formatting here as well. One last thing to show here, I think, is that, instead of changing, current fields, you can also easily add new currency fields to any of your collections. For instance, let's imagine we need a subtotal field in our product collection. We can easily do so by selecting the currency, field here, which is just a placeholder for the input field with types at two decimal. Let's name that subtotal. Let's also give that the same, currency symbol. And let's go to the advanced, options in order to set precision and scale to be the same as the price field. Save it. Move it and let's go back to our collection. And here you can see now that we can use the field with the with the extension. So that was my demo. With this extension, I hope to make handling currency values in Directus not only easier, but also more intuitive and user friendly, especially for those working in different logos. If you would like to try this extension yourself, you can find it on the Directus marketplace and on my GitHub profile. You can also find me on Directus Discord server if you want to chat. And if you have any feedback, suggestions, or ideas for improvements, feel free to reach out. I'm always open for to suggestions and collaboration. Thank you for watching this demo, and I look forward to see how the community makes use of the simple currency field extension. Have a great day. Bye. Alright. And there's actually since Yohum very kindly, recorded that video, there is a new post on our new community platform, which I will link here as well. And that brings us to our next section, which is that Ryke and I had a little chat about just that. Welcome. We have Raik with us who is do you want to introduce yourself in case people don't know? Maybe they're finding this on a different platform. Yes, please. I'm the CTO and cofounder And you're here with exciting news, which you may have already heard if you are in our Discord. But what is the exciting news, Royce? We have a new community platform that is very exciting news. What is the new platform? Where is it? New platform is community.directors.ao, and it's a discourse forum. Are we about to battle it out between Discord and discourse right now? I think we should. Shouldn't we? I think we should. I think we should. So we're moving from Discord to Discourse. Why? Why are we why are we doing that? Right. So we've been on Discord for, gosh, years now. Right? We started it as an open community server, and it kinda turned into a bit of a, you know, q and a type of thing, a chat with contributors. But over time, we realized as that community grew, we just hit a couple of roadblocks, really. It's like the search kinda didn't work, so people have they have to ask the same question multiple times. You know, the the questions don't show up on the Internet. So if you Google for stuff, you're not gonna find any of the questions that were asked on Discord. And generally speaking, you know, it it started to you know, there's some cracks showed up. There were some cracks at that skill for sure. So the the main points that we realized we wanted to solve is a, just that findability. Right? Make it accessible, make it accessible to the Internet, make it accessible and therefore and then and then the second part is make sure that it's in a in a structured format that is a little bit of QA rather than just check messages that are all, you know, intertwined like that. So, yeah, we we chose Discourse as sort of the tool for the job, and that's now accessible. Yes. It is. So you can view it without a, an account or you can make an account and you can start posting and liking things. What's happening to the current Discord? Was is it completely going? Are we are we shutting it down? Oh, no. No. No. No. No. No. So what Discord is really good for is active chatting, obviously. I mean, it's a chat platform. Right? So we're gonna keep it around for chatting with the community and just talking to each other, talking with contributors, talking to, you know, folks in the community in general. But we are explicitly saying, hey. Discourse is just the better tool for the job when it comes to q and a. So if you have any questions around Directus or how to use it or you're running into something, Discourse is gonna be the place to go. Right? Community.directus.ao. And for everything else, if you just, you know, wanna chat, wanna hang out, Discord is gonna stick around. I'm gonna give you a very quick tour of the new community platform. If you head over to community.directors.io, you'll land here, which has all of the top posts. You can also filter from all time, year, quarter, month, week or on today. There's also the ability to see the latest activity on posts. You can also filter with tags or in categories. So for example, if you want to see the showcases, here you go. You have the ability to sign up with your Google, your GitHub, your Discord or your email address. Once you've signed in 'here I am is definitely not Beth' you'll be able to post topics, so you can pick whichever category is the right one for your post and any tags that relate to it as well as a title and a body of text. You can also interact with other people's posts by liking, you've got a few choice of different emojis, as well as replying. If you've got any questions about the new platform or what's happening with Discord or anything else, let us know. The general chat in Discord is still available or make a new topic on our community platform. Welcome back to another episode of Short Hops. I'm your host Brian Gillespie. And in this episode, I'm gonna give you one of the coolest tips and tricks that I've probably ever shared here on Short Hops. So stick with me on this one. It's really cool. Alright. So what are we focused on today? We're gonna build a better user experience using filters on our relational interfaces. That is a mouthful, kind of underwhelming title. But let's dive into an example project and I'll show you what we've got going on. So this is a sample Directus instance. This is my agency OS project that we put out under the Directus Labs organization. Be sure to check that out. But I wanna show you the scenario. So I'm creating a project in here and we've got an organization and we could add multiple contacts to this. So a a project belongs to an organization. Let's go with Tesla, in this case, pretty ambiguous name. And then I want to add an existing contact to this. But you could see here here's my problem. If I take a look, I get all the contacts for this. So, you know, I'm only wanting to be able to select contacts that are at Tesla. So this is kind of a a dependency here. How do we manage something like this? So I'm just gonna open the settings. We're gonna go into our data model. I'm gonna look for the projects collection. And here inside organization, we've got contacts right beside it. What I'm looking for, you know, we could see the relationship tab and how all these things come together. But when I go into the interface, and this is a mini to mini collection or relationship, so you'll have to be mindful of how you've got your relationship set up. But if I want to set that up dependent upon a field that we already have, I could do something like this. Down here in my filter, you know, I could go in and and like hard code a value of, you know, show me all the contacts where the name contains Ashley. But we want this to be dynamic, right? So I'm gonna drill into our organizations. This is a many to many relationship. And I'm gonna say organizations dot ID equals, and I could do this. So I'm gonna do mustache brackets here, hold on, and And I'm gonna do organization, which is the name of that other field inside our data model. Alright. Great. So let's take a look at this and we'll go back. We'll create a new project. Right now if I click add existing, no contact show up. How come? Right? So what I could do here, we'll say direct us test. That's the company we wanna do this project for. And now I only see the contacts who are part of that organization. Right? Likewise, if I change this to Tesla, I open it up and I see I've got Elon Musk here as the only option to select. So that's it. Take a look at the filter on any of the relational interfaces that you've set up. This is a a nice little technique to use in certain scenarios like this one. That's it for this episode. Stay tuned for the next one. 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 three contributors. A huge thank you to Osman for fixing duplicate values for is one off filter, Gevelium for ensuring that the context menu of a field in the data model settings appear at full height, and to Ziles for adding data collection and field name attributes to parent wrapper for all form elements. Thank you again. You can see their 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 April who financially contribute to their Exodus development. A huge thank you to Weifan, Entel, Mike, Fergus, Omar, Marcus, Mission Control, Peter, Utomic, Steven, James, Nonlinear, Andreas, Khan, John, Jamiluddin, Burb, Adam, Jason, Birka, Yuya, Vincent, CK, Valentino, Jens, Wayne, and Yannis. 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 everything for this month's changelog. Thank you so much. If you've made it to this point, you are incredible, and I appreciate you spending the time with us. I hope to see you next month. In the meantime, do go check out the new community platform. And if you've got any questions, you've got two choices now. You can either go into the Discord or you can be top tier and go to our new community platform. So please go see you over there and let go and check out more of what's been going on. Have a great rest of your day, your week, and your month, everyone, and I will see you again shortly.","published",[135,142,149,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":8},"49c9e2fa-e7d7-45c9-b7b0-7125a2219f16","Carmen","Huidobro","fedb548b-def3-437c-b90a-f0d4d3d81d1d","Developer Educator at Directus",{"people_id":150},{"id":151,"first_name":152,"last_name":153,"avatar":154,"bio":155,"links":156},"791e1503-1d88-463d-9347-0b9192933576","Bryant","Gillespie","9013afc8-e8d7-4182-9b18-44db08117bb9","Developer Advocate at Directus",[157,160],{"url":158,"service":159},"https://directus.io/team/bryant-gillespie","website",{"service":161,"url":162},"github","https://github.com/bryantgillespie",{"people_id":164},{"id":165,"first_name":166,"last_name":167,"avatar":168,"bio":169,"links":170},"23ebcf2c-4374-4f5c-8198-f8ad497fd856","Rijk","van Zanten","7ef9652f-3835-432c-a43a-c5fe13001f31","CTO of Directus",[171],{"url":172,"service":159},"https://directus.io/team/rijk-van-zanten",[],{"id":175,"number":176,"year":177,"episodes":178,"show":186},"8d55b0f7-e337-475c-99c7-3b65612fbcff",2,"2025",[179,180,181,182,122,183,184,185],"b730c9d0-30fb-4eff-b4b6-5be61826c8c0","c14eb0dd-301c-412e-b15f-a81dfe7c1265","0ed97d3a-f55b-497e-a5c1-5812814a841e","89e3526f-dcfc-4280-96bb-126465f340f3","7dd74ad6-eca6-4193-851e-8e4322847794","c181631f-45fb-4190-9f78-760fdf735bd6","3d916baf-bb4c-4fa7-8d0d-a7beb07945ff",{"title":187,"tile":188},"The Changelog","de6f3b4b-3c36-4142-819b-3312690e08a1",{"title":8,"meta_description":8},{"id":191,"slug":192,"season":193,"vimeo_id":194,"description":195,"tile":196,"length":197,"resources":8,"people":8,"episode_number":198,"published":199,"title":200,"video_transcript_html":201,"video_transcript_text":202,"content":8,"seo":203,"status":133,"episode_people":204,"recommendations":207},"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",[205,206],"ca7b298d-cfce-4a0a-a467-352f31bd3140","12d14e99-9340-4084-9bce-25e042471e7d",[],{"reps":209},[210,266],{"name":211,"sdr":8,"link":212,"countries":213,"states":215},"John Daniels","https://meet.directus.io/meetings/john2144/john-contact-form-meeting",[214],"United States",[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,262,263,264,265],"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":267,"link":268,"countries":269},"Michelle Riber","https://meetings.hubspot.com/mriber",[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,454,455,456,457,247,458,459],"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",1773850452902]