This is a transcript of the The DDEV Local Development Environment: Talking with Maintainer Randy Fay Click here to return to The DDEV Local Development Environment: Talking with Maintainer Randy Fay

[00:00:00] Michael Meyers: Hello and welcome to Tag1 TeamTalks, the podcast and blog of Tag1 Consulting.

[00:00:04] Today, I'm talking with Randy Fay, the maintainer of DDEV, who's also going to be doing a demo of some of the features and functionality in a little bit. DDEV is a very popular Docker based PHP development environment and it enables you to get up and running in minutes, even if you don't have any Docker skills.

[00:00:20] If you're developing code in PHP and you haven't heard of DDEV or don't know a lot about it, you're going to want to stick around and learn more and see how it works because it's going to save you a ton of time. And for all of you DDEV users, we're going to be talking about some of the history and talk about the future of the project as well.

[00:00:36] I'm Michael Meyers, I'm the Managing Director of Tag1. Tag1 and our teams are very active in contributing to open source projects and communities. In fact, almost all of our client work comes to us because of our contributions and reputations with projects like Drupal. So it's really important to us to support the ecosystems and the tools that we use and rely on.

[00:00:55] We're super proud to be a sponsor of the DDEV project. And I would encourage you to become a [00:01:00] sponsor too, if you're not already. If you like DDEV and use it as a tool day to day. Uh, every little bit helps and counts. Tag1 builds large scale applications with Drupal, as well as many other technologies for Global 500s and leading organizations in every sector, including Google, the New York Times, the White House, the AFL CIO, to name a few.

[00:01:18] If you need help with your large scale application, please email us at I'm really excited to have Randy on the show today. Uh, Randy, welcome to Tag1 Team Talks, and thank you so much for joining us.

[00:01:32] Randy Fay: Oh, it's so great to be with you. Tag1, such a fun bunch of people and always enjoy talking about DDEV too and enjoy talking about Tag1, and enjoy talking about your Tag1 t shirt, which the people listening can see.

[00:01:47] Michael Meyers: So before we get started, I just want to, uh, you know, share a story with you because it really, it touched me, um, in the last few months alone, we've had three different DDEV users reach out to us [00:02:00] via our contact form and thank us, not just thank like profusely thank us for our support and sponsorship with DDEV.

[00:02:06] I don't know if you're like telling these people to do so, um, but you know, over the last 17 years, we've sponsored a lot of open source projects. I can't recall outreach like this before. Um, and so, you know, I hope, you know, I'm sure you know this, but I just wanted to say it. People are super passionate about DDEV.

[00:02:23] They love the work that you're doing. And it really, you know, blew my mind to see that kind of outreach.

[00:02:30] Randy Fay: We do all appreciate your, your sponsorship of DDEV and, and, uh, and it's a, you know, it's a great community. We're working on it all together. So I'm glad that people are telling you about that. And we, you know, we, we at DDEV really appreciate it.

[00:02:45] Thank you.

[00:02:46] Michael Meyers: We were gonna keep doing it anyway, but if that was a tactic to get us to keep doing it, it worked. , um, I think it, it would be really helpful to, to step back a little bit and, and provide a little bit [00:03:00] of history, some context for people. Can you give some insight into, you know, when and why did DDEV come about and, you know, and your involvement?

[00:03:10] How did you get involved?

[00:03:12] Randy Fay: Yeah, it was kind of interesting thing. I went to work. I took a regular job with a company named Drud in like 2016 or something like that. And their goal was to make a Kubernetes based hosting environment. And so, like, I just, you know, tried to understand all the things and I love hosting and I love, you know, All the things about it, but I really didn't, that wasn't my thing.

[00:03:43] What they were doing wasn't my thing. I wasn't really into it, but they had as a piece of it, DDEV. They had an infant DDEV as a piece of it. And for five years, they let me work on DDEV. They, you know, I mean, that kind of [00:04:00] generosity is amazing. You know, like I say, I wasn't really all that thrilled about the other things they were doing, but. They let me do DDEV. And it was, it was a lovely thing. And of course, then they lost their funding. Some of your listeners will remember that. They lost their funding, like many startups do, and they went away. And because it's a great thing to do, I just kept on going with DDEV. And, and maintaining it, uh, it's, I'm, I'm old and money isn't the thing.

[00:04:31] And, and having something really valuable to do is the thing. So I just carried on. And then one day, I don't know, a year and a half later or something like that, um,_ platform. sh_ comes in and says, well, you know, we, we'd really like to sponsor DDEV. And, um, can we give you a salary? And that worked out. And they've been doing that now for two years.

[00:04:55] As a matter of fact, I saw the, the anniversary. So for two years, they've been sponsoring DDEV [00:05:00] at a very high and very appreciated level by paying me a salary, which is amazing. And, and more than that, it, um, It gives, uh, significant credibility to the project. When, I was just flying along saying, well, I'll do it, you know, and, and, uh, we didn't have the financial resources.

[00:05:24] Um, it wasn't as credible to people that DDEV would survive. I knew it would survive. I knew I was on it, but we wanted a long term sustainable approach. And platform. sh stepping up was a real, a real piece of that. So that's, uh, that's another critical part, but we have been just. It, it almost seems like everything we do is just moving along step by step, everything incremental.

[00:05:49] DDEV has been incrementally going for, is it seven years now? Maybe it's coming up on eight. Um, but [00:06:00] yeah, that's the, that's the history. We just move along and find our way.

[00:06:05] Michael Meyers: That's uh, that's amazing. I'm really glad that platform stepped in. They are a really great company to be associated with. And as you said, really drive some of the adoption.

[00:06:18] Um, can you give us a sense of who uses DDEV and like, what is the most common use case? Like what are, what are people doing on a day to day basis with detail as a tool?

[00:06:30] Randy Fay: So DDEV is built and focused on local development. People who, people who are web developers already know this, but people who aren't might not know you can't have two artists working on the same canvas at the same time.

[00:06:47] You know, things just get really messy and things don't work out. Developers used to do that. They used to work like on integration servers and you'd have two people out there changing code at the same time and it wouldn't be [00:07:00] under source control and things like that. And We have at least moved on past that.

[00:07:06] And most developers of websites do their development on their own machine. And that used to be really hard to set up. It was like, I could do it because that's my background. I love Linux and I love, you know, and I could always sling nginx config and PHP config and make it work. But most people, that's not their focus.

[00:07:31] They know more about JavaScript or PHP or whatever it is, and they don't want to know how to configure Nginx and PHP and run it locally on their machine and fix it for different projects. So the whole idea is to be able to have your, your project, your website project, checked out on your machine and use it there and not have to think about that.

[00:07:56] And preferably for your team, who might be using [00:08:00] WSL2 or Linux or Mac or even traditional Windows to be able to do it the same as you do. So everybody using the same thing, the same configuration, even though it's on different operating systems, different environments. The, uh, DDEV is, Currently quite focused on PHP developers, so we have, we'll take a look later, but we have, uh, special integrations for lots of different CMSs and, uh, frameworks, uh, we've branched out to, uh, Helping Python developers and Django, but we don't have a lot of takers there right now.

[00:08:40] But that's what DDEV is, is it's for local development of websites on any platform.

[00:08:48] Michael Meyers: One of the individuals that reached out, I looked them up and they're a Python developer. So. Um, you know, they're, they're definitely passionate about the folks that you have doing it. And I mean, [00:09:00] it really is amazing, right?

[00:09:02] Like, I don't do much development anymore, unfortunately, and, you know, it's a lifesaver to be able to, like, spin something up and get going very quick. Like, I don't have the skills to sling Nginx anymore. And, you know, or the, or the time to dig into it. Um, so it's, it's a time saver. And that, you know, consistency, so you're not introducing problems that you need to solve later.

[00:09:25] Um, you know, that's that's a big part of, like, the whole tool chain is let's find things early and often and have consistency across our environments. So, there's a big gap, you know, for the longest time. In local development, you know, um, and people would always say,

[00:09:42] Randy Fay: well, it works on my machine. What's wrong with yours.

[00:09:47] Michael Meyers: The developer catchphrase.

[00:09:50] Um, so yeah.

[00:09:54] Randy Fay: One of the things that DDEV does, DDEV is built on top of Docker. So, [00:10:00] what is going on is there's little Linux machines in there, and those Linux machines look the same on any platform and any developer's machine. So, your friend down the hall has the, if you, if you've checked in your configuration, which is the normal thing, then your friend down the hall Or down the world or across the world has the exact same little Linux machines running, whether it's on a Mac or windows or arm 64 or AMD, 64 Intel or whatever those machines are the same.

[00:10:36] And that's why it can work. And so the Docker. Is an amazing technology, but it's usually pretty intimidating to people that DDEV doesn't expose that much of what's going on with Docker. We say it's Docker based, but we don't expect people to have to know anything about Docker. They just have to have a Docker provider installed.

[00:10:59] Michael Meyers: Now, if [00:11:00] you happen to be savvy in Docker, is there, you know, can you, can you do more or is it really just about abstracting, you know, the complexity and enable you to get to develop them in, in deployment?

[00:11:12] Randy Fay: Now, people that, people that do want to add services, for example, can do that. We, we also have add-ons, so you don't even have to know that, but, um, there's somebody in the DDEV Discord trying to create a brand new service the other day, um, somebody in the Tag1 Slack wanting to figure out how to, um, use a RAM disk for mounting the, uh, the database on so that it's Just sitting, you know, so that it doesn't have to be written to disk.

[00:11:46] So those are little complexities that people can do all of those things, but the average person doesn't run up against that, at least at first. So with the, with the add-on ecosystem and [00:12:00] everything, we don't have that, that need to really know about Docker.

[00:12:06] Michael Meyers: So why would you say, uh, people adopt DDEV over, Other solutions like what makes it stand out.

[00:12:14] Randy Fay: I think the The biggest thing is the great community means that it's really well maintained So the the community is very very active And lets us know when things go wrong and we're able to get to those things and figure it out As you know all the piece parts are changing all the time. So we've got new upstream components all the time.

[00:12:40] A new version of PHP comes out, a new requirement for a different database version changes, a new release of, you know, of Magento two comes out, that changes how it works, and you have to change this and change that. And because the community is so great and so [00:13:00] engaged in all of that, we're able to keep the maintenance happening on that.

[00:13:05] And, and of course the, the community sponsoring two of us maintainers to be working on it all the time is a, is a fantastic thing. But, uh, aside from it being predictable and maintained. A lot of people really, really like the performance, especially on, uh, on Mac OS, which has always had a, uh, black mark on, uh, Docker with Docker desktop and stuff like that, uh, DDEV implemented, uh, technology.

[00:13:39] An open source technology called mutagen, which is used on Mac OS 2 or 3 years ago with great, great help from the maintainer of mutagen. And that has made a huge difference. So that performance locally is really exceptional. People love the love the performance of DDEV. How [00:14:00] fast the, how fast the, uh, the DDEV instance comes up, but also how responsive the web browser is. Cause it used to be that when you were running something locally on Docker, it was just like, go to a page and wait, wait, wait for it to load. And with mutagen doing all the work under the, under the cover there, it happens, it's really, really fast.

[00:14:26] It can be faster than a, than a real hosting environment. It can be as fast as a, as a Linux local development environment.

[00:14:34] Michael Meyers: That's awesome, because speed really negates having it local, right? You might as well connect to a remote server to do a development like we did back in the day. Um, it's, it's critical and, you know, we at Tag1 certainly appreciate speed in general.

[00:14:49] Um, I'm curious, the, the open source, you know, like the community, you said they're, they're, they're reaching out, they're, they're sharing ideas, uh, problems they run into. Um, are [00:15:00] they, you know, going beyond that is, you know, is there a contribution from the community? Um,

[00:15:04] Randy Fay: Oh, yeah. Yeah, we have contributions and we're totally dependent on them.

[00:15:11] So the, you know, like the Typo3 and Drupal communities have always been there. But Craft CMS adopted, uh, adopted DDEV a couple of years ago. And there's a number of things. Another number of other communities that make sure that things are kept up. So we had a great contribution. There was a major change in Magento 2 recently that needed some effort applied to it and the community brought brought that in.

[00:15:37] We have a couple of a couple of hard hitters on Magento 2 that make sure that that's kept up to date. The, yeah, so people come into the, into our, uh, DDEV discord or into the GitHub issue queue or Stack Overflow. And, um, they say, well, this is, this is what's happening. This is what needs to [00:16:00] happen. This is what's broken.

[00:16:01] This is, you know, so we've, we've got all, all of that, uh, for, for quite a long time, we had, you know, we have, we have deep roots in the Drupal community, but for quite a long time, we had uh, A major contributor to TYPO3 is a major contributor in DDEV and he, he kept things chip shape and TYPO3 community still does.

[00:16:26] But anyway, we, we love that. And I think that's, to me, that's the fundamental thing that makes DDEV fly is the community engagement and making it so that it's, you know, so that it's real, so that it works for them.

[00:16:43] Michael Meyers: Yeah, I think, you know, between what I mentioned earlier with the, The users reaching out and saying thanks for the sponsorship, the companies like platform making big sponsorship, the people using it, like, you know, from every angle, um, the community seems to have, you know, fallen in love [00:17:00] with and want to support the platform.

[00:17:02] And I think that, you know, um, from my experience in open source, the community is the heart of the project, right? Is, is, you know, what, what talks about the health. Of the project and so it's really great to see Um, what about add-ons like is that like another way that that people can contribute or you know?

[00:17:22] Randy Fay: Yeah, so DDEV has a whole add-on ecosystem, which has been maturing over the last couple of years. You used to have to, so if you used, if DDEV provides a web server and a database server, um, it'll do MariaDB or MySQL or PostgreSQL. Out of the box, no problem. All that stuff is built-in and, you know, a bunch of things are built-in there, but as far as like other things like Redis or Solr or, uh, Varnish or those things that people tend to want to add, those aren't built-into DDEV.

[00:17:59] But [00:18:00] there's a community technique for those to be placed in a GitHub repository in an add-on format. And it's really, really easy to create the add-on. And that add-on contains the Docker tidbits or whatever that you need. And then you can just add it with ddev get. So you can just do a ddev get DDEV slash DDEV dash Redis and boom, it's installed and it's going and so that's that's great.

[00:18:29] And we have official ones that have been promoted into the DDEV repository, but anybody can create their own on their own account so they can basically take the template that's out there. The add-on template. And you just click a button, and you build your own, and then when you put the, uh, ddev get, um, label on that, then it shows up in ddev get dash dash list dash dash all.

[00:18:55] So, there's quite an ecosystem of those, and [00:19:00] we probably, it's probably outgrown some of the technology that we have right now you find out about things on the command line with ddev get dash dash list And one of the things that we talked about yesterday, we had our annual full blown review. Our advisory group.

[00:19:19] We have a DDEV Advisory Group from the community and we had our Annual review of the past year and plans for the next year meeting a 2 hour meeting yesterday had 16 or 20 people. It was great. Great feedback. But 1 of the things to come out of that. Was that we probably need to grow up a little bit more and create an add-on registry, probably something on that would show in a little more detail.

[00:19:49] And with a little better, um, access what those add-ons are, because there's a lot of them. And some of them are experiments, you know, that [00:20:00] might have not, might not have succeeded. Some of them have been promoted to fully official. A number of them are really well used, and we need to do better with that.

[00:20:10] Anyway, there's a whole add-on ecosystem. It's not hard. Creating one usually requires a little bit of Docker knowledge, Docker Compose knowledge, or maybe a lot, you know, for something that's really complicated. But there, They're, uh, they're straightforward. They're, uh, they're, it's amazing how nice it is to build one.

[00:20:31] And then they just use GitHub queries to find them, which is pretty nice.

[00:20:37] Michael Meyers: For, for teams that are working together, where everybody has their local DDEV, you know, an infrastructure change is made, you know, and rolled out. Is there a way to propagate that back to everybody's local development line so that everything stays in sync and we don't end up back with what it worked on my machine?

[00:20:57] Randy Fay: Yeah. The, the strategy, the, the standard strategy [00:21:00] is that you check in your .ddev directory, so the .ddev directory is in the top level of the project. And so normally on a team like the project lead or somebody would check in the current approved configuration, or you'd make a, or somebody would make a PR on their project with a change to DDEV.

[00:21:20] So let's say that you're upgrading from PHP 8. 2 to 8. 3. Somebody would make that change in the ddevconfig. yaml file. They would check it in, they'd make a PR on the, on the project, and then that PR would get pulled and everybody would have that same configuration.

[00:21:39] Michael Meyers: Awesome. Um, well, I'd love to shift into a demo and, uh, and show off some of the tool, maybe, you know, common use cases.

[00:21:51] Randy Fay: You bet. Yeah, I'd be happy to do that. Um, what I'm going to do is I'm going to go over to, I'm going to share my screen first. And I'm [00:22:00] going to go over to the DDEV docs. Let's see if I can share properly. Always share. I can only share the whole desktop because otherwise I get confused anyway. So here I am. I am going to go to ddev. readthedocs. io

[00:22:20] and this is where the DDEV docs are and I'm just going to go to the CMS Quickstarts because that's where the usage information is and it's quite easy. Can you see my screen okay?

[00:22:37] Michael Meyers: Yeah, it looks great.

[00:22:38] Randy Fay: Okay, so I'm just going to go to the CMS Quickstarts and you see we have there Quickstarts for Backdrop, CraftCMS, Django, Drupal, Expression Engine, Ibexa, and Laravel, Magento, Moodle, uh, Python, Flask, uh, Shopware, Silverstripe, Statamic, if that's the right way [00:23:00] you say it, And TYPO3 in WordPress.

[00:23:02] So we have quick starts for all of those. I'm just going to take, um, and take a look at Drupal. These are all very similar and the, and most of them are using, or sorry, most of them are using composer, uh, strategies. And so the, the basic ideas of almost all of them are the same, but what we'll do is we'll do a Drupal one.

[00:23:28] Um, And so I am going to just do these, um, these steps right here. So what I'm going to do is create a new directory, and then I'm going to use the ddevconfig command to tell it what the ddev configuration is. Then I'm gonna start the project and then I'm gonna use a composer create a DDEV composer create, which is the same as what you may have used.

[00:23:56] Um, composer Create dash project, uh, DDEV [00:24:00] com DDEV composer create is a just a slight variant on that because you can't use composer create project. in a non empty directory. So DDEV Composer lets you do that. So we're going to do a composer create on Drupal recommended project, then a Composer require drush drush, and then we're going to install it, and then we'll just use it.

[00:24:25] And that's, we'll just do that right quick. So I am going to switch over.

[00:24:31] Michael Meyers: I love that you support Drupal 6 and 7.

[00:24:35] Randy Fay: Yeah, and they, you know, it works fine.

[00:24:38] Michael Meyers: I mean, there's still over half a million Drupal 7 sites, and it's not end of life yet. Um, hundreds of thousands of 6. But that's really great to see, you know, that you're providing this compatibility.

[00:24:51] Randy Fay: Well, remember that people, web developers don't work in a perfect world, and lots of them inherit, and sites [00:25:00] that have been neglected for a long time and need to be resurrected or need to be upgraded and you have to figure out how to run those somehow. So DDEV supports clear back to PHP 5. 6 and with some specialized techniques you can go even farther back than that.

[00:25:16] But yeah, I mean, Drupal 6, a lot of times people say, well, why don't we remove Drupal 6 and 7? Because they're obsolete, or at least Drupal 6, right? And I said, no, because everybody has to be able to recreate these things. So let's see what I can do here. Um, I just want to make sure I don't already have one of these.

[00:25:40] I'm in a CD into a, I'm making a directory called my Drupal 10 site. And now I'm going to do a DDEV config. So what I'm going to do is I'm going to do a DDEV config. And I'm just taking this straight out of the, of this, the Drupal CMS quickstart. And if you can't see, if you can't see my [00:26:00] screen or you're listening to this on audio, I'm going to do a DDEV config dash dash project type equals Drupal 10 dash dot docroot equals web dash dash create docroot.

[00:26:10] Um, and there I am, and I have now done a DDEV configuration. If I do a ls - la, we'll see that we have a DDEV directory now. So the DDEV directory contains the configuration. Now I'm going to do a DDEV start. Which builds the, builds the containers and projects that I need and brings them up. So it's going to bring up nginx by default, and it's got phpFPM coming up behind that.

[00:26:41] And it's got, we're not doing anything special, but, and then we've got a router that takes the, uh, the host name, my Drupal 10 site. And sends it to the right project. So,

[00:26:55] Michael Meyers: Oh wow, it configures it right in your browser. This is like, I mean, literally you just cut and paste and you're up and running. [00:27:00] This is crazy.

[00:27:00] Randy Fay: That's, that's exactly right. So now I'm going to do a DDEV Composer create Drupal recommended project. And it's going to put Drupal 10. 2. 4 in there right away. Um, there we have got the, the Composer install is, almost done. We're just waiting for it to copy the last bit in. And then we'll put, uh, Drush in, because what is Drupal without Drush anyway?

[00:27:27] And we're stopping and starting to make sure that the, that the, all the things point to the right things inside everything. So, and now I'm going to do a DDEV Composer require in a half a second here. DDEV Composer, Require Drush Drush.

[00:27:49] And now Dush is installed inside there. And I'll just do the DDEV Drush SI dash y [00:28:00] demo umami uh dash dash account pass equals admin so that I can know how to log in and Drush will install that for us. And then we'll have a, a working Drupal system as soon as that's done. So this is, this is basically all that it takes.

[00:28:22] In the, um, in the quick start, it would say that I should do a drush, uh, ddev drush uli now. I don't usually do that, but we'll do it here. Um, and that shows us the link. You see that it's got the proper link and everything. And I'll just click that link and open it up. And here is our project. And we're logged in as admin.

[00:28:50] And we can go and look at our Umami site. And it's got everything that we would have wanted in there. So that's. That's, that's [00:29:00] how a quick start works, and that's how it works for the other ones. And this is a fully functional, well, I mean, it's a fully functional demo site. But that's all that we had to do, and it used standard Composer techniques.

[00:29:12] And, uh, there it is running, and it's all configured properly. We can go to the reports, and hopefully we'll get a status report. That says everything is okay. It's got warnings, but these warnings are about. Oh, you're running this in a development type mode. So that's the, that's the scoop. Anything else you'd like to see there?

[00:29:31] Michael Meyers: Uh, should we name it the super quick start guide? I mean, it's been like 90 seconds. Um, and you're up and running with a full install. That's that's pretty awesome. Um, someone on our management team is very technical. But, you know, the ease of, of DDEV, uh, this past weekend, we were talking about workspaces, which Andrei Mateescu on our team developed, and he wanted to check it out because it sounded so cool and, you know.

[00:29:59] To be able [00:30:00] to spin up DDEV in a few minutes, install the module, you know, get it up and running, you know, it, it makes it so easy to just try things, right? Oh, I heard this module is cool. I want to experiment with this or, you know, it, it really empowers, you know, I'm not like the core use case per DDEV, you know, but, um, it, it enables me to do things that I just wouldn't do otherwise, um, because of that ease of use and that functionality.

[00:30:25] So. I wonder how many, I'm sure the people who use it as developers have a similar need at times too, but I always wonder, like, how many people are using it in the way that I am. Just quickly spin it up and try something.

[00:30:36] Randy Fay: You bet, yeah, that's a great use. And, and you've, you, you've never got anything to lose.

[00:30:41] And DDEV has a, a lovely, Um, a lovely feature called snapshot where it can make a binary representation, a snapshot of the database so you can actually do DDEV snapshot before you go do something weird and then go right back to it with a DDEV snapshot [00:31:00] restore and there you are. And that that's a great thing for migrations.

[00:31:04] It's a great thing for experimentation. Super easy to use some people don't even, you know, like there's so many features in something that's grown up all these years that nobody knows about all the features. And so sometimes people don't know about them. I should put the snapshot feature into the tip of the day.

[00:31:22] We have a tip of the day when you run DDEV start the 1st time in 24 hours and I should make sure that snapshots in there.

[00:31:31] Michael Meyers: I love it. Um, it's brilliant. Like, it makes it on 1 hand, it makes it super easy up and running, but. On the other hand, there's no end to the complexity that you can do with it in the custom configuration.

[00:31:41] And so it really, you know, wherever you are on the spectrum and, or, you know, your path from one end to the other. Um, it's, it's a really fantastic tool. Um, you know, given all that it does, you know, what is your, what does your roadmap look like? Like, what are the things that you're [00:32:00] focusing on over the next year?

[00:32:02] Randy Fay: Yeah, so we, that was, that was yesterday's meeting and you can go out to the DDEV discussions and you'll see the whole recording of yesterday's meeting for the annual planning meeting and all that kind of thing. But the much of DDEV is focused on, well, let me just, yeah, I don't want to go into too much detail, but the biggest things in our roadmap have to do with community, uh, uh, sustainability, and then some technical things.

[00:32:32] So, as far as community, we want to continue training maintainer, training contributors and maintainers, and make sure that everybody can contribute. And that they're successful contributing and that we provide all the materials for them. We try to document everything, but we have last year we did, I don't know, 10 or 12 or 15 weekly sessions, which were live and recorded training about contribution and maintenance [00:33:00] things.

[00:33:00] And we're going to start that up again this year and make sure that those are recorded and make sure that we, you know, document the things that go in there. Making sure that our community stays sustainable and our community is the 1st priority. Then the 2nd thing is the sustainability. We've been working on, um, making sure that the project is financially sustainable.

[00:33:27] We spent a lot of work on it last year, reaching out to potential sponsors, reaching out to individuals and our our support level is definitely up and we have a second paid maintainer, which is a, which is a great thing. Those are great, but we need to keep on that and our goals are much higher than our, than our current.

[00:33:50] So sustainability and just making sure that all those things are properly set is the second thing. And then the third thing on the technical, [00:34:00] we have a proposal to consider breaking up some of our images into multiple images. So right now we have a, this is kind of off in the weeds, but we have a, we have a web, uh, image which contains both NGINX and PHP and a lot of other things.

[00:34:21] And those could be separate images and containers. And so considering how to break that up and make it more modular is a, is a. It's on the table for this year. It's on the table. We will experiment with it. So those are, but those are kind of the three main for us. Most of DDEF's history feels very incremental.

[00:34:43] Just keeping up, just helping people out, just solving bugs, just making sure that people can do what they do. And so I expect that this year will feel mostly incremental, but we want to, we want to remember those key things that we need to grow [00:35:00] in.

[00:35:00] Michael Meyers: I love the priorities, you know, in line with everything we've talked about, community, sustainability, drives technology, uh, that seems like a really good foundation to have in place.

[00:35:12] Without those two, there is no technology, so that's really great. Randy, this was awesome. I really enjoyed, uh, chatting about this. Um, you know, it's no wonder why DDEV has gained, you know, uh, an awesome reputation and is so popular. I hope folks listening and watching, uh, you know, that aren't using it are going to check it out.

[00:35:35] Thank you again for joining us. Uh, you know, we'll post, uh, links in the, uh, show notes so you can check out the various things that Randy talked about. If you like the talk, please remember to upvote, subscribe, share it out.

[00:35:48] Uh, you can check out our past Tag1 TeamTalks at TTT, that's three T's for Tag1 TeamTalks.

[00:35:57] Uh, and as always, we'd love your feedback, suggestions, and [00:36:00] topics, for future episodes. Maybe there's something you want to see Randy dive into in more detail, show off the add-ons. Uh, you can email us at TTT at tag1. com, that's T A G, the number one, dot com. Again, uh, thank you, Randy, and to everybody who tuned in.

[00:36:16] Uh, really appreciate it. See you soon. Great to see you. Thanks.