DDEV is a Docker-based local development environment tool designed to help web developers work on projects locally without conflicts. It allows each project to have its own configured environment (e.g., specific PHP, MySQL, or Node.js versions), which is especially useful for teams to avoid setup issues and for individuals managing multiple projects or computers. While its roots are in PHP and Drupal, DDEV now supports technologies like Node.js and aims to expand further. It simplifies using Docker by handling complex tasks like HTTPS certificates and site routing automatically, making it accessible even to those unfamiliar with Docker. The tool emphasizes flexibility and community contribution, with features driven by developer needs. Randy Fay, the maintainer, works on it full-time with support from Platform.sh, ensuring ongoing development and support across operating systems.
Speaker 1
Welcome to devmode dot f m--.
A podcast, dedicated to the tools techniques and Technologies used in modern web development.
I'm Andrew Welch from NY Studio, 107.
I'm Ben Croaker from put your lights on.
I'm Ryan Ireland from Craft Quest at I/O and I'm at Stein from Bend Oregon.
And today we have on special guest.
Randy Fay the author and maintainer of deed of how you doing.
Randy,
Speaker 2
I am doing good plea, great to be here with you.
Speaker 1
So I'm real pleased that you're able to come on with us today and talk to us a little A bit about deed of, I got a scenario for you.
If you're out at a nightclub in Cancun, Mexico and you're starting to get into a fight with a guy because he's harassing your girlfriend, he's got, you pinned to the ground and then behind you, you see your huge friend named Nutter, walk up.
He's a big Neanderthal, looking guy, and he whispers in your ear, I'll help you.
If you tell me what D Dev is, what would you say
Speaker 2
to him?
You know, I've been working on that for years.
So as you can imagine, I have lots of friends who think it's just all magic.
But what I say Is that web developers people that work on the websites, that everybody uses every day.
They need to have a way to work on their website and the preferable way that they like to work on that website is on their own computer where they don't have to compete with anybody else or mess up.
Anybody else's code or database or anything else that somebody else is doing on the website.
So
Speaker 1
he's got his knee on your sternum.
You're starting to lose
Speaker 2
Consciousness.
Yeah.
So it helps people do that.
So that's what deed of is is it?
It's a way for people to do that.
It's a
Speaker 1
way for us to work on projects locally.
Is there any specific type of project like is it would it be something that I would use for node development?
Or is it geared towards anything in
Speaker 2
particular will DDS, history is in the PHP world.
So, it came out of the PHP world.
And so, traditionally, it would have been nginx or Apache with PHP.
But these days were trying to support the node world and the node support gets better all the time.
Time and we'd like to support Django and python world, that's done the roadmap but I'm in deep history in the PHP world.
Really deep history in the Drupal world typo3 came on later than that, always tried to support WordPress but we're sure happy to have the crafts EMS, folks come along for the ride.
That's great too, but really deep roots in the PHP world, and lots of people with lots of different pH p-- backgrounds, use data for their local development.
Speaker 1
Now why Even need a local development environment.
Why don't I just YOLO it and install nginx install MySQL installed postgres.
Why don't I just do that?
Like what advantages does a local Dev environment.
Give
Speaker 2
us with what you just described.
You were creating a local development environment and there's nothing wrong with what you just described.
So for people who know how to configure nginx and fpm and everything else, there's nothing wrong with that at all.
All, why would you want to use deductive or a tool?
Like it, I'm one of those people that used to just slinging around, nginx configs and PHP configs and do it all on my own computer.
And when I first came along, when deed of was in its infancy, I thought it was kind of silly.
Like, why would I use this Docker stuff when I could just run this stuff on my machine?
Well, I eventually started realizing that my different projects might have different requirements and one might want to run Apache and The one nginx another one PHP back.
Then it was probably five point six and seven point o--, or something like that, different pH p-- versions, different MySQL or mariadb versions.
And now with deed of the place where I started seeing the value early on was that you can have all these different projects with different configuration and your team has it all checked.
In the biggest thing about using a standard tool like deed of is normally a team lead spends all day.
All their time, fixing the junior developers development environment, right?
Because they don't know how they don't know what to do.
And so now with deed of with or tool like DW check in the config, it's different for every project they bring it up and they've already got it configured so that's huge.
So just having the different projects with different configuration and having that checked in those are the big things about using deductive or tool like it as compared to slinging nginx like you were saying.
Speaker 1
Yeah.
And the other thing that You can sometimes run into is in addition to what you were saying about the environment being wrapped around the project so you can have different environments for different projects is that if something goes wrong if you just install stuff locally, then everything is down and nothing works.
You're going to spend the next day rebuilding, your whole computer before you can do
Speaker 2
anything.
Rebuilding it for you jr.
Deaf, you know,
Speaker 1
right?
So, yeah, and that's no fun.
Like no, nobody likes doing that, it's not fun, having to reinstall all this stuff and having downtime I'm just because you can't run the thing.
You know that's just a that's not a great
Speaker 2
thing and it's really different for different people.
Some of us like doing that stuff and a lot of us really want to get on with their web development.
Speaker 1
Yeah, I call it may do work, its work that you have to do before you can do the actual work where you bring the value.
I personally don't mind doing devops tough but if I'm trying to do something else for a client, that's right.
I really don't want to do all that garbage before I can get up and running and do it and what am I going to do?
Am I going to build them for the six hours?
I spent Installing stuff on my computer.
Yeah,
Speaker 2
you know, because I maintain deed of and have to support it in.
Lots of different environments.
I switch around between computers all the time.
Yeah.
And I don't ever care because it's just deed of its checked in deed of works the same on Windows as it does on WSL to and Linux and mac and M1 or amd64, it works the same everywhere.
So when I move between computers, the only thing that disoriented me is the keyboard.
And other than that, I'm
Speaker 1
fine.
Yeah.
And some people will say to themselves.
Well, maybe something like, d Dev, makes sense if I'm on a team environment, but it's just me working on my own, but you raise a really good point that you are not really on your own.
You may work on multiple computers.
You may hire a subcontractor.
You may have older projects that run older versions of whatever and you don't want to have to try and reinstall everything just to run it.
So I think it's fantastic that it kind of shrink wraps the devops along with the project now Right.
In order to do that, my understanding is that it runs on top of this thing called Docker.
Why don't we just use Docker directly?
If that's what it's using?
Why don't we just use Docker?
Speaker 2
Well, that's totally legitimate technique.
Lots of people don't know what Docker is exactly.
Yeah.
But I like to explain to people that Docker is a way to run a bunch of little computers on your computer.
So you're essentially for web developers.
That means running a whole bunch of little Linux computers, that are configured in a consistent way on your computer.
So the web server / and the DB server are little custom.
Configured Linux computers running on your computer in a controlled environment and you can lots of teams want to do that.
They will get their own thing together and throw it together and then maintain it.
And there's nothing wrong with that if it meets their needs and somebody's willing to maintain it, it's that whole problem again.
Is who's going to maintain it?
Somebody's got to maintain it.
The person that made it is the one that's going to have to maintain it and Project has a new requirement, they're going to have to go Implement that in their environment whereas deed of is always moving along, always has support for new things and in general it has the capabilities for you to customize everything using standard features instead of custom rolled features.
So it just goes back to who's maintaining it.
And how is it standardized?
All of these techniques are legitimate.
The only thing that's not legitimate is working on the server as a whole team together.
Whether that's not legitimate.
Yeah,
Speaker 1
a local Dev environment is essentially replicating production so that you can work on the thing.
If you're installing everything directly on your computer, then you have a monolithic environment, you have one environment that has all this stuff and it may or may not match production, and it certainly is a going to match across projects using Docker.
Lets you effectively have a little mini MySQL service and this one could be version 8 and this one could be version 5.7 and you could have a little mini computer.
Peter that's running nginx and a little, another little one in that's running Apache and specific versions of them that are then tied to that particular project.
Randy you're talking about maintaining your the maintainer of D deaf now.
Can you talk about how it came about?
Are you the Creator?
Was it other individuals involved.
Yeah, what's the origin story of the tool?
Speaker 2
It's a great question.
I went to work for a company named Rudd in 2016 or something like that and they wanted to be a hosting company.
Company.
They wanted to be a hosting company using kubernetes, but they had this local development Docker based thing that was part of their big picture.
They wanted local development to be part of the hosting environment.
It first, I thought, well, why would I do that?
Because I already know how to sling this stuff.
And it was a little at the time, it was a little slower than slinging it yourself and it didn't have the database separate it.
You know, it was very young, it was very young.
Well, I like Did and it was actually the only thing that I really like that they were working on and it became mine, right?
So within a year, it was mine and I just and they very kindly supported the open-source support of that for the next four years before they lost their funding, which was a year and a half ago or something like that.
And so I've been maintaining it since it was very, very young but I definitely didn't create.
Speaker 1
It was a stray kitten.
Then you put out the saucer of milk and then brought it in your house, right?
Speaker 2
Yeah, I definitely got the kitten now
Speaker 1
so Randy when you started working on it I'm thinking of things.
Like if you read up on the history of get Version Control, how it was really, just originally a set of scripts that help them do the things they wanted to do as they're working on the Linux kernel.
But did this start out with a vision of what it is right now or was it just a set of scripts that spun up and built the containers
Speaker 2
the way you want?
It was really just a little bit of Docker compose and it was Drupal focused.
No, there wasn't a vision behind it.
It was an add-on to the hosting because these people were web developers that were working on this hosting environment.
They were thinking development as they did the other stuff, and that was cool.
But that's where it came from.
But it was very young, the question.
Speaker 1
So, someone recently said to me, well, the D it, the first D&D Dev probably stands for Drupal and I thought, well, maybe makes sense.
Because drug that the company might be Drupal Dev, but then I thought, well, maybe it stands for docker.
Because D Dev is Docker based, but then I realized, well, you even, provide alternatives to Docker.
So, is it
Speaker 2
Docker that underpins the whole thing, or it is actually Docker that underpins deed of, but Docker and many different places.
You don't have to have dr.
Desktop anymore on Mac.
You can use Colima, or you can use Docker desktop.
So there's many ways to do it but in all those cases, it's currently using Docker meaning the docker open source.
To do its work.
I see.
Even
Speaker 1
these Docker alternatives are simply Docker desktop
Speaker 2
Alternatives there.
Docker rappers of different kinds.
Yeah.
So Kalima is the way we use it.
It's a Docker wrapper.
It's not the only way that it could be used, but yeah, the way we're using everything right now is as Docker rappers, but you don't have to have the closed-source rapper called Docker desktop to use.
Speaker 1
Deductive, and is that there there by where the name came from?
It does indeed, Of have to do without you dunker.
Or
Speaker 2
yeah, now, you make it hard with Dido was the deeper drug was, what came from Docker was the deeper Drupal?
I would have guessed Docker but now that you've now that you got it on Lost.
Yeah, I
Speaker 1
don't wait, Randy, wait a minute, you don't argue.
Don't know the already on this.
You can just make something up now.
Yeah, you'll stick it, right?
Speaker 2
Yeah, yeah, we definitely Docker.
Oh
Speaker 1
yeah.
All right, let's go ahead, duck.
Well, edit it to use the last.
There we go.
You're gonna drop a bomb to say?
No, it really stands for Diamond because that was the first cat or something
Speaker 2
like the.
All right, there you
Speaker 1
go.
But Docker is really what makes it all work?
Like magic, the way it does right?
That it's so portable and you can use it on any platform and take it anywhere with you or send it to your
Speaker 2
team.
Doctor is the way that it is that portable and that it is that consistent across all these different operating systems.
One way to look at deed of is just a Docker wrapper, Docker compose wrapper, you can look At that.
But oh my goodness.
There's a lot of years and a lot of code to make it work the way it does.
So it isn't, it isn't just a rapper.
But technically, it's technology is it's a rapper on Docker compose.
Speaker 1
I think what I would say in terms of the advantages that deed of offers you over Docker.
In addition to what you said, I think the three main ones that I would think of is number one, you do not have to learn Docker, you can have something that will just get you up and running.
And again you don't want to be the maid of work.
Great.
You can get all of the wonderful features of Docker without having to learn all of the wonderful guts and internals the second one I would say is that it offers you a way to name and Route sites, pretty transparently.
Yes, you can do that in Docker but it takes another layer of stuff in order to be able to do it.
Whereas now you can just have my sights .dw site and the third one I would say is that it takes care of the HTTP for you.
You don't have to worry about certificates like all of that kind of those are the big three that if I'm talking to Somebody and they're asking me, well, you know, should I just learn Docker or should?
I learn deed of those are the big three that I list in terms of advantages that you get from deed of right out of the box.
I mean, what do you think?
One of the things I appreciate about it too though.
Just to pile on a know you weren't asking me is that it's like training wheels for Docker, where somebody smarter, than me, figured out how to, hey, handy figured out how to get
Speaker 2
me working with my sights, but there is Docker compose in.
There is stuff, I can dive into without forgetting all the docker commands, and I can kind of wade into Docker based on something that's already.
Set up for me so I can completely ignore it or I can kind of use that as an Avenue to peek under the hood and see what's
Speaker 1
going on with Docker compose.
And, and the whole, the way they everything set
Speaker 2
up, I really, really want people not to have to think about what doctor is to be able to use deductive.
And I'm pretty sure that you can get a long ways down the line without understanding Docker or anything else, and I think a lot of people do so, yeah, that's definitely a goal.
But yes, you can go beyond that and you can start to I add features that aren't innately part of deed of that are easy to extend using Docker, Docker compose and in other Technologies.
Speaker 1
And that's you know, one of the things that I really appreciate about deed of is that I've seen other local development environments, whether they're Docker based or not that you sort of get what you get and that's what's there.
And D Dev is just as easy to get up and running, but it doesn't make as many assumptions about it.
If you really do want to use this custom Docker, container great, go ahead.
You can do it.
That's one of the That I think is fantastic about the design and architecture of D Dev is that it's super flexible.
You can get up and running really quickly out of the box but it's also super flexible when you need to get outside of that box in terms of what you need to do.
And it's very clear to me that this was written by people that are actually in the trenches doing the work and have run into all of these problems and the snow the right way to architect,
Speaker 2
it's the community that has made deed of what it is.
The reality is nobody knows how to make.
Make something that is what will be useful to people just out of the box but the community's been contributing to this for years so he'd have doesn't have perfect code or anything like that.
It has code that's like anything that's been around for a few years it has compromises that were made at some point and that you kind of Might wish they hadn't been you know like anything else but do you have has the community talking all the time.
And so every feature indeed of is something that Community ran up against and It and that's why it's there.
And so as a community continues to contribute and ask and make code contributions or docks contributions or all the other things that you can do, that's what makes deed of what it is, is I think that the community making that
Speaker 1
happen.
Yeah.
That it's very apparent in the way it works.
And what can sometimes happen is whether it's a local Dev environment or something else.
You can have a group of people that are speaking and writing the thing, but they don't actually do what these other people are.
Are going to do with the product and it is analogous to.
Let's say you're a vegetarian and you adopt a cat for the first time and you're like, oh great, I'll make the cat dinner and you Dice up some some parsley, you throw a little eggplant, maybe a little avocado and you put it in front of the cat and the cat sniffs it and the cat looks at you like what the hell is this?
And I've seen some projects like that, where the development team isn't in touch with the people that are actually going to use it and you end up with something that it may be well done but it's not what they need.
And that's what the community contributions from deed of.
I think make it really clear that it's people that are doing the thing that helped to influence what is going on with it which I love it.
I love that part of it Randy.
I'm used to seeing you as a guy
Speaker 2
and get Hub with the having
Speaker 1
a great time.
Straw Hat
Speaker 2
responds within 30 seconds to any issue that ever
Speaker 1
comes up.
How much time do you actually spend like day-to-day is is DW full-time?
Love, or how much, how much time do you spend actually maintaining?
Speaker 2
Yeah.
Do you have is my full-time thing?
And these days I actually get paid for it, which is amazing and generous of platform.sh to started sponsoring me to maintain the project.
A my aim is to spend about 30 hours a week and you you know from experience that I don't but I love working on it and that's why I'm there all the time and I love I just love doing something useful that helps people do what they want to do and then make some happy.
It makes me happy to do that.
And that's probably the amount of time that I spend supporting people is.
It might be unsustainable for the future but it's how I learn what people experience, right?
And it's so valuable.
I just, I love and it and it makes me feel valuable, right?
Because I can help them and be deaf can help them.
So, I love that whether it's sustainable or not is an important question.
And one that we're always talking about in the deed of by Zuri Group, which is next week on Wednesday and everybody's welcome that, you know, figuring out a long-term Term future for deed of that isn't just me, is a fundamental thing that we want to think about and work on, and make sure that it has a life that is see on me.
Speaker 1
So Randy, when you say community, are you referring to the users of deductive and perhaps people are contributing to or is there something more formal, you mentioned?
A an advisory meeting or something.
So what do you specifically referring to when you talk about
Speaker 2
Community?
Yeah.
When I say community, I'm talking about all the people that use And raise their hand and talk and contribute or ask or create issues, or create bugs or whatever that they do, the people that are using in needing deed of and that kind of thing.
So that's what I mean by the community, we have an Advisory Group and a budget group The Advisory Group meets every second month.
And it's next Wednesday.
It's the first Wednesday of the month we meet and everybody's welcome to that.
It's fairly informal but it as you'd expect the people that show up are the people that Are the most and so getting their view of what should be and is, is really important and the budget group is intended to help guide the financial future of the thing.
So
Speaker 1
so I've perhaps a related question to that because everyone else or everyone here on this podcast is involved in or has been involved in sorry, Matt crafts EMS and it seems the DDF can be used for PHP projects but also for various content management
Speaker 2
Systems you?
So we've heard WordPress.
Speaker 1
Drupal and where?
Most of us here are somehow involved in craft CMS.
And there was recently a PR that you accepted to add a command to D Dev which allows you to run craft console commands.
So when you're meeting with this Advisory Group, or when you're thinking about, what kind of PR is to accept, how are you making those decisions?
How are you balancing?
Keeping the core lean and relevant.
As you know, people coming by and saying, oh, I have Jolly CMS and I'd like to add a jolly command, you know, as for me and my friends, how are you differentiating between those kinds of
Speaker 2
requests and making decisions?
So that's a great question.
The fundamental thing is I try to understand what's the most useful to the most people.
And what can be done in a generic way as opposed to a specific code way.
So in general if you come and ask can we add this package to the web container?
Say no because we've got a feature that you just put it in the config.
Dot Jama land.
That adds it in for you sometimes the answer is yes but mostly it's how can we solve this in a generic way?
In the exact case that you're talking about the adding the craft command?
Normally, the craft command would be hidden and only shown to people running crafts.
So for example drush which is the Drupal equivalent only shows up for people running Drupal and backdrop.
We just don't have That yet for craft.
And that's one of the fundamental reasons that I'm hoping that we get a project type for craft.
I'm well aware that craft folks feel.
They don't need it because they've always used deed of and it worked fine and they didn't need it, but it would hide that craft command from other people and it would allow us to do things like specifying the uploader the user generated files directory automatically or near automatically based on the project type as it does for the other.
Types.
So I'd probably open source communities have a lot of different models for how they're set up, and some of them have a lot of trouble, making decisions.
Some of them have are small and have what you would call a benevolent dictator.
Some of them have no governance idea at all and essentially deed of is a benevolent dictatorship and I'm the dictator and I really like to listen to what people want need.
So People that make a good case for things and other people agree with them.
It will get into deed of.
Also people who make PR's that solve a problem that scratches their itch.
He usually gets in, there's probably a counterexample or two, but in general, if they're scratching their own Niche and it's a reasonable itch and they take the effort to do it, it gets in.
Speaker 1
So it sounds like in this case, perhaps it was a stepping stone, adding a the craft command, with a stepping stone to getting a craft project type which, which would help too.
Keep the PHP project type more
Speaker 2
generic in the veterans attended to be.
Yep.
Speaker 1
Yeah I was actually going to ask you about that because I go to the quick start guide and it says check out the the quick starts for cms's, if you're using one and I'm looking at it and I don't see one for craft CMS is that something that you're planning to
Speaker 2
add, I'm hoping that somebody from the craft Community will do a PR for it.
Speaker 1
Yeah.
So you see, you are open to a
Speaker 2
PR.
Oh no.
It that mean that's just a duck's PR that's all we need.
Is just Just somebody to go and edit that page and add that and I would very much like
Speaker 1
that.
So we do it early just documentation that needs to be
Speaker 2
PR the QuickStart.
Sorry.
Yeah.
All right now.
Yeah, that's it.
You go.
Click the little pencil on the quick start page, edit it.
Yeah,
Speaker 1
if only we knew someone that did documentation for crafts.
EMS, what's going on?
Matt, I'm looking at you, man.
Well, I have some awkward news for you.
You have a lot of time in your hands.
Don't you met?
I was going to ask.
If you
Speaker 2
were Randy a few were prepping, another benevolent dictator, and you were here, you're getting them ready to take the reins of deed of power.
What are the things that they would need to know?
What are the things that would not immediately be obvious about maintaining a project
Speaker 1
like this?
Is it a Game of Thrones kind of succession thing that it's going to be your first born are?
Or is it going to be whoever wins in battle or what's the
Speaker 2
deal?
One of the one of the the bus factor for the deed of project is a fundamental problem.
And there's So much to know that, I mean, Way, Beyond the code the code comes in.
Many varieties.
Go is probably the biggest piece and that's not usually familiar to web developers.
And so it's a stretch there, but we have a whole testing system.
Every PR gets every push gets tested on Mac M1 on Mac and he's 64 it gets tested on.
Linux it gets tested on Linux arm 64, it gets tested on Windows and WSL to And keeping all those test Runners happy and running is a big deal and you can imagine it.
Would it take a lot to teach that?
Then there are the questions about just access to, how would somebody figure out how to have access to the systems that they need access to?
So one of my jobs for today because I'm trying to get ready for the meeting.
Next week is to try to get the secrets that somebody would need if I get hit by a bus into a Place where they would know where they are.
And of course, it's not just that, it's how do they know what Secrets they need and how would they know how to use them?
And how would they know how to get them?
And how would whoever was taking the lead on it?
Know who to go to that?
Had the power to do what needed to be done.
And that's something that if you had a larger organization, you would hope that some of that would have already been sorted out.
Of course, we all know many larger organizations where that is not at all sorted out and that they have the same problem.
But I had the luxury of an up-and-coming assistant dictator, which I would love to have and by the way, he does have opportunities.
For at this time, our budget capabilities are not huge, but we have some money in the bank and I would absolutely love to find somebody who had some time to spend to paid time to spend on the test subsystem, for example, or on the tests themselves, I have a whole set of things that I think, or, or on maintaining the D dub, get add-ons and learning how to maintain those.
So there are options like that but if I had an actual somebody that would come along and learn how to maintain things, and make decisions, I would probably start with the whole test Runner subsystem and the tests themselves, then of course, learning all the weird things that one doesn't know.
That one is the only one that knows about the code and why it is what it is.
Speaker 1
It sounds like finding someone and getting them and giving them gradual access.
Sand would make sense and I'm going to offer you Matt Stein.
He is not a fury.
One
Speaker 2
is right there,
Speaker 1
he's not a pureblood but he is willing to try and become the hand of the king if that's something that you would be interested in doing.
And I am just going to just, like, in medieval times, I'm just gonna give him to you.
Speaker 2
Wow, that is so great.
That's very sweet.
I'd like to point out the hand of the king always
Speaker 1
dies.
Murdered.
So,
Speaker 2
but know, the basic issue is huge and important and taken seriously.
We by me and by The Advisory Group and that but it's not easy with a small budget, to figure out how to well, a small budget and a small organization.
Because I'd have to figure out how to I know I've done this before.
So I do know how to pay people in different parts of the world.
I know how to pull that off, but I have to entice somebody to do it within the existing budget.
Constraints, you know, I know perfectly well, that there are many organizations using D dub who, if they were pushed A little harder than they have been would contribute in a significant way and that that could be done but I'm really busy supporting the community and maintain and but I know that that it would be a valuable thing to do.
I am actually as, you know, platform.sh the hosting company just stepped in of their own volition and decided to sponsor the project by paying me a salary.
This was in March, I think or February or something and it was a great Great.
Great thing and I actually am floating proposals to have them, put some management time in and maybe some documentation and marketing time in.
So I'm floating proposals on that because that's an obvious way but of course that's almost unfair.
Hey, you're giving a lot.
So shouldn't you give more?
It's a there's a little little trouble with that idea.
Speaker 1
Yeah, it sounds like so many companies and then even more than that, so many individuals rely on need of that.
If you did kind of rattle, the couple little bit, you would get that, you would be able to get additional contributions, but moreover, getting some other people involved to help ease your burden.
And then also help with the succession type of thing would be a pretty nice thing to do, and I'm glad to hear that you are on track doing
Speaker 2
that, but we do have a fun day technique.
That works fine and it GitHub sponsors.
And if you go to the deed of page on GitHub, github.com Drug D dub, which is where the center of things is you'll see the ability to To sponsor there.
And we do have sponsorships somewhere in the range of 15 or 1600 dollars a month, which is great.
It's not enough to pay a developer's salary at current, you know, but it's wonderful and it's covered.
Our infrastructure costs very nicely and it's growing a pot in the bank, which can help that can really help if we get somebody who's willing to spend a month or two months, well, we can do that for sure.
So that's good.
Speaker 1
So it doesn't put up nag notices saying, please, contribute and Doesn't kill off your containers randomly to, you know, holding them hostage for donations.
It doesn't do
Speaker 2
anything like that.
We don't even have a mention of it, indeed of itself.
Yeah, just on the, on the GitHub page,
Speaker 1
so, yeah, I'm obviously, I'm joking about the, the notices and killing off containers, but putting a mention of it.
Indeed, of itself might not be a bad idea.
I mean, it's something that I honestly didn't know about, until you mentioned it, but I would be perfectly willing to contribute.
I'm not going to, no, I'm not gonna do no 1500.
Okay.
But I would definitely contribute something if I knew that it was
Speaker 2
there, you know, that's a good idea.
And I don't know whether you've seen this before, but there is a deed of there's an upgrade available thing and if you I mean it could be done at the same time as that there's an upgraded available thing.
Oh and by the way you can sponsor deed of here and that wouldn't be.
It's a good idea.
Speaker 1
I think the documentation could be a decent place for it to, you know, nothing outrageous but just a nice little Banner just because of how much people will refer to the documentation.
Speaker 2
Yeah, I'm not sure that's in the documentation, that's a good point.
I'm not sure that there's a reference to
Speaker 1
that and people doing updates may or may not be the same people that are using it and just, you know, I think documentation might make sense potentially to
Speaker 2
it's a good idea
Speaker 1
but we got Ryan and here in his blood sugar's a little bit low because he hasn't eaten his daily avocado.
But I know that he has done a number of training videos using D deaf and I just want to see what your experience was like doing that because you had to kind of go in there and Figure out D.
Dev is something you hadn't used before and what that experience was.
Like, and if you had any questions for Randy, well, I was just pulling up the docks and it seems like the docks were just redone.
Maybe over the summer.
Is that right, Randy?
Yeah,
Speaker 2
yeah, yeah.
So yeah,
Speaker 1
that's my first thing because I when I originally written the videos that I did, it was using the old docks.
So this is, this is amazing.
I think.
So, my biggest takeaway from digging into D Dev is that it seemed to really prioritize the Developers Audience.
Like, it seems like that was what it was all set up for us.
They're sort of Rise Above.
What, everybody is scared of and underneath with Docker and get to the stuff that's easier to use.
But one place that I've that I ran into, and that I know I've had people email email me about, and perhaps this is where a lot of your support questions.
Come from, is the dev on windows with WSL to is that an area that's rough for people or or is it just may be me because I don't live in the window space they
Speaker 2
today?
Yes o WS L 2 is an amazing way to use data.
Of and it's an amazing feature of windows.
It's supported by all existing supported versions of windows but it's basically being able to run Linux inside windows and that lets us run D, Devon side windows.
So it's running deed of a nap, far more native world did have comes from Mac or Linux and nwsl to it's in Mac or Linux.
We've all we've supported Windows traditional windows for years but it's slow mostly because The file system and it's a little awkward but I have to say a lot of people like it there, but I'm always trying to get them to go to WSL to.
So, what are the frictions with WSL to there are probably two or three of them?
One is that it's often Windows people coming into a Linux world, all of a sudden and, you know, on Windows you don't you're not used to the command line in the first place and you're certainly not used to all the things that Linux has available to you and it's just It's a different world.
So that's a bit of friction.
A second issue, is the networking issue with Windows.
They did this amazing thing on windows with WSL to where all the ports and all the networking are shared.
And even shared among more than one WSL to distro, well, it's a, it's a feat of Mastery that they could do that, but it adds complexity and so people may have trouble with something on the window side.
Occupying Port 80 or for 44-43, for example, or they might have it on the WSL to side C on a Mac or Linux.
There's only one place where that can go wrong on WSL.
To, there's at least two and maybe in more than two ways for it to go wrong and when you go chasing it, the ways to chase, it are different on the Windows side than they are in the WSL to side.
And this is all for people who might not have been comfortable with the command line in the first.
Place and for whom Linux might be new.
So those are the things.
The other thing is the install has been like 14 steps long for WSL to, it's really, really long.
I have a PR that I've been working on this week to make that three steps plus run one Powershell script.
So I think that will help but it won't solve all the problems.
But WSL to is so worthy both in terms of performance and Native behavior that, it's a great place.
Go.
But I can't, there's some people that, like, do you have so much on traditional windows?
I just can't, I can't budge them.
Can't budge them at all.
Speaker 1
Yeah, and if I could, I think that the problems that D Dave runs into on WSL, to, as you mentioned, there are sort of inherited from Docker and the way that WSL, two interfaces with Windows, because I'm someone that I mostly use a Pure Docker, set up in the local Dev stuff that I do, and I've done client work where we've had to get things working on.
Those WS L 2 and there are a lot of gotchas like you mentioned, and I don't think they're necessarily inherent to deed of their more inherent to the docker, WSL, to Windows kind of dichotomy that's going on in D dub.
Just kind of inherits it, for instance, for performance reasons, you really want all of your projects to be inside of WSL to you don't want the to try and mount them from Windows, otherwise, you're going to get atrocious performance.
And this is stuff that people that are approaching It For the First Time who aren't experienced with it.
It's a big gotcha.
That I see people running into.
So
Speaker 2
there isn't there's another facet of this problem and that is that people typically want to run their apps like web browsers or phpstorm on the Windows side.
And that means opening the files in WSL to, but still running the running deed of and everything and because of the Mastery that they did with networking, that all works, but it's another layer of complexity, then it's another layer that Apple don't understand.
Out-of-the-box phpstorm is doing better at it but it hasn't really arrived vs code has done wonderful things with it from the beginning.
So vs code is a great match for WSL to because you just run code dot in your project on the nwsl to and it'll it'll use your vs code gooey but it's actually running a proxy nwsl to that does wonderful things.
Code has the the wind still on that.
Although phpstorm keeps trying to catch up but they haven't caught up
Speaker 1
yet.
They're getting their.
I've seen some people that even will run PHP storm in WSL to because it will run on top of java.
There's nothing preventing it and it's going to look and work exactly the same but I totally get it.
That's kind of weird for a lot of people that are used to running their Windows apps.
Exactly speak.
Speaking of gotchas, I
Speaker 2
don't I don't want to brag.
I don't want to come across as somebody very self.
And come on brag.
You gotta get me.
Speaker 1
You're already known as you already known as a brand development environment, I can find a
Speaker 2
way to take it.
I can find a way to ruin it.
I've done it so I you know I feel like I have pretty good perspective on how to ruin your local Dev environment.
I'm interested in
Speaker 1
if you were to award
Speaker 2
one issue from everything that you've
Speaker 1
seen that somebody's going to use D deaf in there.
You don't know anything about them their environment.
What is the one trophy-winning issue that you can predict?
Speaker 2
Someone will have that they will run into or the most recurring?
Speaker 1
There.
Gotcha that you've
Speaker 2
seen.
That is a great question over time.
When things pop up a lot, we try to fix them.
Nobody reads, documentation.
So you can't fix stuff like that and documentation, but we can make deed of complain about the mistakes that they might be making.
But people do really quite amazing things.
But because we're always trying to address the things that they do.
Mostly there isn't a winner, I'm apologizing.
I mean, there's there's stuff that comes up every day, but I don't think we have a winner right now, the other day there was somebody that didn't understand what a deed of add-on was, which deed of has a capability.
Of act, has a capability of using these additional supported components that you can add with just a DW yet.
You can add on solar for example or you can add on redis and not have to do that set up for yourself.
And somebody went to one of the It's like that and they didn't understand that it was an add-on and they said, could this be turned into an add-on.
And the reality is that all of us are always swimming in murky Waters.
We are always out there, learning new things that we didn't really know before.
And everybody coming to deed of is wandering into a world that they didn't know before.
You know, almost everybody, they're coming into a world that they didn't know before.
And There's a lot of people landing and web development that have never typed LS on a command line.
Well there's a whole bunch of layers when you land from any set of perspectives.
And there's so much to learn and you don't know what to learn.
You don't know how to learn it, you don't know how to get those layers added on.
It's so crazy impossible to sort that stuff out.
Somebody wanted me to add into the docks, how you change directories to move into a different directory.
Well from their perspective, you know that tells you something
Speaker 1
right that resonates with me I mean speaking of living in murky Waters.
I'm like that catfish in the dirty stream that people try to Noodle out of the hole, you know.
So I totally understand it's always murky Waters.
I gotta say though, every once in a while, a technical solution comes along to a problem that just feels right.
Like it feels like it's hit the spot, it's checked all the boxes and somehow I feel that D dev has gotten us to a place or were finally at a place where Local development.
Feels like the barrier to entry is low enough that we can do it and we can set up team members with and and we can get on with what we love.
Like, local development.
Environments is not something
Speaker 2
you think about when when you hear the
Speaker 1
word sexy.
But Randy Fay you've made it.
There is a moderately desirable so I commend you for that.
Well, the best thing sometimes people are buying a new computer and they'll ask me Me.
Well how do you like it?
And the best compliment that I can give is?
I don't even think about it.
In other words I have no problems with it.
It gets out of my way.
Does its thing that's the way that I think about deed of as well because for local Dev environment, you don't want to care as you saying been about the local Dev environment, you want to do the work that you need to get done and the best compliment that I can give D.
Deaf is, I don't even think about it when I use it.
But getting back to Randy's point about the someone asking for a to document.
The CD command, there still is a base threshold that people have to get Past in order to use a tool like Tdap is not even though I consider it extremely easy to use with an amazing developer Experience Andrew.
You asked when I was creating some material on D Dev accepting have a smile on my face because I got a thought of that too.
It's just and just configuring.
It's just all really nice but getting back to installing it on Windows.
I think installing it on Mac OS is pretty straightforward.
But still if you're doing it via Brew, you still have to know how to get Brew running.
I mean,
Speaker 2
people don't do that.
Yeah.
Yeah, yeah, yeah, I can't.
Okay, so on on Linux, you have to add Brew to your path, right?
And that's true on WS L 2 to X.
So, this might, you asked what the top thing was that?
You know, thing I have a beer
Speaker 1
with the full path to it just so I could get it
Speaker 2
running.
Yeah.
So that, that might be the thing that people have asked more than anything else.
Is, how come I did the thing?
And I can't run Brew right now.
That is almost gone now, because our preferred installation technique on In WSL to is app now so we have app packages now and so that will mean that it's always in the path and you don't have the home Linux Brew thing anymore.
So that is a big win.
That's a big win.
I hadn't even thought about because that would come up every week.
At least it's like I can't run Brew.
I typed brew and nothing happens and they do the same thing.
So this just goes back again to how many layers there are for any of us to work in any of these Technologies is it people will say, well, I installed he Dove, but I get not found when I type it.
Well, they don't understand path to begin with, right?
Which we all have.
A lot of things, we don't understand.
And that seems to those of us who've worked on the command line, for decades, that seems kind of silly.
But it's just one of those things with all the web technologies that you guys work on.
There are thousand layers of things.
You have to know to use those web Technologies and there really aren't any stupid questions.
Speaker 1
I've heard one or two
Speaker 2
maybe yeah.
Maybe there's one or two, but but the reality is, the problem in the tech world of too many layers, to ever understand what layers.
What?
And then to have the right amount of Mastery of the layers that you need to use.
It's hard.
It's just hard
Speaker 1
like anything else.
You don't know it until you do, right?
And it doesn't matter, like you said how much experience you have, how smart you are, whatever that means technology is such that it's always evolving, always changing.
There's always something new, there's always something that you don't know.
And we are really constructing it like an onion with thousands of layers and you're working at the very top, it's
Speaker 2
huge.
The one thing that is really important, we've always had a goal to have more of a GUI interface or at least a text UI interface, that wasn't just plain command line driven, but it never well at one time we had one, it may still work but it was on maintainable didn't have tests things like that and I don't see my path.
Gooeys are huge, but you You all worked in web interfaces that are huge and buoys are huge.
They're huge to maintain their huge detest and I don't ever see them becoming a part of anything that I can handle myself.
Although I we have an open issue and I would love to see that issue succeed.
But I have to say that the new PHP PHP storm or really jetbrains, deed of integration.
Plug-in is awesome.
For those of you using PHP storm or any other jetbrains product to work on your PHP stuff.
The new plug-in allows you to do many deed of things from within phpstorm by pushing buttons and that kind of thing.
So, great kudos to Niko and his crew that made that happen, that was a huge effort.
And so that phpstorm deed of integration plug-in is a great step forward for people who are more likely to be in phpstorm than they are in the command line.
Speaker 1
I was actually going to ask you about a gooey layer On top of this because I come from a Mac and iOS development background and I was wondering if it might understand that there's this is yet another layer and it's yet another thing to maintain, but I look at something like Docker desktop and it's essentially just a gooey wrapper for Docker and you fire it up and it gives you a little dashboard and it's kind of nice.
But if you were able to do something like that, that would also give you the entree into the Mac App Store, so that you could just get automatic updates and the installation and the update, would it be a Non issue, is that something that is on your radar open to PR's, you know, that kind of
Speaker 2
thing?
Well, I mean, it's certainly open to somebody wanting to work on it.
It would be perfectly perfectly fine to do agree that had a maintenance path and that had tests had automated tests, right?
So and that was useful to people, basically.
Those are the three things even have to show value.
It would have to have a maintenance path, you know.
Be sustainable.
And it would have to have good automated test but yes, I do.
Love to do that.
I just haven't ever figured out how to fit it into my life.
I almost signed up for a react class wants to do a react wrapper on deed of and then I realized that I didn't have any time to begin with, so I wasn't going to be able to do it with less time.
Well, the way I was
Speaker 1
thinking of it would be if it was a just a gooey wrapper around what's already there, you know, essentially would be a gooey presentation for the CLI so it would depend on all of the tests and everything that we're in the actual thing, you know it would be it would be deed of it would be the thing.
This would just have a little bit of a native layer that would report on the status and I was really thinking about it.
Yes, there would be some use to the gooey dashboard, that type of stuff.
But I was really thinking about it as an entree into the Mac App, Store to ease, the installation and update process more than anything
Speaker 2
else.
So I think we could do that regardless.
So, for the Mac App Store, I'm pretty sure we could just bundle it up as a, you know, as a binary inside a install package.
So I Like that.
I think those are two separate things and I think that we could, we could make an installer package that could go on the App Store and that
Speaker 1
actually see the Apple has standards for how they evaluate these things and they might or might not accept
Speaker 2
that, you know, more than I do.
Yep.
And be worth.
I'd like to though, Randy, I'd like to offer you Andrew Andrew Welch.
He has, he has a background in this and he a lot of strong opinions.
Yeah, I can tell by the way.
He's talking that he's obviously candidate.
That's a great idea.
It's very passionate.
Yes,
Speaker 1
don't have, like, I don't have strong opinions.
I don't, I just speak loudly.
That's
Speaker 2
all so that the DWI that did exist and is still out there was a react based rapper, that just wrapped a deed of and it's the reason that d-dip commands have Json output.
So every deed of command, you can add Dash J to it and you'll get the output and Json and it just didn't ever.
Meet the it.
I mean, some people liked it so it didn't get enough traction to know whether people would find real value in it and in the end, but it couldn't meet the other two goals of being sustainable from a development perspective and having automated tests, you just work with it for a few minutes.
And you'd find a hole in it.
You'd work with it another few minutes and you'd find another hole and all of us are used to holes like that in products we use but it's not exactly.
What we
Speaker 1
want again?
I at least to me the value, or the initial value in something like that would be to take care of the installation and update process.
You like, okay, we're in the App Store, you want to install it, click a button and then you can just turn on automatic updates.
It will automatically update and you just don't have to worry about any of that.
I'm which
Speaker 2
like, if you sort that out to just, I mean, we have, you know, we do sign and notarized.
That's another maturity thing about deed of is are binaries are signed, and they're notarized both on Mac and windows.
And that is not the norm for lots of things.
So we already have everything.
Set up with apple.
We already have all the stuff to notarize it, and if we built a package instead of we built this package, instead of just the binary, we would be already there to do the rest of the stuff.
So that's a good project for you and I appreciate you taking it on.
Speaker 1
Yeah, and I think that if you did something like that, you would want to have as part of your automated workflow when you cut a release, if there was a way to do it.
It to have it automatically builds, build the package, and submit the update to Apple, you know, you'd want, that could be a process.
We could just,
Speaker 2
we could already do that.
Yeah, I'm pretty sure we could do that in the release process.
So yeah, I mean, if since you have expertise in that area if you find that it is legit to wrap a binary in and install package, it has potential.
It's, I mean, just so that's only part of what you were talking about, but that part has some value and there are actually Ideas that could be there to somebody might want to pay $5 for it or something like that.
Yeah, absolutely.
And I got to admit I got to confess.
I
Speaker 1
appreciate you.
Nominating me but I'm a filthy liar.
I've never done any Mac or iOS development before my life.
In fact, I don't even do web development, I just get on here and talk about stuff.
It's the passion that counts
Speaker 2
as we used to
Speaker 1
say, as we used to say at a place earlier in my career Journey, it sounds like you've got an idea there.
Andrew, I have many ideas.
So most of my ideas shouldn't see the light of day, but I have many ideas, but I think we might as well end it there.
Where I have been volunteered for servitude.
You can't do what you can't do to me what I do to you.
Matt just unfair.
All right, this is an addendum that were recording after the podcast.
We thought it was important to add this in.
So after we talked about and lamented that there was no craft project type built into deed of.
I kind of let out a big sigh and I'm a Saturday, I started to pull request and we did it.
We did it.
We built a craft CMS project type for deed of so that you can use the craft command and it has official support in it and all that kind of good stuff and it's really funny.
I sent the he are linked to bend Croaker and the first message that he sent me was sigh.
I had a feeling this might happen followed by a series of pull requests that he did on his own to help out with the documentation and the testing and some other aspects of it.
Right.
But yeah.
And that was true.
I kind of had a feeling if If you start this, then I'm just going to get roped into it.
I can't let you do this alone.
So so what started out as a weekend project turned into a bit bigger than I think what we expected partly.
Because neither of us were particularly familiar
Speaker 2
with the with the DDF code base
Speaker 1
but also partially because and may be significantly
Speaker 2
more work went into making all of the tests and that the whole testing
Speaker 1
framework that the dev has built in making all of those Tests tests, pass with this new with this new project type that we'd added for crafts EMS.
Yeah, it's funny.
Writing the actual go code.
Get it.
Working wasn't too bad because we had examples to go on and some experience in go and I have some experience in C and so that part wasn't too bad and you did yeoman's work by getting the documentation in there.
But yeah, it was a little bit of work trying to figure out exactly what was going on with the testing framework.
And it's actually funny because Fifi sent me a message after we had, you know, been trudging down this Oregon Trail for a long time.
And he said, ah, you guys have Pioneers, I don't think anyone has added a new project type since the original Magento and I'm like, oh well.
All right, that explains it, that's good.
But well it's, you know, that is absolutely right.
It started off like you were in the code.
Adding the implementation, I documented how to use it and things were going smoothly on Sunday, at least.
And then
Speaker 2
I didn't realize that by Monday, I would be installing go
Speaker 1
locally on my computer and that I would be installing goal and
Speaker 2
which is the jetbrains IDE and
Speaker 1
step debugging through the testing framework but and that's part of it, right?
That's part of peering.
And
Speaker 2
that's part of contributing to open source projects that have testing Frameworks in place and it's a good thing that they do this isn't a criticism.
It's
Speaker 1
just that we had a lot of self learning to
Speaker 2
do on this.
On this PR
Speaker 1
we went on a journey.
Journey.
We have some amazing stories to tell the man where we tired when we got to the end.
Right.
Well, have we reached the end of the tunnel?
I think we have yes the the end is been reached and that's the great thing is that we now have this official support for crafts.
EMS as a project type inside of D Dev, it's in the quick start documentation.
So people that are using it for other cms's will see that and maybe a little be like, hey, I wonder what this craft thing is and they can spin it up and try it out.
Super easy.
And there are some very quick instructions for getting it up.
Running.
It takes care of rewriting your EnV file for you.
So it will automatically be set whether it's a new project or an existing project, it will automatically be set to have the right environment variables to work.
Indie Dev.
So it's pretty transparent and it's nice.
And I do think that even though it was a little bit of work, getting it going, I think it was good for the dev project to because Randy was able to see some of the rough edges and adding a new project type not not that it's going to happen that often but hopefully we can make some Improvements there as well.
And I'm, I'm happy.
I sat in on they have a deed of executive board meeting and I said in on that and Matt Stein said in on that as well he has committed to doing some work to help improve the deed of documentation which I think is really cool.
I'm glad he's doing that too.
So the long and the short of it is that as a result of this podcast I got the crazy idea in my head to do it and you were by necessity dragged into it and that we got, Matt dragged into it too.
So this is how a good Unity open source project works right?
We got a bunch of people pitch it in to help out so I think that's pretty cool.
Yeah and the end result for users of craft CMS who want to also use D Dev for their local development.
Environment is that it's quicker quicker and
Speaker 2
easier to get started with d Dev and you know, start building your craft projects, so less friction to get started.
And I think that's that's great for
Speaker 1
everyone that about wraps it up for another episode of the dev mode.
AFM podcast have every episode sent to you, subscribe to our RSS feed Or via iTunes or Google play or the demo dot.
F m-- podcast.
I'm Andrew Welch.
I'm Ben Croaker.
From, put your lights on.
I'm Ryan, Ireland.
And I'm at Stein, and thank you so much Randy Faye for coming on.
Speaker 2
I appreciate it.
It was a delight.
Is way.
Fun meeting you guys?
Speaker 1
So I did, I actually double I'd actually do.
I used to do Mac and iOS development, I'll tell you what, it's been a while since I've done it.
And I've got my son who wanted to do something with it.
He's like, yeah, I'm trying to do this thing in xcode and I'm like, all right, I'll try to help you out and then I'm sitting there working with it.
I'm like, oh my God, I don't like everything is totally different than the way it was before.
Like, I don't know how anything works.
It took us like an hour to solve something super simple.
So the capability is there, likely
Speaker 2
be the right person?
For the job.
Speaker 1
Well, yeah we'll see just want it.
I know it's
Speaker 2
probably confusing with the video but I'm not actually
Speaker 1
interested child.
So he's not legally allowed to give me away.
You're my second.
I'm allowed to volunteer you and you know you need to do something other than planting avocados.
Alright I'm going to stop the back up and you drop off stopping the back of recording.
Stopping the actual.
Podcast Summary
Key Points:
DDEV is a local development environment tool that simplifies setting up isolated, project-specific web development environments using Docker.
It originated from the PHP/Drupal community but now supports various technologies like Node.js, with plans for Python/Django, and is beneficial for both teams and individual developers.
Key advantages include eliminating manual configuration, ensuring consistency across different machines and OSes, providing built-in HTTPS and routing, and serving as an accessible entry point to Docker without requiring deep Docker expertise.
The tool is community-driven, with features shaped by real user needs, and is maintained full-time by Randy Fay with sponsorship from Platform.sh.
Summary:
DDEV is a Docker-based local development environment tool designed to help web developers work on projects locally without conflicts. js versions), which is especially useful for teams to avoid setup issues and for individuals managing multiple projects or computers. js and aims to expand further.
It simplifies using Docker by handling complex tasks like HTTPS certificates and site routing automatically, making it accessible even to those unfamiliar with Docker. The tool emphasizes flexibility and community contribution, with features driven by developer needs. sh, ensuring ongoing development and support across operating systems.
FAQs
DDev is a local development environment tool that allows web developers to work on their projects on their own computers without interfering with others. It helps manage different project configurations and dependencies consistently across teams.
DDev has deep roots in the PHP world, supporting frameworks like Drupal, Typo3, and WordPress. It also increasingly supports Node.js and plans to add Django and Python support in the future.
Using DDev ensures consistent configurations across different projects and team members, avoids conflicts between varying software versions, and saves time by eliminating manual setup and maintenance of individual environments.
DDev is built on top of Docker and Docker Compose, providing a simplified wrapper that abstracts away Docker's complexity. It allows users to benefit from Docker's portability without needing deep Docker knowledge.
DDev offers easy setup without learning Docker, automatic site naming and routing, and built-in HTTPS certificate management. It also serves as a beginner-friendly gateway to understanding Docker concepts.
DDev was originally developed by a company and later adopted and maintained by Randy Fay. It is now community-driven, with contributions from users who help shape its features and improvements.
Chat with AI
Loading...
Pro features
Go deeper with this episode
Unlock creator-grade tools that turn any transcript into show notes and subtitle files.