The Changelog: Software Development, Open Source - Making Windows Terminal awesome (Interview)

Episode Date: July 31, 2020

Kayla Cinnamon, Program Manager at Microsoft for Windows Terminal, Console, Command Line, and Cascadia Code joined us to talk about the release of Windows Terminal 1.0 and the new Windows command-line... experience. We talk about everything that went into rethinking the command line experience on Windows, the UX and UI design behind it all, the learnings of working in open source, and what's to come for the Windows command line experience.

Transcript
Discussion (0)
Starting point is 00:00:00 Well, since you brought up unification, I'm going to give you a feature request that will unify the experience across WSL and Windows. And I'm fully realizing this might be more of a file system concern, but if y'all could support forward slash for your directory separators versus a backward slash, I think you'd have developers around the world rejoicing at the unified view of directories and the command line with forward slashes. What do you think about that? I think I've heard that one before, definitely. Well, I'm certainly not the first one to have desired it. I don't know who to ask for that. I think there's like a solid
Starting point is 00:00:38 backward compatibility reason why we can't do that. I'm sure there is. I don't quite know, but I feel like we would have done it by now if we could. Being with her changelog is provided by Fastly. Learn more at fastly.com. We move fast and fix things here at changelog because of Rollbar. Check them out at rollbar.com and we're hosted on Linode cloud servers. Head to linode.com slash changelog. Linode makes cloud computing simple, affordable, and accessible. Whether you're working on a personal project or managing your enterprise's infrastructure, Linode has the pricing, support, and scale you need to take your ideas to the next level. We trust Linode because they keep it fast and they keep it simple. Check them out at leno.com slash changelog.
Starting point is 00:01:34 All right, welcome back, everyone. This is the ChangeLog, a podcast featuring the hackers, the leaders, and the innovators in the world of software. I'm Adam Stachowiak, Editor-in-Chief here at ChangeLog. On today's show, we're talking to Kayla Sineman, Program Manager at Microsoft for Windows Terminal for windows terminal console command line and also cascadia code today we're focusing on windows terminal and their recent 1.0 we talk about everything that went into rethinking the command line experience on windows the ux and the ui design behind it all the learnings of working in open source and what's to come for the Windows command line experience. So we're here with Kayla Cinnamon, and we're talking about the cool thing, right? The new Windows Terminal.
Starting point is 00:02:16 It's the new command line experience. It's recently 1.0, which is super cool. Welcome, Kayla. Thanks for having me. I reached out to you, I think, was it in April, I want to say, prior to the 1.0 release? I think it was like 0.9, and you've got monthly releases and monthly blog announcements and stuff like that.
Starting point is 00:02:33 So you've been pretty busy. Yeah, we still release monthly. And now we have two different builds that we push to. We have a preview build and the stable build from Microsoft build. That's a lot of builds. A lot of builds. Yeah. So we push like an incremental update, like 1.1 to preview. And then once that's baked and preview and a lot of the bugs are ironed out, then we'll move it over to stable. So that's kind of our process right now. So the latest is 1.1 moving to stable and 1.2 coming to preview. This is about a year old, right? So Windows Terminal 1.0 now, but it obviously started at
Starting point is 00:03:14 zero or nothing, no version. It was about a year ago, I think it was 2019 build. You announced this, is that right? Yep. So yeah, at Microsoft Build 2019 2019 we announced it in a keynote i think it was rajesh jah's keynote and we had the whole promo video and it was funny because we had to cover our booth name until that keynote happened so we were just kind of awkwardly standing there representing a windows subsystem for linux until our announcement came out because we couldn't like talk about it. So it was just kind of funny because we put a black piece of paper over our booth name. It was just kind of funny. But yeah, so we announced then and announced it as like the new experience. Like this is the new thing for Windows command line. Why is the Windows terminal
Starting point is 00:04:02 an important project at Microsoft for the company and for you personally? Why do you want to work on it? So for like command line experience on Windows, no one's really touched it or changed it in like 30 to 40 years coming up. It's a long time. It's funny because like a ton of developers use it daily. And it's just this old tool that nobody messed with. Because if we changed too many things, then we would break some automated process that needed to launch the console window in a certain place on the screen with certain padding and font size. And if we changed any of that, those processes would break and then we would get in trouble. So that's kind of why we had to start a new terminal
Starting point is 00:04:46 and get a whole fresh new experience. And since this is people's daily driver, they're in the command line all the time, it's something that needs to be refreshed and maintained. So that's why it's important. And then for me, why I really like working on it is I was brought onto the team for the UI, so designing the tabs and how everything looks and how people will interact with it.
Starting point is 00:05:12 So that was just – it's cool for me because I worked with very few people, so I have a lot of stake in what it looks like. So I felt like I made a lot of impact, and then a lot of people have started using it. So it's pretty cool for me to see the impact that I've made as an individual on the team, which is really cool. You also have a master's degree in that stuff too, human computer interaction. So it's something you can really go back to theory and science around the thing too. Yeah. And like all the books I've read and how, like I did a lot of web design and like mobile design and how things are more intuitive when of web design and like mobile design and how
Starting point is 00:05:45 things are more intuitive when they're placed on certain places on the screen or like contrast colors and all that fun stuff. So it's cool that my study is related directly to my role. Yeah. Which is really cool. Yeah. Even more so how important, you know, reviving something that hadn't been touched, as you had said, like 30 or 40 years. I mean, to get a chance to touch something that's such a, I don't know, like a daily driver for developers, you know, like it's a big deal to revive it. Yeah, absolutely. And it was funny when I came on the team, they're like, you're going to do the UI for the command line. And I'm like, isn't the command line literally the opposite of the UI? Like, isn't it's just the black box. And then it was kind of a challenge of how do I bring in, like my knowledge and making it still the command line and you know,
Starting point is 00:06:35 as minimal as possible, but still useful. So that was just kind of interesting, because at first I was like, isn't that the point is that there isn't a UI? So yeah, it was just a really cool challenge to apply to the project. So what kind of UI is there? There's the tab strip on the top, which is the biggest part of the UI. I worked directly with the WinUI team and they basically made the tab control for terminal. So I worked with them of like, here's what we'll need. Here's, you know, some designs that we've thought of and then worked with them for designs that they've thought of. And then that's kind of how the tab strip came to be. And then we implemented stuff like the
Starting point is 00:07:13 dropdown after that, which was already built in. And now the stuff I'm working on, I'm designing the settings UI. So I have like full control over what that looks like. And then any UI element on Terminal. So the search box, I also did by hand. So there's just like a few smaller things, So I have like full control over what that looks like. And then any UI element on terminal. So the search box, I also did by hand. So there's just like a few smaller things, but it's still as minimal as possible. Like if you take the tab strip off, it's just the box. So yeah, it's an interesting challenge. It looks like you're also working on some stuff.
Starting point is 00:07:39 A lot of times the UI, well, UX and UI are different, but can be intertwined. And a lot of that experience or the way you interact with the program is the integration into the other aspects of the operating system. So I see you're adding things like alt click to open a pane. And you're also adding, what's the one that seemed more like an integration? Oh, yeah, open in Windows Terminal. So right click from the context menu, their Integrations into the broader OS, which aren't exactly UI. I mean, they do have their own interfaces, but they're definitely really tying it in and making it accessible and available where you need it. Yeah, and our goal is to make it as intertwined and ingrained in Windows as possible
Starting point is 00:08:23 so it doesn't feel like a separate app anymore. It feels like you're just launching the command line and it's just in Windows as possible. So it doesn't feel like a separate app anymore. It feels like you're just launching the command line and it's just in Windows Terminal. So eventually we want it to be like a default setting. So like when you launch CMD, it will come out in Terminal. So that's a goal that we have. I think it's on our 2.0 roadmap. So we're aiming to get that in by 2.0, but then it would feel like part of Windows rather than this extra terminal emulator I installed on the side and I can only launch it from launching Windows Terminal
Starting point is 00:08:54 rather than the traditional ways that you do it on Windows. Well, totally that back from being there today where you can at least opt in, maybe not by default on new installs, but opt into the new one when you launch the command executable. Since this is a Windows change, we have to wait for the Windows release cycles to go through,
Starting point is 00:09:15 which are much less frequent. So we're working with that release cycle, which is why it's taking a little bit longer. Makes sense. Where did you draw inspiration from when it comes to rethinking? Having touched something that's that dated, I'm wondering, did you scrap all the things? Did you begin brand new? What was the state of the slate when you actually started to make new things for Windows Terminal?
Starting point is 00:09:42 So we are actually using a lot of the code that's already in Windows for the original console because we own both. Our team owns both the original experience and Terminal. So a lot of the code that lets you, it reads from the shell any responses of like text going in, text going out, and then processing it, all of that code is reused in Windows Terminal. I think you can actually see it if you go into Task Manager and you see what's running for Terminal, you should be able to see like Conhost, and then that is the same thing that would be running in a regular console. So we've used that in terms of receiving data from the shell, and then on top of that, we built our own renderer.
Starting point is 00:10:31 So we're able to render things like emojis or other Unicode characters, UTF-8 characters from other languages, coding ligatures, all that stuff. And then we've also utilized the GPU for that renderer. So it's a lot faster. This is actually like a fun fact. If you're running a build and it's in original console and the text is appearing on the screen, it will actually go faster if you minimize the console because it's using a lot of your CPU, which is just like a funny thing. So if you want to build something faster and you're in original console, just minimize the window. But yes, we use the GPU for our renderer. So that was like a new thing on top. And then on top of that, we've added the XAML elements of the tab strip and then the dropdown. So we took what we already had instead of reinventing the wheel, because that
Starting point is 00:11:10 has been battle tested for 30 to 40 years. Now we just needed to change the Chrome around it. So that's kind of where the divide happened. Was a lot of this bringing many worlds together, you know, command prompt, PowerShell, you know, WSL in terms of profiles and stuff like that. Was it more of like, let's make a new experience, a new world for all these things to play well together and unify the experience? Is that what the goal was? Yeah, especially because with WSL, people will use both Ubuntu and PowerShell. And the way it was originally, it's window on top of window, regardless of you have two PowerShell. And the way it was originally, it's window on top of window, regardless of you have two PowerShell windows or two Ubuntu windows or something. So this was just easier in terms of
Starting point is 00:11:50 managing those windows and having it all be in the same UI and then giving more exposure to stuff like Windows subsystem for Linux. Because if you downloaded Ubuntu and maybe forgot about it, or you didn't know you could put it in Terminal any other shell you wanted like an SSH client you could put in there so it would launch your SSH connection in a profile or if you wanted to run a batch script you could do that so it's just kind of unifying what it means to be a command line application on Windows which is pretty neat and then it's like your go-to place you don't have to think of like oh this project is over here in this application. I need to go launch that in a separate window.
Starting point is 00:12:30 It's kind of just bringing your workflow together, which is really nice. Well, since you brought up unification, I'm going to give you a feature request that will unify the experience across WSL and Windows. And I'm fully realizing this might be more of a file system concern, but if y'all could support forward slash for your directory separators versus a backward slash, I think you'd have developers around the world rejoicing at the unified view of directories and the command
Starting point is 00:12:58 line with forward slashes. What do you think about that? I think I've heard that one before, definitely. Well, I'm certainly not the first one to have desired it. I don't know who to ask for that. I think there's like a solid backward compatibility reason why we can't do that. I'm sure there is. I don't quite know, but I feel like we would have done it by now if we could. That's just where I think it would happen. But like our teams are not, we would not be the right place for fixing that.
Starting point is 00:13:27 I think that's like a hardcore Windows. No, that's like a file system thing. Yeah. Yeah, Microsoft's dogged pursuit of backwards compatibility definitely makes changes like that darn near impossible. If you think replacing cmd.exe is tough, I'm pretty sure that just the assumption that the directory separators will be
Starting point is 00:13:45 backslashes is probably hard-coded into millions of programs around the world yeah but it'd be pretty sweet yeah and we yeah like what you were saying we can't ever get rid of cmd.exe because of all that backward compatibility stuff right and we can't change the default of like you have to enable terminal in your settings to be default eventually because some people or if it's like automatically launched by an application it wouldn't be in terminal for those backward compat reasons so there's like a you know a little dance we have to do around those kinds of situations where the window has to appear as it was 30 years ago because whoever wrote that code is no longer around,
Starting point is 00:14:27 but it's not broken, so no one's going to go mess with it. So we have to make sure that we don't break a ton of people when we do this. Which makes it even harder to talk to people like Jared who want that or suggest things like that, and you can't do it, so you've got these... We're just unreasonable people. What I mean by that is that it makes your job even more difficult to you know kind of go into a new era for something that has been tried and true for so long so stable for so long but you know kind of wrap everything else into one and bring a unified experience given you know
Starting point is 00:15:02 like these constraints that that sort of to some degree seem to hold you back a little bit. Did you experience that a lot? Or is there like a list of things like, these are all my constraints. Like we can't, we just can't like do the, you know, cmd.exe for example. Yeah. I think when I joined, I was like, Oh, can't we do this? Cause I, you know, I didn't know anything. I was fresh out of college. And they're like, no, because, you know, backward compatibility. I'm like, okay. I'm like, what about this? And they're like, no. So it's, you start to learn like, okay, there's only certain things we can mess with or certain experiences that we could change. And then you kind of understand the full picture of like, okay, this is something that's heavily relied on between
Starting point is 00:15:42 not only people, but systems and, you know, code that just executes. So it's, it's interesting that you're no longer dealing with only people you're dealing with computers interacting with your own thing, which is just a whole nother way to think about it, which is kind of cool. Was it frustrating or was it one of those things where you have constraints? It's like, this is a challenge or it was like, oh my gosh, one more thing I have to dance around. Yeah, I definitely looked at it as more of a challenge. I'm like, okay, well, if we can't do it this way, how do we resolve this pain point without breaking all that other stuff? So I definitely saw it as like, let's find a different way to do it because there's always a way to do something. So it's just kind of like figuring out how which is fun i think it's a fun part of
Starting point is 00:16:25 the job when it came to new design interactions and ui when you thought about stuff like that how did you how did you research or feel good about directions you wanted to take things that you have a cohort of people that you relied upon for information did you have like you know was the preview like tried and true for you to really learn? Did you ship with something kind of scrappy that eventually turned more, you know, useful? How did it work out? So when I joined in February of last year, the team had a lot of stuff kind of already figured out. They just needed the UI on top. And they've, you know, we've owned, I say they, but it's we now, but we've owned original console for a while.
Starting point is 00:17:03 And some changes were made about three to four years ago. And then after that, people started asking for, you know, background images and GIFs and color support and font support and all that fun stuff. So a lot of the data was coming from requests like that. And then we started molding the terminal into things that everyone has been asking for for multiple years. And Rich always told me, Rich Turner, he said, like, oh, I get emails all the time about, you know, this feature or this feature. And that's kind of how we were able to figure out things to put in there. Plus, what's really cool about Terminal is that it's a product for developers
Starting point is 00:17:37 and the team is made of developers. So if the devs on the team don't find something useful or they don't like it or, like like it's not a use case it's kind of nice to just sample size from our own team because they are developers and they use it to develop it which is just kind of like a funny inception thing so that's kind of where our sample pool came from and a lot of stuff was on twitter and like tweets that rich was getting and then it molded, let's just get something functional out. So the first like Windows Terminal 0.2, not pretty. It's really gross looking. We had like a
Starting point is 00:18:14 really big plus button. You couldn't drag the title bar. It was like, it was really like duct tape and Popsicle sticks. Like it was really held together by not too much. So then we were able to have people start testing it and building it and start developing on it. And then issues are being filed on GitHub. And then we ranked our priority list of features based on responses on GitHub. So then it kind of went from, here's the stuff that we knew we wanted from the last three years. Now that things are in motion and you can open the dropdown and get a new tab, like that worked. It just looked really gross.
Starting point is 00:18:52 It looks much better now. Once we got that basic functionality in, then it turned into, what are people requesting on GitHub? What are people requesting on Twitter? And then what are we wishing we had? I wanted a settings UI since like day one. And I've made like three different designs of it.
Starting point is 00:19:08 And my hackathon project was like coding it. And it was like we've just wanted the settings UI for a really long time. It's just more of like dev resources of let's get it working first and then add the niceties on top like a UI and stuff. So that's kind of how we operate in terms of getting features and stuff. It's a lot of what are the top most reacted to GitHub issues and what's the most duplicated issue that we get coming in. And then we aggregate lists of these things and that's kind of what forms our roadmap after that. So it's really a community driven thing, which is really cool because then we just kind of
Starting point is 00:19:45 give people what they want, which makes us feel really good. And then it's also stuff that we want. So it's really just a nice ecosystem that we have. So that's the process. When dealing with application performance, you ask questions like which endpoint is triggering memory increases? Are slow requests to a particular endpoint cascading to the app? Why is this endpoint slow for only a handful of users? Has this performance pattern occurred before? What changed since the most recent deploy? Those are just a few questions easily answered by Scout APM.
Starting point is 00:20:25 Scout is application monitoring that continually tracks down M plus one database queries, sources of memory bloat, performance abnormalities, and a ton more. Thousands of engineers trust Scout APM to help them uncover performance issues you can't see in the charts. Learn more and get started for free at scoutapm.com slash changelog. No credit cards required. Again, scoutapm.com slash changelog. So let's talk about the design process of things. I mean, when you think about search you'd mentioned, when you think about leading with function and then coming back and layering on form, what's your personal design process? Do you have a team? it are you running Rogan Solo what's the process for designing the interface so when we first started we first were you know
Starting point is 00:21:33 designing terminal itself I worked with a designer at Microsoft and we worked together on here's you know functionality that we want here's like the gist and I had some mock-ups that I made and then he made it look like an actual Microsoft product because I was only there like two months at this point. So I didn't really know what I was doing. And then we were only able to work with him until when we announced in 2019, when we first announced. So then from there, I've just been kind of on my own in terms of designing. So I use Figma. And what's nice about Figma is that there's packages you can get that are like Microsoft controls. So like check boxes and switches and,
Starting point is 00:22:14 you know, close buttons and all that stuff. You can make stuff look like it's a real Microsoft application because it will eventually. So my process, like for the search box, for example, I looked at Visual Studio and Visual Studio Code to see how they did it and how it worked. Because a lot of stuff that we operate on, we try to make very similar to VS Code so that it feels like it's, you know, you're using a Microsoft thing. Yeah. So rather than like, it feels like two different teams made this, which, you know, two different teams are making them, but you want it to feel like a unified experience. So we try to follow a lot of what VS Code has already done. So I modeled the search box after kind of what they've done and then change it to stuff that is available in like
Starting point is 00:23:02 the XAML controls gallery. We do use one UI XAML for all of our UI elements. So I used those controls from the Figma package to design kind of what it would look like. And the functionality piece of it, a lot of it came from how to search work in console. And then what else can we add on top that's like familiar to like VS code users. And then that's kind of the process. And then I just show the team and I'm like what do you think and they're like looks great and I'm like cool go code it they're like awesome and that's like the process so it's pretty like one man job right now so for the settings UI I've been speccing this is the stuff I've been working on lately and doing the mock-ups. So a lot of the stuff is from
Starting point is 00:23:46 what XAML, like the, when UI XAML controls are, and then it's just in terms of like layout and organization and how does it feel as a user, what navigation makes sense for the settings UI and where would I think like font face would be in terms of like a setting and like that kind of layout, that's the stuff I've been tackling now. But in terms of like a setting and like that kind of layout. That's the stuff I've been tackling now, but in terms of like what it looks like, it's pretty standardized to the when UI controls, because we just use their toolkit. Yeah.
Starting point is 00:24:14 What a thing Figma must have done though, for not saying that you're not a designer or an interface person, but from an interaction standpoint, you know, you may have less deeper experience and knowledge around interface and maybe in particular Windows interface design. of focus, which is like interaction, user experience, flows, you know, user desires, as you mentioned, people emailing about different things like, hey, I want this feature or that feature and kind of giving them what they want, as you said. You know, that's such a cool tool to use. We don't have to like be the interface designer, but still be the interface designer.
Starting point is 00:25:01 Right. Yeah. So I like to think of it as like a graphic designer would make what the check boxes look like or what, you know, the font face would look like and stuff like that. And then I would do more layout and experience of like what it feels like to use the application and where stuff is organized and then making sure the colors line up and it's cohesive. That's kind of where I come in, which is really nice because I'm not a graphic designer. I can't make icons.
Starting point is 00:25:27 My art is really, really bad. So it's nice that that's kind of already done for me and I'm just organizing everything in a way that makes sense in terms of the user experience standpoint. So my own terminal, personal terminal path, actually OS path, so I started in Windows and then in college I went to Ubuntu on my laptop and then I went back to Windows as I entered the college I went to Ubuntu on my laptop. And then I went back to Windows as I entered the workforce,
Starting point is 00:25:49 and I ran that for a few years. And then I went to macOS, and that's where I live today. And over the years I've considered going back to Windows from time to time, just as everybody looks at the grass, it's greener, right? And my response to the reasons why I stopped was like well they just don't care about the terminal which is pretty much the main thing i care about the reason why i ran i switched to mac os because it was just like linux only had a nice ui like that was pretty much it done so and i didn't have to keep reinstalling my what was it the wireless cards drivers every time the
Starting point is 00:26:21 system updated my you know on ubuntu back in the early 2000s, it would just destroy your wireless as soon as you upgraded anything. So I got sick of doing that. And I was like, well, Microsoft just doesn't care about the things that I care about, which was the terminal, the command line, that experience specifically.
Starting point is 00:26:38 I would also argue the forward slashes. Just kidding. Just bringing that back up. Windows subsystem for Linux was the first time where I started to change my mind. And I was like, not change my mind about Microsoft, but realize that Microsoft had kind of changed its mind about developers from my perspective.
Starting point is 00:26:55 And I mean, this renewed interest in the terminal and this rewrite from the ground up is more evidence that Microsoft really cares about these things now. And I'm just curious how the developer sphere received your big 1.0 and this new application. Are people loving it? Do they still grumble?
Starting point is 00:27:14 What's the community response been like from people, maybe like myself, who likes Windows but doesn't go back historically because of the terminal? Or people who have just been Windows users the whole time and kind of quietly despised the old command prompt. Are they happy about it? Yeah, so the overall sentiment has been pretty positive. I get a lot of tweets saying, like,
Starting point is 00:27:36 thank you so much for your work on this. I can finally use it because X feature came in at whatever release point. So I feel like with every release we open it up we open terminal up to a wider audience because we're relieving those pain points of what's missing and there's still a ton of stuff missing like we know that and that's you know why we're still we still have jobs because it's still under development but i think with the 1.0 it was really big because it was officially like a stable app that we knew would likely not crash on you, which is important, especially if you're doing command line stuff. You really got to make sure that's a stable application. So that was kind of big because then enterprises can go in and get it and rely on it as a daily driver. So that was where the 1.0 was really big. But with every incremental release,
Starting point is 00:28:27 when we add new stuff, it unblocks a subset of people. So every month it gets a little bit better. And we still get responses of like, I can't use this because X feature's not there. And it's on our roadmap and we're working towards it. So that's kind of nice for us to know. We will get there eventually and it will be
Starting point is 00:28:46 something that you can use. So it's, since it's still, it's such a new product and we only have about five developers on the team. So it's a really small team and we're just working as fast as we can. What are the major blockers for folks? Like if you had a short list of things that you are obviously not there yet that gets requested all the time. Yeah. So settings UI is a big one. A lot of people don't want to open a JSON file, which is valid. Also opening administrator tabs next to non administrator tabs. That's another big one or run the terminal as another user. That's a big one as well. A big one that we unblocked was the right click open in Windows Terminal, Windows integration, where you could right click on a folder in File Explorer and it
Starting point is 00:29:31 would show up. That was a big one that a lot of people were asking for. I know Quake Mode is another big one where you would hit a hotkey and then the terminal would open at the top of the screen. You could do something really quick and then you could toss it away. So it away so we are making i thought you said quake mode like the video game yeah that's where it comes from is that what it's called oh it's like a hud it's like a drop yeah yep yep okay i retconned your word i thought you said quick mode i was like she surely didn't say quake and i was like oh she said quick and now i'm both wrong and stupid. Please continue. We're working towards quake mode now in terms of ways to run your terminal. So in 1.2, we have focus mode,
Starting point is 00:30:14 which is removing the chrome of terminal. So it's really just the box. It's just the text box. There's no tabs. Everything I worked on is gone, essentially, all the UI. And it sits- How rude. I know. It sits on top of any window. So that's a stepping stone towards quake mode,
Starting point is 00:30:35 because then when you launch Terminal, maybe you don't want all the tabs and stuff, and you want it to appear on the top of all of your windows. So that's like one step that we were making towards that. I'm trying to think of other like big things that are missing. A lot of pane stuff, like when you can split terminal into multiple different panes in a tab, resizing those with the mouse, you can't do yet, but that's another one. Okay. Trying to think of what else. These are things that like we're actively working on. So these are top of mind. That's a pretty good list. Oh, and default terminal is a big one.
Starting point is 00:31:08 If I type cmd, I want it to launch in terminal. That's a really big one as well. So what is the executable? Is it terminal.exe, or how do you launch it directly? Wt.exe, so Windows Terminal. Okay. Couldn't you just alias that in your own machine? Not you, Kayla, but whoever wants that feature, couldn't you just alias that in your own machine not you kayla but whoever wants that feature couldn't they just alias yes we have command line arguments or a shortcut so
Starting point is 00:31:31 you could do like wt and then do like split pane or new tab and profile name and all that stuff so you could launch terminal in a specific configuration and pin that command alias as like something in your taskbar or something on your desktop. So when you double click on it, it launches terminal in that config, which is really nice. A lot of people are in the habit of typing PowerShell or typing CMD. And then that's where the pain comes in of it's launching. My traditional workflow is not compatible with terminal yet because I'd have to change what I look for or like, I don't know. Gotcha. Or if they have automated things that launch CMD or something and they want it in terminal, then that's where things get like dicey.
Starting point is 00:32:18 Yeah. So it's still in a world where it's like several ways in, several ways out of Windows Terminal or typical path that developers are using. Yes, I think I understand your question. Meaning that there's certain flows that are just launching the command prompt directly versus Windows Terminal because it had never been there before. Right, right, exactly. Yeah, so it's just kind of integrating it better into people's workflows because our goal is not to change what people do for us.
Starting point is 00:32:47 We would like to change to be useful for them. That's the goal. It's just like I'm blocking those types of things are like the top requested features. Well, speaking of developer-focused features, nice to see you've got GIF and image in the background text window support. These are the things that really matter. When we were on Cal State, we wanted it to look tight. And you guys definitely addressed that particular need. Yeah, so the background image support
Starting point is 00:33:11 was actually done by a community member on GitHub. We've been focusing on, like, let's make this thing usable, you know, get it working, and then add the cool stuff on top. But someone wrote all the code for GIF support and image support in the background. And we're like, okay, sweet. So we just added that in. So that's kind of where that came from. So to me, all the cool stuff comes from the community, like the retro terminal effects, where you can get scan lines and have the text glow. So it looks like an old CRT display. That was from a community member. Like we didn't do that.
Starting point is 00:33:47 But the code was so good that we had to put it in. So that's why that's there. So yeah. And then like tab reordering, that was a community member too. I remember we were at Ignite and he did it on the booth, like on the show floor. He coded that, the tab reordering. Wow. And then he came over and showed it to us.
Starting point is 00:34:03 And we were like, this is so cool. Like, please make a PR. When that happens, that's when you just offer the guy a job right there on the spot. Don't you? You're like, wow. He works for Microsoft,
Starting point is 00:34:11 just not on, not on our team. We'll steal him from his team. Are you looking to switch teams? Yeah. So, yeah. So all the cool stuff comes from not us.
Starting point is 00:34:23 That's, that's where my mind's at. Um, although terminal is very cool. So, yeah. And stuff comes from not us. That's where my mind's at. Although Terminal is very cool. And you make it all possible. None of this cool stuff could be cool if it weren't for the base Terminal. Yeah, that's true. Which is something to mention too, the fact that this has been open source since the beginning.
Starting point is 00:34:42 We kind of glossed over the fact, sure, you had an announcement, and this is new, and it's replacing. It's the new experience, but it's also been open source. And so I'm assuming that based upon you looking to VS Code and things happening there, that there's a lot of things happening around Microsoft tooling that is open source and there's a lot of fruit from that. And you're kind of describing at least one of them now, which is community contributions. Yeah.
Starting point is 00:35:03 So I personally see a huge shift towards open source inside Microsoft. A lot of teams have come to us saying like, oh, we want to open source X thing, or we're creating this new project and we want it to be open source. How did you do it? What are the good things that come from it? What are the best practices that you recommend? All this stuff.
Starting point is 00:35:23 And it's cool because I guess we open sourced, I believe we open sourced the first piece of Windows ever, which was the bit that shows the text in command, like console, the con host chunk that was always shipped in Windows and we open sourced it. So it's kind of cool how we've had such an impact. And a lot of the stuff that, a lot of the benefits we get are finding bugs right away.
Starting point is 00:35:47 Like everyone who's who files issues are basically testers for us, which is awesome because, it's very difficult for us to test that if we don't have a German keyboard or we don't typically type in Japanese or something. So they are able to find those types of issues and file them and then we can go hunt them down and fix them. But we wouldn't have found them on our own because we don't have those types of resources. So it's just kind of, that's kind of cool in terms of we have thousands of just testers, which is awesome because it benefits everybody when we fix all those bugs. And then also the like feature request priority list, like our priorities come from GitHub and that's because people are commenting on issues or filing new issues. And we interact with the community every day. Like only work in github none of
Starting point is 00:36:46 our code is anywhere else and like we have our developers go through the same process that any other community member would go through in terms of submitting code so we try to make it as even of a playing field as possible between like us and a community member so it feels welcoming and then we get those really good contributions like the background images and the retro terminal effect. I love that one. It's so cool. That is cool. It's really a community, which is really awesome. And it only can benefit, in my opinion,
Starting point is 00:37:15 like provide benefit to the terminal because you're having people read the specs that you're writing or help you think of use cases maybe you didn't think of. And it's just more, it's just like a really big team is kind of what it boils down to, which is really cool. And I really started to pay attention more closely to VS Code even whenever I saw more Go developers using it. Bill County in particular, there was particular Go support in VS Code.
Starting point is 00:37:41 And it was like, that was like a turning point. So it makes sense to kind of treat the same thing here with Terminal that when you get more community members to make it their own and solve their own needs or just be more fun to use, you know, like put some of your own personal flair into it or desires into it when it comes to making it fun to use, it would make sense that it becomes more of a staple for developers to use rather than thinking, well, there's only the command prompt,
Starting point is 00:38:08 there's nothing else out there, and they can now begin to adopt Windows Terminal for their day-to-day driver. Yeah, and then make it their own, too, with all of our customizations and stuff. So yeah, we hope it is a fun thing to use and helps benefit people's workflows. Plus, once it goes into Windows proper, into the stable OS release,
Starting point is 00:38:30 I mean, just having a little bit of your code inside the OS or shipping alongside Windows updates, how cool would that be? From somebody who doesn't work there, just a user of Windows, writing some code that I assume if terminal is optionally a default, that you're going to actually ship the terminal app alongside the operating system, right? So we're still working on the implementation of that. Another proposal that we have is shipping like a stub package. So then when you click on it for the first time, it will go install terminal from the store and then make it the default. So it wouldn't necessarily ship inside Windows. But if you do make any changes to the conhost bit of our repo, which is the stuff that's in original CMD, then your stuff
Starting point is 00:39:17 goes back into Windows and ships regularly. So there is still opportunity to write code for Windows. Okay, you saved it it but it's the conhost stuff rather than terminal but that stuff hasn't been touched for 30 or 40 years yeah so we update conhost for bug fixing and then if there's anything that can benefit um terminal that could also benefit cmd or powershell or the original the inbox experience like we're we're working on a lot of performance improvements right now and that stuff will go back into Windows too. It's not necessarily new features,
Starting point is 00:39:51 it's more like maintenance and performance improvements. Speaking of that, I found a funny bit in your readme which I thought I'd bring up because it made me chuckle. New contributor onboarding is a huge part of open source and a lot of times people run into things that you just weren't expecting they'd run into. I'm assuming this has been run into plenty of times because you have an FAQ.
Starting point is 00:40:12 Only there's one item in the FAQ. It's really just a frequently asked question itself, which is people apparently are downloading the project, they're building it, and they're running it, and they're saying, this looks just like the old one. This is terrible. This hasn't been touched for 30 or 40 years.
Starting point is 00:40:31 And it turns out both code bases are in the same Visual Studio project, right? And people are accidentally launching the wrong one or building the wrong one. Yeah. And getting all sorts of confused. Yeah. So when we first announced a big issue that was being filed multiple times per day was it still looks like the original. And because people would build it and then assume if I ran CMD, it would launch in it. And that's not the case.
Starting point is 00:41:03 So we put that there a long time ago. And I guess we just haven't taken it out. And that's not the case. So we put that there long time ago, and I guess we just haven't taken it out. I guess it's still useful because we don't get that issue filed anymore. But it was just kind of funny how we're like, no, you have to launch Windows Terminal. It was just an education thing. But yeah, there's some funny stuff in our repo. Some of our commit messages are really funny, or responses on some of our like commit messages are really funny um or like responses on like some of our comments are really funny our the release notes are pretty good dustin howitt he's our developer lead he writes our release notes and they can they can be pretty comedic too so yeah we try to have fun on there we try to make it a welcoming community just because like
Starting point is 00:41:39 we're normal people too like we're all just you know trying to make a good product so we just try to keep it fun. How much time does your team spend building and maintaining internal tooling? I'm talking about those behind the scenes apps, the ones no one else sees the S3 uploader you built last year for the marketing team. That quick Firebase admin panel that lets you monitor key KPIs. Maybe even the tool your data science team hacked together so they could provide custom ad spend analytics. Now these are tools you need so you build them.
Starting point is 00:42:17 And that makes sense. But the question is, could you have built them in less time, with less effort, and less overhead and maintenance required? And the answer to that question is, yes. That's where Retool comes in. Rohan Chopra, Engineering Director at DoorDash, has this to say about Retool. Quote, The tools we've been able to quickly build with Retool have allowed us to empower and scale our local operators, all while reducing the dependency on engineering. End quote. Now, the internal tooling process at DoorDash was bogged down with manual data entry,
Starting point is 00:42:48 missed handoffs, and long turnaround times. And after integrating Retool, DoorDash was able to cut the engineering time required to build tools by a factor of 10x and eliminate the error-prone manual processes that plagued their workflows. They were able to empower backend engineers who wouldn't otherwise be able to build frontends from scratch. And these engineers were able to build fully functional apps in Retool in hours, not days or weeks. Your next step is to try it free at retool.com slash changelog. Again, retool.com slash changelog. So maybe you can help us out with some terminology here. This is something that Adam and I struggle with a lot, which is terminal shell command line. All these terms,
Starting point is 00:43:53 these are interrelated things. So a little context on change log news, we have topics and we're also covering things that you run in the command line context and wrote shell tools terminal tools we have a topic for each of these and it's always a a game of chance to pick the right one is this a terminal is this a shell kayla can you help us do you do you know these terms inside and out i'm hoping so maybe you don't i don't know them well. What's the difference between a shell and a terminal? Or a terminal and a command line? Or a console, in the case of the old conhost?
Starting point is 00:44:32 Do you know these terms? Yes. Can you help us understand them? Yes. So this was explained to me on repeat for the first three months of my job. Because I didn't know. Okay. And what's really awesome is that people from the Windows community have it backwards from people in the Linux community. Oh, fun. So there never really
Starting point is 00:44:51 is a great answer to solidify like what it is, but the way that we use it is that the terminal is the UI or the thing that you interact with that appears on the screen. And then the shell is what's running in the back end. So for us, we would say like command prompt is the shell or PowerShell is the shell or Ubuntu. And then it's running in a terminal. So like terminal emulator. So that could be like Commander or Windows Terminal or any of those. And then console, we use it as the same thing to mean as like a terminal. So it's the UI on top. But we just say console because it helps differentiate between the inbox Windows version compared to like the Windows Terminal.
Starting point is 00:45:41 Okay. So the console should also be the ui in the front but it is confusing for sure but that's how we split it up so whenever i say shell i'm referring to like command prompt or power shell and then terminal would be terminal or console would be the thing that renders the text on the front end so the shell only is able to receive data and send it, and then it interprets it and then sends it back out, but it doesn't know what it's getting. Or sorry, this is definitely difficult to explain.
Starting point is 00:46:16 The terminal in the front only receives and inputs data. So it doesn't know what's happening. If you type like LS, the terminal is just sending L and S to the shell and it doesn't know what's happening. And the shell interprets LS and is like, okay, list the stuff in your directory and then outputs that text.
Starting point is 00:46:38 And then the terminal's like, oh, I have output, let me display it. So the terminal has no clue what's happening in the shell behind it. It's just only there to display the info. And the shell is the one that's processing it in the backend and knows what to do with that information. So that's kind of how that differentiates. But I'm pretty sure if you're on Linux, it's backwards. Or if you're on Windows, it's backwards. One of them, it's not the same. Depends on which way you're looking at it. Yeah. Which OS you think
Starting point is 00:47:03 is backwards. Yeah. So what about a command line? Is that just another word for the interface? And that I would say that would be like command prompt too, because that might mean you're at the prompt. You're where you would enter text similar and commit to command line, for example. Yeah. I would interpret that as whatever executable you're running in the shell. So you could run something.exe and that's your command line. So command prompt is how I would interpret command line as well. But you could also do commands as part of the command line, like ls or dir or any of those. Right, individual commands. I think that's more of a stretch, but that could also be
Starting point is 00:47:43 something. I guess that's more of a command rather than the command line now i'm just talking in circles but that's how you end up yeah i've done this before and that's how it happens right there that's how people get confused if you're confused listen to this then hey adam i have talked circles around this during the party yeah and some people will say that i'm completely backwards and completely wrong so it really just depends depends on what your background is. So you're probably fine on what your layout is on changelog because it probably makes sense to some people. I don't know. That's our problem is we have so many options.
Starting point is 00:48:17 Well, the problem is we're not internally consistent, even between the two of us or even between myself last week and myself now. I'm like, before I used terminal but this is more of a command line so if listeners out there if you have a resource like the canonical place that defines these terms
Starting point is 00:48:33 or if you agree with Kayla or you want to explain it for yourself holler at us we'd love to hear what the listeners think on that particular subject it's a tough one definitely well hard rotation away from difficult jargon
Starting point is 00:48:48 onto a topic that we've been talking about. Man, Adam, is this becoming the font show? It might be. The font 2.0 show. Kayla also runs the Cascadia Code Project at Microsoft, which, just like Fear Code, is a ligatures font. So tell us about Cascadia. Yeah. So when we were designing Terminal and we had the idea of the new Terminal, we wanted
Starting point is 00:49:12 it to feel like a new, fresh experience. We wanted this to be like, this is what's new on Windows. This is the new command line thing. And when we were working with our UI of the tab strip and all of that, it still didn't look new and fresh because the font that we were using was Consolus, which is the font that's been around for 20, 30 years. And it's funny because the largest real estate on the screen of Terminal is the text. That's the thing that takes up the most amount of screen space is the text. So we figured we're going to need a new font if we want this to look new. So then that's kind of where the effort came from of why are we making a new font and how is it related to Terminal?
Starting point is 00:49:54 That's kind of where Cascadia code originated from. And then we previewed it at build and we just called it Cascadia code because we were thinking of what to name it. And Cascadia is the code name that we used for terminal inside Microsoft. So before we named Windows terminal, it was called project Cascadia. And there's still some references to that in our GitHub. Some of our folders and code packages and stuff are called Cascadia. So that's where it came from. So it's an homage to Terminal. And then the code part is to help indicate that there are programming ligatures inside. So like Fira code or Cascadia code, those both have ligatures. So that's where the name came from and like why it was made.
Starting point is 00:50:37 So we worked with a font designer and finalized the name after build because then people saw it and then started calling it Cascadia Code and were like, well, we can't change it now because now everyone knows what we've just been calling it internally. So we finalized that name and then launched both a ligature version and a mono version. So Cascadia Mono that doesn't have ligatures. So yeah, I'll keep going on how we released. After that, we added Powerline glyphss so you can use it with powerline and a bunch of like box drawing glyphs so you can have more of your stuff displayed and then we added the latin one character set after that which was a bunch of like latin-based
Starting point is 00:51:20 languages and then the latest thing we added last month in June was font weights. So now you can have bold or thin or semi light or light or any of those, which has been heavily requested because the font itself is a heavier font. Like I personally like semi light, which is like one step below normal because the normal is pretty thick anyway so that was the latest thing that we added but what was interesting is we we wanted this to be the default in terminal because we wanted the experience to be fresh like we wanted to be new we didn't want console list to be the default so we ship we actually ship cascadia code and Cascadia Mono inside the Windows Terminal package and then set Cascadia Mono as the default font. So you can switch between them if you want to turn ligatures on and off. You don't have to go install something new.
Starting point is 00:52:14 It's already included in the terminal package, which is really great. But if you want the Powerline glyphs, that's a separate font. So that's on GitHub. We have a GitHub repository for Cascadia code as well. So that's how we ship. And then a funny thing that happened is the second we made Cascadia code the default, there was an uproar on Twitter because we turned on coding ligatures for everybody. And we didn't even think about it.
Starting point is 00:52:42 My daily workflow is GitHub or Git in the command line. I write code and then use Git to push it up to GitHub, so that's what I use Terminal for. So ligatures never really appeared on my screen, so I didn't really think much about it, but then there was this whole thing of, this is not accessible. Ligatures are technically not accessible,
Starting point is 00:53:02 and we needed to make sure that Windows Terminal was accessible. So we very quickly, either the same day or the next day, shipped a servicing update that changed the default to Cascadia Mono, which doesn't have the code in ligatures. And that's why both are shipped in the package because we did a flip and then some people are relying on Cascadia code now and we can't just take that away because then it'll go back to Consolus after that. So that was just a funny thing that happened and it wasn't even something that we thought about because we were just so used to it.
Starting point is 00:53:33 But this is why it's so great to have this community because it's like, no, no, no, no, no. Back up. We're like, oh, okay, sorry, sorry. So we just fixed it. And then that's also what's nice about having a really quick release cycle is that we could ship updates within a few hours, which is kind of nice.
Starting point is 00:53:48 Yeah, quick fix to a problem that you didn't foresee, but that was immediately obvious as soon as people started using it, right? Yeah, it was a really good learning experience, and it wasn't even something that we thought of. But it's great that it was brought up so quickly. And I think it was brought up the day we shipped that update or the day after. And they were like, no,
Starting point is 00:54:06 no, no, no, no, no, no, no, no,
Starting point is 00:54:07 no, no, no, no, no, no, no, no,
Starting point is 00:54:07 no, no, no, no, no, no, no, no,
Starting point is 00:54:08 no, no, no, no, no, no, no, no,
Starting point is 00:54:08 no, no, no, no, no, no, no, no,
Starting point is 00:54:09 no, no, no, no, no, no, no, no,
Starting point is 00:54:09 no, no, no, no, no, no, no, no,
Starting point is 00:54:09 no, no, no, no, no, no, no, no,
Starting point is 00:54:11 no, no, no, no, no, no, no, no,
Starting point is 00:54:12 no, no, no, no, no, no, no, no,
Starting point is 00:54:12 no, no, no, no, no, no, no, no,
Starting point is 00:54:13 no, no, no, no, no, no, no, no, no, no got mono and code,
Starting point is 00:54:25 so the code actually meant the ligatures. So thank you, Kayla, for finally drilling that home for me. I didn't quite grok that, that you got the code and the mono. So Cascadia Mono is simply just for monospace font, while code has the code ligatures. That totally makes sense now. And three shows later, finally getting it. So clearly I'm dense.
Starting point is 00:54:46 Welcome to the party. There you go. To the code party. go the code party i mean i get i mean it would make sense i just i guess i would just think you just ship it all and you get the code ligatures for free so i don't know i just i guess to turn them off you'd need the monospace version sans code ligatures yeah that's right but you couldn't call it cascadia sans that's a a whole other thing, right? Oh, yeah. It would look like Comic Sans, which is not something we'd want. That's how most of my code should probably be, in Comic Sans, honestly. And speaking of, these past shows we've done, we've talked with Nikita on Fear of Code.
Starting point is 00:55:21 In your special thanks in your doc, you've got a thank you to that project in terms of the coding ligatures. So awesome there. So are you using their ligatures then? Are you pulling them in to Cascadia? That is a great question. Or do you know what the thank you is for? Just for the inspiration? Yeah, I think either we pull from them or it's a thank you to them. Our font designer set it up and we did it so long ago. I honestly don't quite remember how that happened.
Starting point is 00:55:46 I want to say, because they're open source as well, I want to say that we ingested those, but I am not entirely sure. Okay. That was so long ago. It's all good. They either directly inspired or directly contributed in a way. It's the spirit of open source. Yeah.
Starting point is 00:56:03 Yeah. Well, I think what it does for sure while we're talking about it again is that it's clearly one an aspect of the interface that we need to pay attention to two can have as we have just said through my uh silliness is that you can have a coding literature version of it which is super cool that's the point of it to sort of enhance the experience as a developer to get special features from the font, font face in your interface. But just how important this thing is, this type of like the font that you use, how important that is to developers. So, I mean, even rewinding back, that's a big part of what you were trying to do with Windows Terminal is not just give it a facelift and new features, but like kind of evolve the interface.
Starting point is 00:56:44 And a big part of that is 100% the font. Yeah. The choice of it. Yeah, definitely. Don't mind me. I'm just over here just trolling through Cascadia code on GitHub trying to find out, are they actually using their ligatures? It says thanks for the Fira code, open type code for the coding ligatures,
Starting point is 00:57:03 which makes me think maybe you're using the same system that he uses in order to generate the ligatures, but maybe it just means for the ligatures themselves. Well, this begs to be some sort of standardization across different font faces, different typography, in this case Cascadia or in the other case Fira, that you can have sort of like that open type code, as you just said, Jared, to enable, you know, hey, you want this style of font? Great. It can have these ways to have the coding literatures.
Starting point is 00:57:34 It's like unsolved mysteries for open source. In our world, we can just go ask Aaron Bell and he'll tell us exactly the truth. He'll solve the mystery real fast. Yeah, he would definitely know. Yeah, he's our font designer, so he would definitely exactly the truth. He'll solve the mystery real fast. Yeah. He would definitely know he's yeah. He's our font designer. So he would definitely have the answer. And a fantastic one shot.
Starting point is 00:57:49 The Aaron Bell at Aaron Bell on Twitter, if you want to hit him up, but definitely type design and typography is, is what he does. That's awesome. So Kayla, we know the settings UI is coming down the pipeline and you have a list of things that are in the works.
Starting point is 00:58:04 Anything else folks need to know about? Like what's the best way to play with terminal, get on the preview train or the official train? What's the touch points for folks who would like to try this out or maybe contribute a feature or just follow along and watch as it gets better and better? Yeah. So there's a few different resources that we have. So you can download the preview or just plain Windows Terminal from the Microsoft Store. And if you don't have access to the Microsoft Store, we also publish those builds on GitHub
Starting point is 00:58:35 under the releases tab. So if you can't get the Microsoft Store on your machine, you can get it that way. You would just have to update manually if you wanted the latest updates. You'll have to update manually if you get it from GitHub, whereas the store should handle it for you and give you those updates automatically. The difference between the two is in preview, that's where we ship the latest features first. And then a month after they've been in preview, we move them over to Windows Terminal
Starting point is 00:59:05 proper. So that way all the bugs have been ironed out and it's been tested and all that. And then you'll get the new stuff. So if you're someone who wants the newest features as soon as they come out, you don't care if it's a little buggy, you can go on the preview branch. Or if you really care about stability, then you can get on the Windows Terminal branch and you should get the new stuff a month after we announce them. So it just depends on what your needs are and what your preferences are in terms of getting the new stuff. But all the newest stuff will be in preview first and then migrate over to stable. And then in terms of knowing what's going on, we have a blog and that's at devblogs.microsoft.com slash command line.
Starting point is 00:59:51 And I write a blog post for every release that we have. So if you are curious about what new features have made it into preview and then migrate into stable, I iterate through the big features on there and explain how they work and how to get them working or like what's new and all that stuff. And then also I'll tweet random terminal things that are happening, or sometimes I'll do a poll if we're figuring out like a default setting, I'll do that on my Twitter. So that's a really good place to go to as well. And then in terms of providing feedback and doing feature requests and issues and stuff, the feedback link that's in Windows Terminal, so in the dropdown at the bottom, I believe it says
Starting point is 01:00:31 feedback, that will take you directly to GitHub. So if you don't know how to get there, that's one way to do it. Or you could just, I'm sure you could just Google Windows Terminal and the GitHub should show up very quickly. But you can, if you see a bug, we highly encourage you to file it. Or if you are like, man, I wish I could do this, please, please file a feature request because that's how we operate, through GitHub. So that's how contributions can happen. And then also, if you want to comment on specs that are being written and provide your opinion, or if you want to look at some PRs that are in progress and try to contribute there, you can comment on those. We do value like comments and issue filing,
Starting point is 01:01:13 like in creation of PRs, we, everything counts and we truly value all of that. So those are some ways that you can contribute to. Very cool. We'll drop some link in the show notes for the listeners to follow along. That way they can take suit as you mentioned there. And Kayla, thank you so much for your time. It's been awesome. Yeah, thanks for having me.
Starting point is 01:01:34 Alright, give it up for Kayla and all the awesome work they're doing on Windows Terminal and making that a great experience. And by the way, I have some semi secret news to share. We're beta testing a membership that lets you, yes yes you get closer to the middle it's called changelog plus plus and this is the first time we're mentioning it publicly support our work help us test this program and make the ads disappear at changelog.com slash plus plus one of the cool things is we've slashed our rates for
Starting point is 01:02:03 early adopters like you so go check it out again changelog.com slash plus plus. One of the cool things is we've slashed our rates for early adopters like you. So go check it out. Again, changelog.com slash plus plus. And of course, huge thanks to our partners who get it, Linode, Fastly, and Rollbar. Also, huge thanks to Breakmaster Cylinder for making all of our awesome beats. Thanks again for tuning in this week. We'll see you next week. Thank you. Bye.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.