This is an edited transcript. For the blog post and video, see Tag1 Team Talk Drupal Workspaces: A Game-changer for Site Wide Content Staging.


[00:00:00] Michael Meyers: Hello and welcome to Tag1 Team Talks the podcast and blog of Tag1 Consulting.Today. I'm talking with Tag1's, Andrei Mateescu, the maintainer of the Workspaces module. It solves one of the biggest problems and complaints that large organizations have with Drupal.

[00:00:16] To be a true enterprise content management system, the CMS must have the ability to do site wide content staging. We're talking about where a privileged user can preview large sets of changes in the end user's perspective before they go live, and then enable you to easily publish these changes at the click of a button.

[00:00:33] Now, there have been a few attempts in the past to solve this, including the site preview system with Drupal 7, which I led just over a decade ago. And a content preview system, but the only version for modern Drupal is the Workspaces module. And it is by far the best solution ever. I'll give you fair warning that the Workspaces is still listed as an experimental module on Drupal.

[00:00:55] org, but it is extremely capable. And we run it on production with Fortune [00:01:00] 500 clients. And I think that after Andrei's demo today, you're definitely going to want to check it out and start running it on your site as well, because it is really impressive. I'm Michael Meyers, the Managing Director at Tag1.

[00:01:12] Tag1 and our team are very active contributors to open source communities, and almost all of our clients come to us because of our innovative contributions to projects like Drupal. We build large scale applications with Drupal, as well as many other technologies for leading organizations in every sector, including Google, ITV, Stamford University, and Sumitomo, just to name a few.

[00:01:33] If you need help with your large scale application, please email us at info at Tag1. com. I'm really excited to have Andrei on the show today. And not just because of Workspaces, he is a long time prolific contributor to Drupal. Over the last 14 years, he's credited with a thousand contributions to Drupal.

[00:01:53] I did the math last night, and that's one contribution every five days. That could be a bug fix, that could be a [00:02:00] major feature. He's done that every five days for 14 years. It's truly amazing. But he also maintains 50 popular contributed modules, including Entity Queue, Trash, and several Commerce modules.

[00:02:13] And he's the Drupal Core Maintainer for Entity Field API. Field UI and transliteration Andre getting to work with you and talk to you today about Workspaces and the amazing things you're doing with Drupal is one of the things that I absolutely love about my job and being at Tag1. I want to thank you for all the awesome stuff that you've done for Drupal over the years.

[00:02:34] And thank you for joining me today. Welcome.

[00:02:37] Andrei Mateescu: Thank you as well. Glad to be here.

[00:02:40] Michael Meyers: So before we kick off the demo, uh, can you just tell us, you know, in your, in your own words, I gave a brief overview of Workspaces, uh, just, you know, tell us a little bit about it and what you're going to cover today.

[00:02:51] Andrei Mateescu: Uh, sure.

[00:02:53] Well, as you said, uh, most, uh, Enterprise, uh, large sites [00:03:00] need the ability to do large sets of changes and, uh, go through workflows and all that, and they need to. be able to stage, basically stage content all together in large sets and then publish, um, all of that work together either at a specific time or whenever the content is ready. Yeah. I think the overview you gave was really good.

[00:03:35] Michael Meyers: Awesome. Yeah. Let's jump off with a demo then. I mean, it blows my mind, you know, Drupal is this amazingly capable system and it really blows my mind that. This functionality, which is so, you know, central to what you need in a CMS, you know, it has, has something that has, you know, never really existed today and certainly not to the level of what you've achieved with [00:04:00] Workspaces. And, um, you know, I, I think that this is critical for, for the platform.

[00:04:06] Andrei Mateescu: Uh, yes, it is. And also I don't want to take that much credit. This is all built upon, uh, layers and layers of previous work done by many people, including people from Tag1 and, uh, a lot of others. So standing on the shoulders of giants, so to speak.

[00:04:31] Michael Meyers: Yeah, no, really great thing to point out. There's a lot of people that have contributed to this. There are amazing co maintainers of this that, you know, have, have put in, you know, blood, sweat, and tears to get it to where it is. It's really important that we acknowledge that this is, you know, a big, you know, uh, initiative with a lot of contributors.

[00:04:49] Andrei Mateescu: Yep. Yep. It is.

[00:04:52] Okay. So let me share my screen.

[00:04:57] Okay. [00:05:00] So what we have here is, um, the demo Umami installation profile, which is included in Drupal Core. And it's, I think it's great for, uh, showing off, um, a well built site. And, uh, it also includes the Core Workspaces module, which is the one that gives us this, uh, global item. Then, uh, the Workspace extras contrib module, which enhances, uh, the capabilities of the Core module a bit.

[00:05:36] At the moment, for example, it provides all the code needed to get Workspaces stable in Core, in Drupal Core. Um, which, um, hopefully will happen in Drupal 10. 3, all the work is already there. Uh, there's just a few bits that need to be pushed over the finish line, [00:06:00] but, um, yeah, I'm pretty sure that, um, it will be stable either in 10. 3 or Drupal 11. Most.

[00:06:12] Michael Meyers: Are you, are you saying that this is going to become a Core feature of Drupal in 10. 3 or 11?

[00:06:18] Andrei Mateescu: Yes. Yeah, it's already a Core feature. It's just tagged as experimental, at the moment, and, uh, this extra, this Workspaces, extra contribute module that I mentioned, just, uh, improves various aspects of it.

[00:06:38] And also

[00:06:39] Michael Meyers: I love how the

[00:06:39] extra module is what makes it stable for Core.

[00:06:42] Andrei Mateescu: Yeah, it, uh, just takes all the work that's already done in the Core issue queue. And, um, Bundles all those, uh, batches and merge requests in a, in a single module. So it's easier to, to [00:07:00] have it, uh, stable, I say without the blank patches with composer and so on.

[00:07:07] And, uh, we also have the Trash module, which, um, provides us with the ability to stage content deletions, for example. And, uh, so yeah, and to, uh, restore content if needed.

[00:07:29] Michael Meyers: Um, so in the upper right hand corner on the admin toolbar, now you have, uh, a Workspaces icon and it says live. Does that mean that, you know, where, you know, we're seeing, um, the library, like, you know, obviously I assume that means like production, you can name it anything, That means we're looking at, you know, in the Workspaces context, the live version of the site.

[00:07:56] Andrei: Yes, exactly. And if we click on it, [00:08:00] we have a Workspace switcher, which is a bit different than the one in Drupal Core, but it's similar enough. Um, so we, here we can see a little list of Workspaces. We can add a new one, we can view all the Workspaces.

[00:08:20] And, uh, so let's say that we want to switch into a Workspace. This, uh, one is, uh, created by default when you enable the module, but, uh, yeah, we can use it for demo purposes. And, um, I guess

[00:08:39] Michael Meyers: I'm not sure there's a use case where you would need a thousand Workspaces, but is there, there's always use a case, uh, is there any limit to the number of, of Workspaces that you can have?

[00:08:50] Andrei Mateescu: I haven't tested that limit, but, uh, we did test, um, more than a thousand, uh, [00:09:00] entities changed in a Workspace. And, uh, that works.

[00:09:06] Michael Meyers: You can have a very large number of changes in a given Workspace that you can surf through and see, um, and then publish that's, that's pretty wild. You know, this is, I mean, for the, for the people that are watching, this is a really comprehensive system.

[00:09:20] And because it's baked into Drupal Core, and I don't want to get ahead of ourselves, but, um, all of the things that you would do in Drupal like Layout Builder, they all work, you know, seamlessly. Um, with this and, and that's, you know, that's, that's really amazing. And that's what makes it like the best solution ever.

[00:09:38] You know, this is a Core solution that plugs into Drupal. Um, and, uh, yeah, so walk me through it. This is

[00:09:48] Andrei Mateescu: Right. So, uh, now that we activated the Workspace. Page in this case, uh, this is, uh, we're now seeing something [00:10:00] like a site wide preview of the whole site. So if we make any change in this Workspace, we'll be able to see it in the context of the site and, um, we, it won't be visible on the live site.

[00:10:18] That's basically the premise of the module. So let's say that. If we want to edit this recipe, um, let's make an update. Let's, uh, change the title of the recipe. Um, so as you can see, this, um, change is now visible in the stage Workspace. When you view the same, uh, content in the live Workspace, in the live site, that's not visible.

[00:10:54] And if we switch back to this one, um, let's see, we can, uh, change the title. [00:11:00] Either edit more content, we can change any fields we, we need to.

[00:11:20] Michael Meyers: And this makes every other attempt at content staging looks so rudimentary. I mean, it's not, I mean, to call it a preview. I mean, that it's like the wrong word. Like you're, you're browsing like a, I don't know, a copy, a virtual version of your site. You know, in its own Workspace and it, I mean, it looks exactly like the site would and should, like you have no idea except for the Workspaces icon up the top that now says stage and you're looking at a, you know, a virtual copy of your site, you could change anything and everything across. You know, everything, I mean, you can, you know, create a different site in this, in this Workspace, essentially. And then just publish it!

[00:11:58] Andrei Mateescu: Yes. Yeah. [00:12:00] But, uh, I mean, there's only one caveat, it's limited to content edits. Um, we don't get support config edits. So for example, um, adding new blocks to a page or, um,

[00:12:19] For example, adding a new view. So a new list of items that would be a config change. And, um, Yeah, that's not supported by the Core module, but any content changes that it's a fair game.

[00:12:35] Michael Meyers: I think what you meant to say is it's, it's not supported yet.

[00:12:39] Andrei Mateescu: Yes. There's some work in progress in the Workspace extras module to support the config, as well. But, um, it's a work in progress.

[00:12:53] Michael Meyers: Yeah.

[00:12:54] Andrei Mateescu: I mean, it's not impossible though. It will be available at some [00:13:00] point.

[00:13:01] Michael Meyers: It does so much, you know, like it really is.

[00:13:04] Andrei Mateescu: Yep. So I did two edits. Now, if we look at our Workspace, We can see the list of changes we did in this Workspace. Now let's say that we want to delete this recipe and, um, start, uh, promoting it for some reason.

[00:13:31] And we can also see that, uh, deletion it's, uh, staged content deletions. So for example, if we switch to the live site, which was it, let me, Okay.

[00:13:50] Michael Meyers: I noticed when you deleted that piece of content that it said, you know, delete multiple translations. You want to do the English, the Spanish, [00:14:00] uh, so, so Workspaces, because it's part of Core support stuff like translations.

[00:14:08] Andrei Mateescu: Yes, of course. You can create new translations for a piece of content. In a Workspace that won't be visible to live site visitors, uh, Trash support.

[00:14:23] So, um, yeah, Trash support for, um, content translation is in progress. There's a work already done on it. Uh, just it's a bit more, uh, work, but, uh, Workspaces itself, uh, supports translations, out of the box. Creating, deleting, translations, and also creating new content as well. In this example, I just edited, uh, a few recipes and deleted one.

[00:14:57] And, uh, yeah, let me quickly go to the live [00:15:00] site.

[00:15:04] Uh, so as you can see, this recipe is, uh, still visible in live, but not in a Workspace, um, you can, um, restore content. You can restore deleted content. So, for example, if we want to say, this was deleted by mistake, we just restore it, and it will be Right there

[00:15:32] Michael Meyers: And it restores it back to the Workspace. It was deleted from, yes.

[00:15:36] Yeah. Wow. Or like, I'm going to say that a lot today. Wow.

[00:15:43] Andrei Mateescu: Yeah. Or another use case could be to delete it in a Workspace, publish that Workspace and then restore it in a different Workspace, for example, that could also happen.

[00:15:56] Michael Meyers: One of the things that I think is like super like slick and well thought out, [00:16:00] like the usability of this, you know, you, you're, you know, you clicked into a piece of content or you're on the homepage.

[00:16:07] Um, in the Workspace or stage, and then you just, you know, clicked in the toolbar. You said, show me live and it shows you the live version of that exact page, right? It's like a seamless transition to flip back and forth between your different versions of the site. You can click on the stage thing and say, Hey, show me a list of all of the changes, edits, deletions, or that.

[00:16:26] You click easily go into them, the ability to, to manage and see your edits and changes and preview them. That's it. You know, whether you just want to surf through the site, like naturally and organically, or just, you know, strategically go in and check out the very specific things you've done. Like it's just so easy.

[00:16:46] Andrei Mateescu: It is pretty seamless.

[00:16:50] Um, so, okay, let's say that we really want to delete this one. And, um, after we're done with the changes, maybe, I don't know, [00:17:00] maybe we should, um, do some manual changes as well. Uh, let's see, let's change the label of this one, recipees.

[00:17:11] So when you are done with, uh, all the content changes that you want to do in the Workspace, then you can just publish all of the set of your changes together. And there's a confirmation page, which lists everything that was changed in that Workspace.

[00:17:32] And click of a button. All those updates are now, uh, published to the live site. We have this, uh, these two changes, that recipe was deleted, and that's it. And let's say that we want, uh, to create a new Workspace. And I [00:18:00] mentioned earlier that you can restore content in a Workspace.

[00:18:07] So let's do that now. We are, we are in a different Workspace where you started this recipe. When we visit the live site, we can't see it, but when we get to publish this Workspace, it will be there. Wow. And yeah, you can have, uh, you can draft multiple changes in multiple Workspaces at the same time. So let's say that we.

[00:18:43] We can create multiple Workspaces and edit content, uh, in each of them. So right now we're in test one. Let's, uh, edit this one. Let's say

[00:18:55] test one.

[00:18:58] Michael Meyers: And you're just making a simple [00:19:00] change for the sake of like a fast demo, but you could add or remove images, taxonomy terms, you know, you know, there are some limitations, like you mentioned with respect to blocks right now, but.

[00:19:11] Um, you know, just for the sake of expediency where, you know, I, I just want to point out that like you could literally change and edit anything and everything, add new content, remove content.

[00:19:21] Andrei Mateescu: Yes. And also layout builder changes, for example, um, directions, let's just name them by the Workspace name.

[00:19:32] Andrei: So, you know, what you're showing is, you know, just quick, simple edits for the sake of a fast demo where you're, you know, say, making a change to a title or, or, or the content of the body, uh, for a piece of content, but Workspaces supports

[00:19:47] Michael Meyers: changes for all sorts of different things. You know, um, you can change taxonomy terms, you can add and remove images. Um, you know, so I just want to make sure that people understand that, you know, just for the sake of the demo, we're moving quickly here and showing off [00:20:00] very specific things, but there is really broad support for what you can change and preview in a Workspace.

[00:20:07] Andrei Mateescu: Yes, exactly. So most content entity types are supported, like I mentioned, notes, taxonomy terms, uh, media. And the menu links as well. And, um, layout builder is also supported. So, for example, we can, um, these images and this is coming from, um, um, entity fields. So, for example, if we want to update the preparation time, We can do that and we can, um, this, um,

[00:20:50] I think layout builder, yeah, has, um, cache of what's displayed here and, uh, yeah, we can see our edit now. [00:21:00] We can add, uh, we can add new blocks in layout builder. So let's say that we want to just add some basic text block.

[00:21:15] Michael Meyers: Is this layout builder or layout builder plus?

[00:21:19] Andrei: It's layout builder. I don't have the layout builder plus module enabled at the moment. So yeah, we can see the new, the changes in our Workspace. Again, if we switch to live, we have the old preparation time and we don't have the new block. So like you mentioned, everything is a seamless and I was doing some edits in this Workspace and then I wanted to, yeah, I wanted to show this.

[00:21:52] Michael Meyers: I mean, the. The usability of this is so great. Like so thoughtful, you know, you just clicked on the Workspaces. You see the [00:22:00] dropdowns, like recent ones, you know, um, you listed them, you know, if you have a handful of Workspaces in your organization, it makes it really easy to find what you've been working on.

[00:22:12] Andrei Mateescu: Yep, exactly. And it lists the one on which were activated more recently first, so, and I think the list is restricted to 10 or so, so this won't overflow. But if you want to find all of them, you always, you always have this page.

[00:22:33] So let's say that, um, we are now in test two. We can make another quick edit and I'll show you in a bit where I'm going. Where I'm going with this is, uh, so in the Test 2 Workspace, we have a change and we'll have a different change in Test 1.

[00:22:57] Um, but for [00:23:00] example, if you want, uh, let's say that that's two is a Workspace with a lot of content changes. So you changed, I don't know, half of the whole site and, um, you want, to make a quick edit faster than, uh, this Workspace can, uh, can be published. So for example, let's say it's not ready to go through all the workflows and it's not approved by, uh, all the stakeholders.

[00:23:32] You can, um, Move a piece of content, edited content to another Workspace, and it can be published

[00:23:47] separately than all the other changes that, um, happened in that site. So this, for example, is where we see the edit [00:24:00] coming from the, the other Workspace. And again, publishing it makes all the changes show instantly on the site.

[00:24:14] Michael Meyers: It's really great that you can shift edited content between different Workspaces.

[00:24:19] One of the things I'm wondering in the back of my mind, you know, you can have all of these Workspaces, you'd have people making all sorts of different edits and changes in different Workspaces Like what happens if I publish, you know, Workspace one and someone else, you know, publishes Workspace two and we edit things, you know, the same things in different Workspaces and I mean, the permutations here seem to get like really complex.

[00:24:44] Andrei Mateescu: Yes.

[00:24:44] Michael Meyers: How do you, how do you manage that currently?

[00:24:47] Andrei Mateescu: At the moment, uh, there is, um, we don't, uh, have, um, conflict resolution solution to be able to merge those [00:25:00] changes, so to speak, but, uh, we do have various, uh, protections in place. So once you start editing a piece of content in a Workspace, let's say we start editing this one.

[00:25:16] And, uh, That's three Workspace. Then once you switch to another Workspace, you're not able to edit this content anymore, so this doesn't allow, um, content editors to

[00:25:37] make conflicting changes on a piece of content. This will be improved in the future by allowing everyone to make any change they want and, Then, uh, one of the Workspaces is published and then when the other one gets to the state where it can be published, they will be able to resolve, uh, content conflicts in the UI.

[00:25:59] Michael Meyers: [00:26:00] Would that the

[00:26:01] chaos extension to the Workspaces module?

[00:26:05] Andrei Mateescu: Something like that.

[00:26:08] Michael Meyers: Um, That's, uh, I mean, what you have works really well. I mean, you have the ability to, you have safety controls in place. You can lock people out of editing, but it's super easy to move a piece of content to whatever Workspace you need it in if you want to continue editing on or, you know, publishing it within that Workspace instead of changes.

[00:26:27] So that, you know, uh, the current capabilities. Enable you to do, you know, most, you know, the big use cases are out there and, you know, I'm sure there are organizations that do want to have, you know, different changes of different things at different times. Um, and that capability is coming. So, you know, it's just, uh, you know, this is, I'm in awe. I'm just like, uh, every time I see this thing.

[00:26:58] Andrei Mateescu: Yeah. [00:27:00] Um, there's also the ability to discard changes in a Workspace. So,

[00:27:09] uh, aside from, uh, moving your changes to another Workspace, you can also just say that, okay, this change was not great at all. We're just going to get rid of it. And that frees up the content to be edited in a different Workspace.

[00:27:27] Michael Meyers: What was that translate option? So when you were looking at a Workspace and all the edits associated with it.

[00:27:33] Um,

[00:27:34] Andrei: um, that was, that was Drupal's, uh, translate operation. Okay. So let's say we are doing this change and then in the Workspace manage page, this is just Drupal Core's, uh, way of translating content.

[00:27:57] Michael Meyers: So within, when you're looking at all the content [00:28:00] changes within a space, you can look at the translations associated to them and you can add, edit translations to the content that you're changing as well.

[00:28:09] Andrei Mateescu: Yes, exactly. So this, for example, I updated the translation again, going to live. We don't see the change.

[00:28:21] And when we publish that Workspace, all the changes will go live, including the translation change. Which one was it? Yeah. Spanish.

[00:28:37] Michael Meyers: You get another wow. Um, this is game changing for Drupal. You know, this, this really, you know, it wasn't hyperbole that I said at the beginning, like this really solves one of the biggest pain points and complaints that organizations have with Drupal and, you know, and their complaints are, you know, are, are, are fair and understandable.

[00:28:55] Um, and, and, and this is just amazing. [00:29:00]

[00:29:00] Andrei Mateescu: I think so as well. It would be very helpful for sites that, uh, Need to publish sets of changes and, uh, through various workflows as well. yeah, so there is another module Entity Workflow, which enables, um, workflows for both content and, uh, separate workflows for Workspaces.

[00:29:25] Um, but maybe we'll talk about that another time.

[00:29:31] Michael Meyers: Um, just in brief at a high level. Um, You know, I think workflows are really interesting. You don't have to show anything, but just, you know, what is a workflow and. You know, how would an organization use it? Just a simple example.

[00:29:45] Andrei Mateescu: Right. So most, uh, most large sites need to have, need to have content changes, go through a specific workflow and, uh, through specific, uh, [00:30:00] states before being approved and then finally published.

[00:30:04] So yeah, that Entity Workflow module, which is similar to content moderation, which is in Core. Enables you to do that. So it, uh, adds workflow state to both, uh, content and to the Workspace. So they can move through workflow states, uh, separately. And, uh, let's say

[00:30:27] we have.

[00:30:30] Michael Meyers: So content in a Workspace, like this article that we're editing as a, could have a workflow associated with it.

[00:30:36] Legal has to approve it. An editor has to approve it. Whatever that workflow is, um, before it can then be published with the Workspace. And the Workspace itself could have a workflow that has to go through different checks and approvals before it can be approved. Yes, exactly.

[00:30:55] Andrei Mateescu: So, and we're talking about the configurable states, so any kind of workflow [00:31:00] is supported with any number of states, uh, translation, approvals, uh, anything else.

[00:31:11] Michael Meyers: This is crazy.

[00:31:16] Andrei Mateescu: Yeah. Um, I, I would have to do a separate, uh, talk to go through all the workflow things. This is mostly about Workspaces and Trash for now.

[00:31:36] Michael Meyers: Yeah, yeah. I mean, there's so much to cover. But even, you know, what I just noticed, and this makes total sense, but you were just looking at the Workspaces, you know, for a specific, the list of Workspaces and what's within a Workspace.

[00:31:50] And the site's in Spanish, or it was just a second ago. So, you know, um, and you know, Drupal supports translations, not just for its content, for its admin menu pages. [00:32:00] And, you know, that trickles down to this as well. And so we're looking at Workspaces here in Spanish. Um, you know, uh, and that's pretty wild.

[00:32:08] You can just click between the different, you know, languages that Drupal supports and see your Workspaces. menus and options and everything, um, in whatever language you need it to be.

[00:32:23] Andrei Mateescu: Yeah, exactly. So all content editors can, uh, use the interface they're most comfortable in to do all their changes. There is absolutely no restriction in that regard.

[00:32:46] Um, so would you like to see anything else? I think I covered pretty much everything.

[00:32:56] Michael Meyers: I'm speechless. Like,

[00:32:59] [00:33:00] and that's not, you know, I'm a talker. Um, this is honestly one of the coolest things I've seen in a long time for Drupal. You know, I really hope that more people, you know, you talked about how this is something that a lot of people have worked on to create. Um, I hope that this, you know, talk inspires more people to get involved in and help, you know, continue to accelerate the innovation that this is driving.

[00:33:26] I mean, this is, this really plugs a gap in, in Drupal and helps solidify it as, you know, uh, you know, the top enterprise content management system in the market. I mean, this is beyond anything I've seen, you know, for, for, uh, a content management system. And there are still a lot of things that you guys have planned and in the works.

[00:33:47] Um, so yeah, I really encourage people to, uh, you know, keep an eye on this. You know, if you're interested in contributing, uh, you know, hop into the, uh, issue queues [00:34:00] and, and, you know, get engaged and involved and help us further this along, uh, Andrei, uh, thank you so much. I know you're crazy busy, you know, um, really appreciate you making the time to walk us through this.

[00:34:12] I mean, this is, this is truly amazing.

[00:34:15] Andrei: Yeah, it was my pleasure. And as you said, with more users, I hope, uh, more people will come and, um, With feature requests and, uh, just help improve all of this more in Drupal Core and in Contrib for any wild ideas.

[00:34:39] Michael Meyers: More users is, you know, bring a lot of feedback and I can't, you know, when this in Drupal Core.

[00:34:47] Wow. My final wow for the day. Um, to everybody who tuned in, thank you so much for joining I hope you enjoyed this as much as I did, half as much as I did. Uh, this was really great. Uh, all the [00:35:00] links that we mentioned, uh, will be in the show notes. Uh, if you like this talk, please remember to share it out, upvote, subscribe.

[00:35:07] Uh, you can check out past Tag1 Team Talks at tag1.com /TTT. That's three T's for Tag1 Team Talks. As always, we'd love your feedback and any topic suggestions. If there's a stuff you think we should cover more information, you want to hear about Workspaces. Please let us know. You can write to us at ttt@tag1.com. Again, Andre, huge. Thank you for joining us and everyone who tuned in. Take care.

[00:35:37] Andrei: My pleasure. Thank you.