 Hello everyone, welcome back to our OctaDev channel. I'm Heather Downing and I'm here with my co-worker, Brian DeMers. And we have a guest today. We're so excited to be able to chat just to 2-1-1, I guess, with Rob Reynolds from Choclity, which is a software automation platform that works specifically in tandem with Nuget and Windows. So welcome to our show. Thanks for having me. Yeah, pretty, pretty excited to be here. Right. So to give you a little background, I'm a .NET person, which is how I know you, right, Rob? We actually live pretty close to each other. You're on the Kansas side. I'm on the Missouri side of Kansas City, right? Correct. Yes, but you're in... Is that a thing? You guys have like a battle, like the lineup at the state line? I don't know. I mean... I mean, it's far enough away from the... Fair enough away from the state line. It's not too bad. You're in Topeka, right? Yes, Topeka, Kansas. I think we actually worked at the same place at one point. I don't know if I worked there and then you worked there. So there might have been some overlap. I'm not quite sure. It's a small world, especially in the Midwest, at least where I'm from. And I know that, Brian, you're all the way on the East Coast, right? Yes, I'm up in New Hampshire. Nice. Nice. So I have the background of .NET. Obviously, Sodez, Rob, he knows a whole lot about what .NET developers do on Windows, right? But what was interesting, and I wanted to bring Brian in for this, is that he's much more new to our platform because you are a Java dev, right? Yes, I spend most of my career in the Java world. I've done a lot of stuff with package management. So everything from Fedora packaging to a ton of Maven packaging, Maven would be sort of the closest equivalent to Nougat in the Java world, as far as I know. But as far as Windows goes, I sort of haven't really done a whole lot with Windows in the last probably 15 years or so. So I feel like I've reverted back to the newbie status. So I'll play that role today. Awesome. So you got out. You got out of Windows 2003. Yeah, right around there. Yeah. Back before it got good. That's what everyone tells me. I heard that. Oh, my gosh. It's true. So Rob, I hadn't heard about Chocolate for a long time. I actually knew you before. I knew you in tandem with your project that has now blossomed into this company and this quite necessary tool. First of all, congratulations for taking it so far. But when does a developer know about you? When do they first hear about it? When do they need chocolatey? That's kind of interesting. I think we have a wonderfully large community. I don't know if that's a product of the fact that we wrote our documentation in a passable manner at one point and people read it. And we had releases. We said, hey, this is what we're breaking. We try to communicate those things. And I don't know if that was part of it. It could be that we started working with the concept that chocolatey uses is new get packaging. So it takes that format and uses it as a framework and enhances it. And that came from a project that was with Microsoft and the community. And I was actually part of the new get team when it originally came out. And so there was this need to say, okay, this is great. New get can get me my software library thing so I can write tools that I can release. Where do I release them to, right? That's kind of where it came out. Oh, yeah, tools I got installers and applications. What do I do? And so that's where chocolatey was born out of and I'm kind of pushing for a little fast on that. But the name chocolatey came out of, we talked about new get and new get not being a machine package manager. It would stick to software libraries for dot net, maybe C++, maybe some other things. But if it did support machine packages, those types of packages would not be vanilla new get packages. They'd be chocolatey, right? So that's where the joke came in. And it was such a good name that it stuck. And every time I was thinking, what should we call this? What should we call this? I just kept coming back to chocolatey. And it's just, you know, it's very sweet packaging platform. It's got lots of fun things that you can say that go along that lines. But where people will go and where do I learn about this typically is because of our community, because of all of that, either they're hearing about it through something on Microsoft that they're using with it or they're hearing about it from their colleagues or they're saying, hey, I just rebuilt my machine and people are like, well, what did you use? And so if they're on Twitter, if they're on social media, that's where they get a lot of the knowledge of, oh, there's this thing that can actually help me do that. And so we still see people, you know, what's really fun about talking today is chocolatey turns 10 years old in 10 days. So I wrote the first line of code on March 21st, 10 years ago. So. Congratulations. Yeah, I know, right? Just to think about it, wow, lots happened in 10 years. I've had multiple children and well, I've had one child. So I've considered chocolatey kind of the middle child between my two kids because it's taken a lot of love and it's needed to it's kind of grown up from that first concept of what I thought it could be to what, you know, me and community and other folks have really seen for this platform and it's kind of got this area where developers, not just developers see it, but also, you know, Windows system admins and folks that are dealing with lots and lots of devices really had a need for something that they could write scripts for and automate those installations, those upgrades and of course those uninstallations if they went that far. So that's, that's a lot where chocolatey was born out and it's just grown up from then. But it's kind of spread a lot through word of mouth and sometimes like wildfire. So it's really exciting. I would say I would never have expected it to be where it is today. And I'm very humbled, but also very happy that, you know, something that I started that was kind of my baby has kind of grown into this amazing thing. That's so awesome. So many projects just kind of go die. So it's nice to see something that actually is blossomed into something that everybody can use, at least if you're trying to do the kinds of deployments that you're doing, right? Yeah, nice. So Brian here has been working and with a whole lot of projects at Okta. And I don't know, was it last year that we started talking about having an alternative way to interact with Okta as a developer, right? And so you could definitely just interact with our APIs or SDKs, but usually the setup process is done in our portal, which is on a website. And while a person like me is really into visual stuff, I appreciate that. There are a lot of developers who are definitely interested in command line stuff. So now we have an Okta developer CLI. And I would love for you to talk a little bit about your experience using chocolatey to get out our Windows build. Yeah, so yeah, it was probably about a year ago we started working on this CLI. And it's, you know, without taking too much into the Okta bit, you know, it's just a more or less a command line tool to get you, you know, registered with Okta, create a new account or log into an existing account and then do things that we normally talk about a lot, especially on our blog. Like you go create some OAuth apps and you do those types of things, right? But anyway, at the end of the day, as far as, you know, the chocolatey bit, it's a command line tool and we need to distribute that to various places. So I'm a Java guy. So I actually started this project as like a Maven plugin. But I realized that like not a lot of people are, I shouldn't say, there's a lot of Java developers that are Maven folks, right? But that there's multiple like build tools in the Java world, right? So we're already sort of fragmenting there. So that sort of turned into a CLI tool. It's actually built in Java. It's not important. We build it into like a binary, an actual executable binary. We actually have a whole like other talk on that, not important. At the end of the day, we have a single binary, right? To CLI, you do some stuff with it. So in like, you know, I'm on a Mac most of the time. So, you know, brew is sort of the natural choice over there. And then we started looking around like, what are the other like easy package managers for these other things? So on Linux, we use a flat pack, which Linux has so many different package managers, you know, it's, we need to go down that road of RPMs and, and, and Deb files. And like that's a whole other, that's a whole other conversation. But on Windows, Chocolate was the big thing, right? So I don't think there's really another alternative other than like an installer, right? Other than Chocolate. So, so that's, that's where we went. And that was sort of, I had heard about Nougat for, you know, years and years back. There was a, there was actually a little bit of overlap with the early days of Nougat and the Maven world, if I'm vaguely remembering that correctly. And so I heard about it years ago, but I never actually used it. So Chocolate was a natural fit. It was just, it was pretty easy, just some metadata that I needed to create, to package up my file. I was actually reading the docs today. And Rob, maybe you can talk about this a little more, but you guys specifically try to grab installers from the, the authors, whatever, distribution. So, so Chocolate is not the one distributing source or, or installers. So, so you don't have to deal with those legal ramifications, right? Correct. So the, when we talk about where you're seeing it, Chocolate.org, that's our community repository because those are available to the general public. There's lots of legal and other, you know, rules that go along with that. And so when people are packaging things to put up there, what we really like them to do is, if they can redistribute, if they have the rights to redistribute, which has to be explicitly shown and put it in the package. Otherwise, link off to the official location and that's what will go through. So when somebody, and you've probably been through this, when you push a package up to that repository, it does not go live immediately, not any version. So every single version goes through what we call a moderation process where it gets checked for consistency and minimum quality. And that's our validator. We have a verifier, which actually takes the package and runs the install, and uninstall on an actual machine. That's a VM that just gets built, blown away after everything's done, grabs the results from that and posts them somewhere. And then another thing that we do is we actually run that stuff through VirusTotal. So we take every single version and they go through VirusTotal, which for folks that don't know, imagine most people on here probably do, that's 50 to 70 antivirus skinners that are super amped up. So they've amped these things up. So they're trying to capture all kinds of things. It's a great, the way VirusTotal is always says is it's a great second check on things. So you get your first, which is your local virus scanner. It's a great second check just to be sure. So it goes through all these things. And then of course, a lot of times there's a human behind it that kind of gives something, a final approval. Once a number of versions have come in, there may not need to be a human anymore. So if it's, I'm the vendor, I create this tool that we're putting here. We kind of build that trust and it's still built on the fact that it has to go through validation, has to go through verification and it has to get scanned and not contain a lot of, not get flagged by a certain number that to go live, right? And so that's kind of that process that goes for the community. And where was I going with that? I'm actually very interested in the moderation. I think your eyes so far from what I've seen is done a great job. So anytime that I've pushed a package and had errors that error messages told me exactly what I did wrong. They linked off to documentation. It was really, really easy to get things in the correct state. And then I'd also wondered about the sort of the human aspect. It's like that doesn't scale, right? And you guys are like, the package numbers are growing like crazy, I assume. It doesn't scale. We've looked at ways to kind of make that a little bit better. We've looked at other things that we could do to help with that. And a lot of times what'll happen is we'll find folks that are interested in helping in the moderation area. We have rules where people can't moderate their own stuff, right? So they're not allowed to do that. It's more of it's actually enforced rules. I couldn't go validate my own package and push it through if I had to put one up there. And neither could anybody else. But they jump on that they help. There's actually a queue that anybody can go see and the moderators will just work through as they get time and so volunteer. And that's kind of nice. We've looked for ideas about, you know, how could we make this, you know, less feel like work and more feel like fun, right? Because after you do it for a while, sometimes it feels just like, oh, man, this gets a little, you know, just like a grind. And so looking for ways to make that better, maybe scoreboards or fun things that we could do for moderators, something, I don't know yet. But we've toyed around with a lot of things over the years and just have never had anything stick for long enough for us to say, yeah, that's what we want to do. But it doesn't scale well now, but it is something that continues to happen. So it needs to be there for the most part. Yeah, I totally get it. I mean, quality, like you can't start distributing crap, right? Because that brings the whole name, the reputation of all of those, everything down. So I definitely commend you. If there's a virus, right? Oh, for sure. I mean, you only have to mess up once and everybody's like, see, I told you 10 years of nothing. Yeah, a reputation just dashed instantly. Yes, we understand the high stakes for that as well. We understand. Wait, I think that Brian and I were talking earlier about how we may not be like a cybersecurity project, but doing identity, we are security adjacent. So everything that impacts that area impacts us as well. It seems like we are kind of like the very treasure everybody wants, which is user data. So we totally understand the necessary like carefulness even though sometimes it does come at the cost of things being a little bit more easy to do and still really, really important to do it right. So there's always a trade off. Oh, you can't completely win, right? Even when it comes to some products that I have, when it comes to home automation, which is something I'm doing right now, I would love a lot of things to be automated, but there are certain things that are just so critical that I want to decide if they happen or not. You know, I don't want it all to just be real on AI. So that's definitely going to be a topic. I think we are going to hear a lot more going forward for yes, we can, but should we? Yes, we can automate this, but should we automate this one thing? So I understand that that's probably your particular scalability issue, right? Yes. So is there anything new coming for chocolate? Like, what are you excited about when it comes to? So we actually, if you were on the website anytime recently or in our docs, you would have seen that we have dark mode. Yes. So that's brand new. People have been wanting that for a while. So that has been super exciting that we did dark mode. Actually, we have a GUI version of Chocolatey. It's called Chocolatey GUI. Imagine that, right? We messed up the name there. We should call it GUI Chocolatey instead. It just got its dark mode released. So people are loving that. I dropped a link to Jan's link where he showed that off. So there's like a little gift video people can take a look at and kind of see it go from light to dark. It's pretty nice. Some of the things that we are looking to do this year is we're moving into a newer NuGet version that gives us a little bit more with like package indexing, a few other things. So we're looking to do that this year. One of the great things and kind of a lead into this is we have that community has over 8,000 packages that are up there with lots and lots of downloads. But one of the things that the folks can do and we see this a lot is and people find this really interesting is that's only about 5% of the packages in existence, right? So most of these packages that we could say that's the tip of the iceberg, everything else is under. Like you'll never see it because they exist in organizations that are doing their own thing and they're building their own packages for things that maybe don't make sense to go up to a community or things that are just specific to them, right? And so one of the things they don't get is when they go to make that package, they don't get that quality and consistency check that you get when you push it up to the community repository. We could actually do a lot of that by running something we call pack validation. So running those validation rules right when you do it right there. So you're not pushing up to the repository and it's coming back and going, hey, you should do these things. Like you could get that more instant feedback. We think that's something that folks would love. And so that's something that we want to do hopefully this year. I mean, we're looking at our roadmap trying to see where that fits in, especially with that move to a new get, maybe a move into .NET Core because we want to start getting into that more, yeah. You mean .NET 5? Sure. Which is all the .NETs of all time in one area. Call this in. Yes. Yes. Yes, that's correct. Another thing that we may get to this year, I'm not sure if it'll be open source or if we'll get to it first in a commercial version is declarative manifests, right? So the idea of chocolate right now is you have to write a PowerShell script for anything that uses installer because you got to tell what arguments you got to tell other things. If you're passing in parameters, package parameters, you have to pass all of that stuff in a runtime. You have to have the PowerShell script to do something with that, right? Now, a misconception of a chocolatey package is that it's managing installers. Chocolate can actually manage anything. You can manage, when it says in registry settings, that can be a package. It's not software necessarily that has to be. It can be a tool that doesn't have an installer. The PowerShell script could manage that installation for you, quote-unquote installation, not an installer. Or if it's just a simple EXE tool, you don't even need PowerShell, right? You put it in the package and any executable is going to be put on the path through what we call a shim. And so you have access to start using it immediately. Oh, that would be awesome. It does that now. And it's done that, well, it's done that since we created it. So yeah, there's actually stuff. You can go over to newget.org if they have tools that are EXEs that come as part of what they install. You could actually use chocolatey to install those. And yeah, pretty cool. A lot of people don't know that. And they're usually pleasantly surprised to find that the packaging aspect becomes so much simpler when all of the rules are like, oh, that's it. That's all I had to do. And I don't know, Brian, if it's been like that for you when you did it and then compared to Fedora packaging or other. Oh, it's definitely easier. Like, you know, I had to define some metadata and then like some PowerShell script. And in my case, it's just an executable. I forget the details, but it was way easier than I thought it was going to be. And this is coming from someone like I said, hasn't used Windows really in a while. And it just kind of worked. And I was like, oh, look at that. It's on the path. Like, I don't know what just happened, right? You're kidding. I know a little bit about what just happened, but no, I was pleasantly surprised how easy it was to create a chocolatey package. Awesome. Awesome. So then what do you think about the community? Has the community helped influence your product at all or like, helped it up? Like, what has it been the success around just the community you've had? You know, the thing is there's a lot of people that probably like me at one point, like I want to do something interesting. I want to do something that makes a difference. I don't know what. And I'm over here building this thing for me and it's working really well for me. And I'm like, well, maybe other people might be interested in that. And so at that point, it's still just very much, you know, back 10, 9, 10 years ago, but very much just this project for me, but other people might be interested in kind of using it as well. And it just kind of started to grow. And then people would say, hey, what if it did this? Hey, what if it did this? And we'd start to put those things in like, oh, yeah, never thought about that or thought about that, but I can't see how it would work. And you get a lot of input back and forth. Eventually, you know, it's kind of brought it to the where it is today when, you know, in 2014, we put up a Kickstarter, right? Because we were like, well, you know, we have this community repository costs us X number of dollars a year. Nobody has to pay for anything. And, you know, right now we have people that are companies that say, hey, we'll support that and they're helping pay those costs. But eventually those costs are going to go up because, you know, as it gets more popular, it's kind of a double-edged sword. So the infrastructure requirements become a lot more. And I would say we're probably have doubled our infrastructure costs three or four times now. What is it? What is your infrastructure? Do you, what is it running on? So we run on most, I think is up on AWS. And we also use Cloudflare to kind of help with traffic and nice thing about Cloudflare is it catches those distributed denial of service attacks. We had one a couple of weeks, maybe last week and it did its job. We didn't have any problems. So that was, that's what I love about that. And it helps us as, you know, infrastructure kind of needs to do a thing. It helps defray those additional costs and you might have to put it in place. Do you guys get a lot of bad actors? Like I know, at least in the early days of like the Maven repos, we've seen a lot of people crawling, you know, the data. And, or do you guys get a lot of that type of stuff? We see crawlers. So we're tracking, you know, everything that comes through. So we're seeing people do weird stuff. We're seeing people that set up something and they're trying to treat it like a Maven repos. They're trying to ask for all the different Maven things. I'm like, what else are they trying to get to? So yeah, we see all kinds of interesting stuff. I think for us, the biggest thing is we just want to maintain the stability, right? So we want to make sure this thing is available for folks that are out there trying to use it. Tends to be the community repositories meant towards community and, you know, people. People are trying to set up their machines more towards developers. When it comes to organizations that are trying to set up infrastructure or keep infrastructure up to date, the community repository isn't really a good place for them to be because you got these packages. You're now in, given up a lot of control to say, hey, here's something I'm going to use Google Chrome or I'm going to use this tool. I don't know how often it gets updated. It's also reaching out to the wider internet to download this thing from its official location. What if that gets hacked? What if this gets hacked? So you're adding all of these additional things that you're now saying, I'm okay with that. And that's fine for a while, but at some point it's going to break something. And the tolerance when it breaks something internally that you had no control over, it's probably very low, right? So when organizations are like, hey, we're going to use chocolate, right? Fantastic. Here's how you build a repository, right? And here's how you do this. And if you want to bring packages from the community, fantastic, we don't want you to get rate limit. We don't want you to do other things. We have some recommendations for you, but if you want to continue going down a route where you want to reuse packages, you'll need to cache those and think about how you can get those installers local. So you're not reaching out to the internet for any reason. And it's chocolate. It doesn't need to have internet access. And that's another really nice thing is it's a chocolate can be used completely air-capped all the way up to an internet, right? And it's just really where that repository that it's reaching is located and what those packages want to do. So that's kind of the interesting thing about chocolate. It's very flexible as well. There are certain things that we've found that people do with chocolatey that I would not recommend. Oh, please, tell us one of them. I would love to know which one you don't recommend. There's a switch in there that you can use with chocolatey. That's the force switch. Now, this is one of the cases where I'd say, you know, use the force loop. I wouldn't say that. I would say don't use the force because there's a lot of really nice things that chocolatey does. When you pass that force switch, it shuts off a lot of that and just says, you know, do whatever you want because you know better than me. So I'm going to let you do this thing. And so when people are using chocolatey, hey, some didn't work. Yeah, sure. On a manual call, that's a good time to say, actually, I really wanted to do this. So I'm going to pass force, but on a script, it's in any pattern if we see it in a script because it shouldn't be there. Wow. It started off just as being a thing that helped you, right, with what you were doing. And now it's grown into, oh, well, it's conditional. Like it is for this, but it's also for that. And now it's kind of grown into its own thing, which is how all good, I suppose, like entrepreneurial endeavors go. Right? Yeah. They had a thing, they were scratching each for them and they found it worked for others. Gmail for me was the one that surprised because it was like this little experiment that that team was doing. It wasn't on the road map. They're just like, hey, it'd be cool if email looked different. And they did that. And then it's like one of the most used Google like tools out there, which is the next week. I was just going to say that I was waiting for that joke. Yeah, sorry. Yeah. Yeah, it's just it's so funny. Like these take on kind of a life of their own, right? Which is also happened to Octa. So Octa kind of started out a little bit more towards enterprise, right? But then we have these projects, these apps that explode with and they suddenly need scale for their users. And so we were noticing that developers were starting individually to come to Octa more than just like their CFO or or the CFO, sorry, your CTO or whoever is at much more of a top down. This is more of a bottom up kind of approach. And so now we're like, oh, we need to just make more and more things for developers specifically, which is part of where the CLI came in and other developments that happen in the company. So it's kind of cool that it just the demand kind of pushes everything forward. So I'm excited for you and what you have accomplished, even just since I've known you. I mean, I've been in tech about 11 years now and much in the first year that I was in there. So I remember how you're like, oh, it's just a little project that I'm doing has grown into something that pretty much at least from the .NET community, everybody knows what it is now. That's pretty cool. Thank you for being willing to get on with us and talk about it in the first place. Yeah, absolutely. Do you have any questions for Brian that I've missed out here because I feel like we can probably talk for many hours about the different problems we're trying to solve as they're coming up for our communities. So as a non-windows person, here's one. So I would say, so I just brew a lot, right? So I mentioned this earlier. And there's still obviously not everything is distributed through brew, but it's a good percentage of the things that I need. And then, you know, then you got to fall back to things like I use SDK man and NVM and there's a lot of like diversion managers for that tools that you use a lot of, right? So in general, like if I were to set up a Windows machine or an average Windows user, like it is most of my like day-to-day utilities now on Chocolatey? I would say so. Yeah. So you see a lot of the flavors of Python, which I think we need to be on Python three now because they've kind of killed off Python too. But you'll see that. You'll see a lot of the rubies now. I really wish and somebody out there might tell me, you know, there's a there's an RBM for Windows and it works nicely. Like there was this thing called Pick and then the person that was doing that kind of disappeared and it never really flourished and then there was another tool. I can't think of it, but I never got to use that one. So I couldn't tell you if it was, if it was good. But yeah, a lot of different options out there and .NET development. You have lots, lots. Typically, you know, folks that are working in Windows, they're not exclusively on .NET or C-Sharp or VB or whatever is there, but that's where you find a bulk of those folks. And so when they're contributing products and things up to the repository, you're gonna find a lot of that. So you'll see Visual Studio. You can install the community edition. You can install a professional edition even from our repository. Of course, that's linking to downloads from Microsoft. Of course, that's where those are located. You can get all those tools. You can get test runners. You can get build runners. You can get all kinds of stuff. But all the way to, you know, things that we use, like Google Chrome, right? Those apps and other things that folks use are there as well. So really interesting thing. No, sorry, go ahead. No, so it's funny you mentioned Chrome because I know there was a lot of pushback from at least some of the Linux package managers because Google wants you to install Chrome from Google, right, so they can update it automatically. And I totally get that perspective and I get the other side too. But with Chocolate, I assume you're actually using the official installer. So Google's probably like, right on. It's funny, they reached out to us and I asked them to reach out further. So they reached out on a repository and was like, hey, let's chat, send me an email. I haven't heard anything. And that was December, back in December. So I'm waiting for their product manager to reach out. So if you're listening, hey, you should reach out. Go back and check that GitHub thing and send me an email because we'd love to chat. Find out what you want to do there. Yeah, so you popped up a URL for chocolatey.org. What's kind of interesting is one of the things that we talked about as part of our roadmap this year is there's, we've started to split things out. So there's now docs.chocolatey.org. There's a blog.chocolatey.org. What we're going to see is chocolatey.org is going to start to focus more on product solutions and kind of have some stuff there. We're going to see community.chocolatey.org. And we're trying to do this in such a way that it doesn't actually affect any existing installations because we want very little downtime. We don't want people go, oh, I need to go and change my link to the default repository, the community repository. What this does is hopefully it helps nicely split that for people that are unfamiliar that are coming into this to understand that, oh, there is a community repository because it's community.chocolatey.org, right, that I'm going to. And so hopefully, because I think people don't do it so much with, let me say Linux package manager because typically those are the official ones that are out there. I've always thought of chocolatey's community repository is kind of the, what the heck is it called? I'm thinking Fedora and those things, extras? Yeah, yeah, yeah. Yeah, so like the common extra repos that are sort of community sanctioned but not official products, right? That's like, if you're going to be using Yum, you know, Sentos or Red Hat, you need this other one anyway. So you might as well go ahead and add it because it's going to have all the stuff that you need. That's what we have always kind of thought of our community repositories. It's kind of that and not necessarily an official Windows repository for folks to use. Yeah, other questions? I did have one more thing I was going to talk about that's on our roadmap that's kind of interesting. Yeah, no, I'm all about what's coming up next. Let's go with it. Fair enough. So one of the interesting things is that on the open source side, one of the things we've always wanted to do was to give folks this kind of a storage, a store type of concept where you're going in like, I want this package, I want this package, I want this package. Now give me the script, script builder. And it's something that is actually over a year ago, one of our folks came up with it and started working on it. And we've got to a point where I think you can do that if you want to have it be a default script. If you want to use that script with Puppet, but we need to finish where you can use Ansible, Chef or other things so that it basically gets everything for you and hands you an I script that you can use to take those packages and be successful moving forward with that and not have to worry about getting rate limited and all that other fun stuff. So that's one thing. Now, another thing that we see is on the commercial side, we're kind of looking at how we can do better integration, but also how we can do more service-based things. So right now, we are very much a product company and we have a product that's in the day and we don't really offer much in the way of services to folks, but it's been expressed, I think, as long as we've been a commercial organization so over the last five years that people would love to have some sort of repository that's offered by Chocolatey Software, right? And it's being checked and validated and has this stable set of packages that organizations could use on the admin side to kind of, I guess, better trust, but more of they can set that off and be a hands-off thing and they can just trust that what's there is usable and it's not going to break in their environment. And so that's something that we're looking at doing this year and we think that's going to be really interesting. It doesn't necessarily map well towards developers, but maybe folks that are system admins and managing in their organization might be looking for something. That's something that we're looking for. Another thing is we... I don't know how far I should go on that one. Intune, Microsoft's Intune is not the same thing as system center configuration management, but folks have kind of rolled over to it and they're finding that it needs some love. And so then they reach out to us. And so we're actually looking to put some better integration into that so that we can work better with it to help those folks that have moved from one system to another and have found that it doesn't have everything they want or need. So if somebody's really interested in getting involved with this, at least from a community perspective, obviously to visit community.chocolate.org, right? And to kind of see what's there already. Is that what you'd suggest? You can go to that URL. It's going to be changing a little bit. Right now, it looks exactly like chocolate.org on purpose. But yeah, so there's some links there to take you to our GitHub repose. We do have a very large backlog of things that we want to do as any company would, right? That are on the open source side that are on the other sides. But yeah, so that's definitely a place to start. Now, I'd say we have 8,000 packages. And no, that's not everything that you can get in Windows. And so we always want to see more and more stuff come up there. So that's a great way for folks to get involved. If you've been packaging for a while and you kind of understand what's looked for and become a trusted member of the community, there's opportunity to become a moderator too if you want to do that. So that's another area that we really like to get help in. That benefits the community. That doesn't necessarily benefit Rob. So that's always good. But yeah. I just wanted to say congratulations again for everything you guys have put together and made this a lot easier for us as we are popping our CLI on multiple platforms now. Thank you for what you've been willing to share with us. I think we have a similar name recognition issue. Like, do you know what Octa does? Do you know what Chocolatey is? You know, like some people like, no idea. And so it kind of, it's like really important to put exactly what you are right on the front page, right? As soon as you land on the sites that people understand who and what it is. And I think you've done a great job with that on your side. I think it's very obvious right away for anybody who's new to it. So thank you for walking us through, you know, like how it started and what we've been able to do and what's next. We can't wait to see how this grows further. So thank you for joining us and being willing to share everything. Yeah, I just wanted to give a shout out to Chris Marrs. Yay, Chris! It's all he has on there. It's Chris Marrs. You are welcome back anytime. So thank you again for joining us. Peace out.