Kate Trahan: Hello and welcome to PodRocket. I'm Kate. I'm the producer of PodRocket. With me today is Noel. Hi, Noel. How's it going? Noel Minchow: Good, good. Thanks to you. Kate Trahan: And our guest is Travis Waith-Mair. Hi, Travis. How's it going? Travis Waith-Mair: Going awesome. Kate Trahan: Thanks for joining us today. Travis is the creator of BedRock Layout. And we're actually connected on The lunch.dev Discord. So, nice to see you somewhat in-person. Travis Waith-Mair: It's amazing that we never get to see each other in real life nowadays, right? Kate Trahan: What is real life? Travis Waith-Mair: Exactly. Kate Trahan: But yeah, just to get started. Can you tell us a little bit about BedRock Layout? Travis Waith-Mair: Yeah. So, BedRock Layout, I guess the elevator pitch would be, is the Lodash of layout. Its intended to be like a bunch of utility, simple primitives that allow you to then compose them together and build much more complicated layouts and build. Not maybe every single layout, but it's surprising how many of the layout patterns we do on the web actually kind of fit within just a combination of 10 different primitives. And you can achieve 80% of what you're trying to do out there. Noel Minchow: Nice, nice. Yeah, that's an interesting way of framing it. like that, the Lodash of layouts, yeah, structure. Cool. Yeah. Because I feel like the initial question one might have is like, "Now that we're in the world of flex and grid and stuff, why do I need helpers to help me get my layouts looking good?" It's way easier now than it used to be. So, what do you say to devs who kind of come at you with that question? Travis Waith-Mair: The fact that because it's so easy that I was even able to make these kinds of like utility functions, they were much more difficult to make prior like the old bootstrap when all we had were floats. You had to compose your containers and your rows, and then your columns. It was a lot more harder to get just even simple layouts because of the limitations. So yeah, I 100% agree. We do have more capabilities and that's why these things even exist. Travis Waith-Mair: But I would say what the goal of BedRock Layouts is it's the same goal that React gives to front-end developers or angular view where it's felt. It's not that you couldn't write that JavaScript, it's that it provides a layer where you don't have to recreate those same things over and over again. And you can just get stuff out quickly and easily and accurately for what you need to do, just like everything. It's like it doesn't matter what we do. The most important thing is are we shipping to customers. And the easier and better that is and the quicker we can do that, the better. So, whatever tool you can use that help leverage that, that's what this is. It's just a tool to help you leverage getting layout completed and done accurately. Noel Minchow: Gotcha, gotcha. Yeah. Very cool, very cool. So, was that the motivation originally or was it just to make, I guess, did you find yourself writing the same code over and over again. And you were thinking like, "Man, it'd sure be nice this was abstracted?" And it was kind of borne of that or did you see a need in the community for something like this or what was the motivation originally? Travis Waith-Mair: It's kind of, have you heard of revenge-driven development? Noel Minchow: No, I haven't, but I think I can intuit what it means, yeah, yeah. Travis Waith-Mair: Let me give you a little bit about this. I was prior to where I'm at now, I'm working for Anonyme Labs where we build privacy solutions for businesses and customers. But prior to that, I was on the design system team and we were building the new design system and it was really good. We were working really well with our head designer and getting a style guide and getting it codified. And the thing that this pattern that I've kind of always been doing naturally, we started just really building out and fully building out this whole layout concept. Because like a lot of good style guides, they have a good spacing scheme. Travis Waith-Mair: But we started really emphasizing like these layout helpers and these tools had allowed us to make that spacing scheme easier to be consistent in our designs. And I was really, really A, proud of it and just also the benefit of having an open source, it was closed source. And so, I went and raised the meeting one, to try to get permission. I knew it was an uphill battle to try to get it open source, but I still want to try it. And I was dismissed in five minutes. I'd haven't even been able to give my whole sales pitch. It was just totally dismissed that like, "No, we're never going to open source this thing." I was distraught a little bit. I was frustrated that I wasn't even given the time of day. Travis Waith-Mair: And shortly after that, I had a vacation planned for Christmas, just before the Christmas break. And so, I just started taking the things that we were building as far as just layout concepts. Ripping everything that had to do with the company out of it, and just building this open source library. And the more and more I did it, the more and more I really appreciated the fact that this is something that's kind of missing in a lot of design systems out there. People have a Stack component and then their 12-Column Grid components. And then after that, when you talk about layout, they talk about cards. Travis Waith-Mair: And then they go immediately to all these other things, the more design system mean and are much more about how things look. But there's really not this one collection of just layout primitives, that just, that's all it worries about, that's all they focus about. They don't try to create buttons. They don't try to create avatars or any of those other things, they're only focused on this. So, I kind of really just kept touching that this is actually something that is maybe a missing piece, not just for me. Because I'm actually glad I'm doing this, because it makes me, when I working on projects a lot easier, this is how I to build. But there's this missing piece in other people's systems that's consistent. Travis Waith-Mair: Like you said, modern CSS is really great. And so, but people recreate these same patterns over and over again every single time they want to do something when they could easily just be bringing in bedrock or something similar if someone else wants to build something just like it, that would be fine. But they could be bringing this in and using this to compose and build up their layouts in these simple primitive forms. Noel Minchow: Yeah, gotcha, gotcha. I mean, that that kind of brings up an interesting point. So, say you're a dev and you want to do as little frontend work as possible. In the spirit of I don't want to write code, I don't have to write to do basic things. And so, you're already using a component library for something like buttons or cards, like you mentioned. And it has formatting helpers in there already. Do you think there's still room in projects that we're using a pretty opinionated frontend component library to use something like the layout primitive library? Travis Waith-Mair: That's how I built it and the way it's evolved. I haven't built it with the intention that it does have its own some good default opinions. But it's intended to be overridden. And so you can bring it in, you can override it with your spacing scheme, yours, so that way it can. And then each of these primitives have zero styling that are not related to just layout. So that way, if they needed to be brought into wrap all your cards and lay them out in a grid or if you needed to stack things, whatever it is that you're trying to do with these components. Travis Waith-Mair: It's intended that they work despite the fact that you're using maybe tailwind or you're using chakra or material, whatever it is that you want to use or your own proprietary one. I know one company is already brought in as kind of their de facto layout scheme. Klaviyo has brought it in with theirs and they're using it with their design system internally. So, that's always what it was intended to be that you can bring in your spacing scheme and overwrite the default one. Noel Minchow: Nice, nice. Yeah. Very cool. I guess, yeah, we're talking about how CSS is powerful and we can do a lot with it. Are there shortcomings in CSS in particular that you think BedRock really help solve still. There's components that are giving you form or structure that is really hard to do with CSS just natively? Travis Waith-Mair: I think what's still really hard, CSS is still a very low-level language. And when you're trying to think high level what you're trying to do. To do that you're going to have to think about like, "Well, here's three or four different properties I have to put together to achieve that." And so, you start thinking about in terms of low-level code rather than what it is that you're trying to do conceptually at a high level. And that makes it hard to then communicate that back to designers and product managers, who are maybe less technical, especially if they're less technical because they're just saying, "Hey, we want to put this out in a grid." Travis Waith-Mair: Well, what does that mean to put it on the grid? What does it mean when you start shrinking it? And so, you start having these conversations. They know what they mean. And then you have to start thinking, "Well, what do I need to do to achieve that?" And you start getting into technical. And anytime that there's that layer of like, "We have to try to translate," there's definitely opportunities for you to have some miscommunication where when you're like, "Hey, I want this to be like this, a cover layout here." Travis Waith-Mair: And you can create that those same conversations like, "This is a cover layout and we're going to have something on top and we want this item vertically centered." It automatically comes with some understandings of what a cover layout is or what a real layout. And you create this opportunity to create the same conversation between your designers and product owners and the actual developers. Noel Minchow: Gotcha, gotcha. Yeah. Given kind of coming on, maybe like expanding the vocabulary is probably super helpful for a lot of people. I guess, have you seen any instances where companies are using kind of design tools like Figma and it's ilk, to try to kind of capture what you're doing with BedRock? And then like, "Okay, this is a consistent pattern that we can use," and applying that to app development? Travis Waith-Mair: That was something we were working with our design system team before I left was like, "How do we try to create these?" They were using Adobe, well, I can't remember the tool. The one, the Figma equivalent made by Adobe, I can't, XD or something like that. But yeah, they were building these primitives that they were going to give out to their designers that created that same concept like these spacing primitives that allowed, made it easier to redline products. So then, it was a lot easier for developers. Travis Waith-Mair: So, that would be a great next step. And if I had some big sponsors and some people helping me. that would be actually a natural flow, where I would want to take this is to then like, "How do we build some design tools that complement and work with this." But unfortunately, this is just me, in my spare time, working on this. Noel Minchow: Yeah, yeah. I think kind of, Kate, we'll get into that a little bit later like time management and building a community and all that stuff. But kind of while we're in here in the weeds a little bit more. I'm curious. So say, you got an existing React app. You have some components that are helping you with styling to kind of making that extraction at the component layer. You got just some CSS selectors that are doing a lot of heavy lifting for you to try to make your grids and your flex. Do what it's supposed to do. How would one kind of go about starting to rip that out and replace it with something that's doing that abstraction for you? I would like to ask. So, essentially, how do you start integrating BedRock into an existing app like that? Travis Waith-Mair: That's a very good question. So yeah, like I said, it's intended to work with your system. I would say probably the biggest thing is to have the right mindset about layout. And this is maybe a little bit of a tangent, but I think this is one, an opportunity where there is a little bit of miseducation to, for lack of better word, about CSS. And maybe miseducation isn't even the right word more of like a not a proper explanation of what CSS is for. CSS has two parts, in my mind. They're very related, but they are too separate enough that I think they should be considered separately. Travis Waith-Mair: One is making it look nice, making it beautiful, making it have the right colors and the box shadows and the animations. And the other one is layout and even though that is visual, it's also structural in a way. Not semantic. Not in the way that maybe you screen readers or things like that, understand it. But it is structural in the sense that by putting, making this larger or putting it in this corner, communicate something specific. And so, I think A, that's one important ways to start kind of separating those as two different related, but two different, what's the word, concerns. Separation of concerns. Travis Waith-Mair: I don't want to keep going at that. Now, I don't want to try to start telling people that they have to create separate CSS files for every single layout versus whatever. But start thinking those as they are different concerns. I say that's probably the biggest thing that would help you no matter what, whether you bring in BedRock or not. That if you start thinking about layout as a separate concern from the beauty and the decoration, that will help out any React app or any app in general. Travis Waith-Mair: And then the other one, then there's always the regular advice, build new things with it as you touch old things, maybe start bringing it out. But I would say even go a step further is really trying to understand what it is high level you're trying to achieve. And because most of us if, I don't know about you, Noel. Most of the time when I write CSS and a lot of us write this. It's the mud sticking on the wall strategy where you're like or actually, I admittedly, I'll bring things into that. Travis Waith-Mair: I'll put some random things on there just to get it into to Chrome or Firefox. And then I'll do all the styling, inline styles in the web. And then when I get it to look the way I want, copy, paste, put it into the class. How often do we do it that? Without even maybe understanding why some of the properties exist and why we need to have them in the way we do. Anyway, so yeah. Just start really understanding like what is layout? Travis Waith-Mair: What is the layout and what is it overall high-level what I'm trying to achieve? And then understanding like, "Can I achieve that with a combination?" For the most part, it's usually never going to be just one of these primitives. You're probably going to bring in, at least two or three, into any situation to achieve the layout you want. Noel Minchow: Gotcha. Yes. And when you say bring in printers are saying typically, you'd still end up using some of those CSS layout, selectors and tools with BedRock? Or are you suggesting BedRock should have most of the pieces you need for the most part, so it's just combining those in the right way? Travis Waith-Mair: Like I said, it's kind of like there's that cliché statement where it's like you can achieve 80% with 20% of the things. That's what BedRock is trying to do. You can achieve 80% of the layouts you want. And then when you can't, that's when you drop down a level and go back to the CSS or if you're using Telin, you use Telin or whatever. But drop down to the C. I think Telin is kind of like half a step-up from CSS. It's not a full on framework. Travis Waith-Mair: Yeah, I would definitely say like yeah. When you need to achieve those very unique things that are very app specific or very paced-specific, yeah, you're probably trying to do that with BedRock might or in several cases be more complicated. Because you're trying to use it in a way it was intended. It just supposed to be the common use cases, not your one-off use cases. Noel Minchow: Yeah, yeah. Going back to what you opened with of the Lodash, for layouts, web layouts, is a good way to frame it. Because I feel like that's kind of how it's always positioned itself as well. You can't do everything here, but you have building blocks, use them, chain them together, make cool stuff. Travis Waith-Mair: Exactly, exactly. Noel Minchow: Yeah. Nice, nice. So, I guess I'm going to help kind of bring this around, to contextualize it. Maybe it'd be good to explain, let's say you've got a React. If you want to start using these layouts, how does that look? What do I have to do to make my grid translated from a CSS grid with some selectors that make the grid stuff happen? How do I get that operating in BedRock mode? Travis Waith-Mair: Yeah. We'll take specifically that. And that's the unfortunate fun thing. There's a CSS grid, the technology and then there's grid, the pattern, where you want to put things in a grid. So, it's always fun whenever. Unfortunately, that's one of the unfortunate mishaps. I don't know if there's a better term for CSS grid. But that's always been one of the annoying things about communicating between designers and developers at all the times. Travis Waith-Mair: It's like, "Okay, do you mean grid this or about?" But yeah, if you were to go on the website, it's bedrock-layout.dev. There, you can see there's a grid and it's intended to do that, that typical like card layout. Where you have some columns and when they take up a minimum width, but they can expand to fill out. And then when they start running out of room, they'll start collapsing and optimize those columns for the room that's given. Travis Waith-Mair: It's intended entirely just whenever possible that they just wrap or take over. For example, if that was a section, and I'm talking HTML semantically, that you can bring that in. And you can say, all of them have as properties. So, you can say, "This is a section." So that way, we're not creating div soups around our HTML, whenever possible though. You can go, you can make sure you're using the correct semantic at HTML. Travis Waith-Mair: And then it's a matter of just setting the gutter property, so that way you can tell what spacing that you use. And then in the case of the grid, they also has a minimum item one. So, you can declare, "Hey, each of these cards need to take up at least this amount of space before we start collapsing and bringing things down to separate rows. Travis Waith-Mair: I was going to say under the hood, it's using a common pattern like that gets talked about with CSS grid all the time. I think, some people call it the ram pattern or whatever. But where it's doing the auto fit and the min-max and all that stuff. It's not like that's something that would have been super hard to write. But it's a pattern that you have to recreate every single time. Travis Waith-Mair: If you could just go, "I just need to do a grid, bring this in." And now, your HTML, your react when it says grid, the component actually is a grid component. You can be like, "Okay, this is a grid. Everything inside of here is grid island." It's much more apparent what you're trying to do. And you don't have to recreate that same pattern over and over again. Noel Minchow: Yeah, yeah, that makes sense. Yeah, because I feel like I'm kind of in that same boat where I'm not writing fresh CSS lands enough to even remember a lot of the time, what I need to do. It's like, "Oh, I know there's some selectors in here that are pretty close." And I go and figure it out. I'm like, "Okay." But it takes 20 minutes for me to get spun up again. So, I feel like if there were nice components there that can kind of do that for me abstracted in the same way that Lodash does. I don't have to think about it. I know the Lodash helper will do what I need to do. Yes, that's super cool. Noel Minchow: Were you also saying that if there was a way that you could wire up existing components, you didn't have to write like an extra wrapper div around each of your inner components? Travis Waith-Mair: Exactly. Each one of the better arguments takes the as prop. It's that, it's a pattern where you can pass in either a string and say, "Hey, this is an HTML or this is an anchor tag," or whatever it is, they're all divs by default. Or you can even as long as your component takes the class name, you can pass in an existing component you have. So, if you have material has their paper or different things like that. Travis Waith-Mair: If there's something that you want to already to internally, also have these layout patterns, but it's got its own styles or whatever that you want to just bring in their components that already exists, you can pass those in as well using the as prop. It's built on top of style components. And so, style components just gives these things out of the box. That's one of the reasons why we were using it in our design system as well as why I can still cap it for BedRock. Noel Minchow: Nice. Yes. Yeah. Very cool. Yeah, I feel like that probably helps a lot in keeping the kind of the tree a little bit cleaner. Having fewer branches or having these... Travis Waith-Mair: Exactly. Noel Minchow: ... exactly as many branches as needed is always good. Yeah, so I think kind of my last line of questioning here is say you're in a dev shop or whatever, you got your app. And you're pretty happy with what you've got going. You got some components yourself to help you with formatting. You got some CSS doing some heavy lifting for you manually, class names and stuff. Is there any advantage you see of going back and kind of retrofitting one of those apps to use? Like a kind of a layout primitive library like BedRock? Travis Waith-Mair: I'm a very private person. And unless, and this is how I try to follow abstractions in anything I do unless it solves a problem, probably not. Let's just be fair. If you've got something that's working, it's probably not worth the time to go in and refactor it, just to get zero. Unless, there's a problem that you're having. If your CSS is like spaghetti CSS, and anytime you try to add to it that you're having a problem, yeah, maybe it would. Travis Waith-Mair: But if you've got like you said, it's well working out, maybe it won't, doesn't make sense to go recreate, re-do every single component, so they're using BedRock. But that's just more from a practical like yeah. Don't create more work for yourself if you don't need to. It's all about getting features out. Ultimately, it all comes down to the users and the user doesn't care if you're using a layout library or you're writing everything from scratch. You know what I mean? Noel Minchow: Yeah, totally. Yeah. No. I appreciate the pragmatism there, yeah. I feel like it's always tricky for devs, like "Oh." You always feel like you've done everything wrong. You start over and use all these other tools. Travis Waith-Mair: Well, and there's the FOMO. There's like, "Oh, this is so cool. Why have been doing this other way?" And you just want to start using it, but if you don't have a real practical need for it, it sometimes makes sense to just keep on the path you're going. Noel Minchow: Gotcha. Yeah, yeah. Yeah, but if you're coming in fresh, yeah, it's super cool. I've played with it a little bit. I've spun up a sample project, kind of, just to see. And yeah, I found some of these components. I didn't find some of them that were like, "This would be really hard to do." And I don't feel like a lot of people have abstracted a lot of spacer components of, these basic components of BedRock gives you like the Reel, I thought was really cool, like snapping divs into view. Noel Minchow: So I guess, I'm just saying this because even if you're a dev and you feel like you've got really good CSS chops and everything's working, I think there is still some stuff there that is really cool and could be useful on its own just to solve some specific need. Travis Waith-Mair: And I'm kind of trying to write it in a way that if you only want to bring in one or two of these into your app. And you don't need to bring all of them in. If you want to just download just the inline or just the cover, whatever, and nothing else, you can do that. In fact, I actually kind of put off until more recently, creating your one component to rule the balance, but you can now. Travis Waith-Mair: There is a package called Primitives that has basically all the primitives as a dependency brings it in, and you can get it from one source, just, because that's a good developer experience. Especially if you're going to go full on and adopt it and use it, that's a really good developer experience. But I pushed that off till the kind of near the tail-end of this after I felt like I had a really good system of layouts that you can bring in. Just with the preference of like, "Let's not create more room than I need to on people's bundle sizes, whatever possible." Noel Minchow: Yeah, totally, totally. Yeah, yeah. It's good to think about. And I agree, I kind of have been in that. I've been in that space before where it's like, "Oh, should I make this also just like exports everything." And it's easy to just get the whole model because it makes dev that much easier. But I also understand pushing that up till the end. Noel Minchow: Cool. Yeah. So, I guess maybe this is a good segue, Kate. Say you're in this position of you're wanting to start writing from scratch and doing your own layout stuff or figuring out how to even do layouts on some app you're building, where might people go to, to figure that out? Travis Waith-Mair: So, I mean, the best thing, place, and I've really been emphasizing, probably over the last year. I've been getting some features out, some random things. But probably the biggest thing I've been focusing on is getting the document site up. And more than just like, "Here's the API," but really trying to give a good tutorial and a much more thorough explanation. Travis Waith-Mair: And so yeah, once again, bedrock-layout.dev. It's built using storybook, which was a practical decision because I was already building storybooks, so I could do some visual regression. Because with a layout library, it's less about how you technically got there. Because there's so many ways to skin the cat with CSS. And especially as they come out with new features and CSS in general is kind of hitting a good stride finally, where they can, they're getting out features on a regular basis, the browsers are all kind of lined, partly we've had some consolidation of browsers. Travis Waith-Mair: But in generally, the CSS working group has kind of now gone through the same thing that the Java TC39 has for JavaScript or they're now getting features out on regular basis, they're able to respond to the community pretty quickly. So, the best way to achieve that layout today might be different tomorrow. And even for example, gap came to flex. A lot of these components like the inline components were using the negative margin hack, if you know what I'm talking about. Travis Waith-Mair: Where you create this wrapper component with negative margin and then you put margin around everything, and that negative margin would absorb the outside margin, so you get that gutter feel. Basically, it's recreating the gap. Well, now, gap exists so we don't need that under the hood. And so that's my intention with all these layouts is it. You shouldn't need to know what technology is being used. Under the hood, you just need to know that it achieves this layout. And if I find a better way to do it, using something else that you shouldn't have, write your CSS or write your components knowing how it's technically written under the hood, even though you could probably figure it out. Travis Waith-Mair: So, getting started, I would say go to the website. Go through those and try to understand what these layout patterns are, what they're trying to achieve, and how you can combine them. And if you find, I'm open to, probably, the biggest thing I need now is some really good examples of how to achieve different layouts. And how to achieve common patterns. I'm starting to build that out. Once again, given that is mostly just me in my free time that when I get, kind of get some opportunity to go about doing that. But I would say my biggest need is that document site is where I would love to get some help, some contribution, just showing how to use these in the wild. Travis Waith-Mair: How do you achieve your layouts that you've done in the past and bring those in and show other people? Basically recipes, for lack of better term. How do you like, "Here's how to achieve your typical card layout. And using these combinations," things like that. Kate Trahan: And, yeah, this was a good chance to talk about your course on Newline, Creating Layouts in React. Can you just kind of tell us a little bit about kind of what's, maybe what's it covered and kind of who is that kind of targeted at that course? Travis Waith-Mair: So, yeah, the Newline, I got brought in. One of the founder is Nate. I can't remember his last name right now. But Nate Murray, he's one of the founders over at Newline. Saw the BedRock. Really like what it was. He's like, "I bet there's something that you could teach here, given that you've built this. And let's have a conversation. And we initially kind of started about like, "Maybe we can create a course on how to use it." But as we got into it more, the thing I felt that was A, lacking in my own CSS education, specifically for React was how to use CSS, and react in a way that doesn't conflict. Travis Waith-Mair: Because React is this component model where you kind of break things down to their smallest parts, and then you build it back up. And that's how you do it. Once again, it's a compositional model. But CSS, A, was designed to be kind of like much more high level exception base. You start it from the top, your general styles. And then you wore it down to more specific after you've kind of figure that out. But also, the way we teach CSS is kind of like, at least for me, when I was going through, was stuck in 1999 where they always talk about the page. And trying to keep things consistent across your webpage. Travis Waith-Mair: And no one talks about how to do it in a CSS model. And when you look up the doc site, React talks about, "Hey, you have class name, and you have style, inline styles." And that's about all they go into. And you go to everybody else and they grab, "Oh, well, there's tooling that can help you manage your CSS, so that you can use SASS and you can use LESS." But what they kind of all still lack is how do you create layouts in a way that allows you to compose them together? How do you write your CSS? How do you structure your properties in your classes? What properties go on which element so you can have layouts that, you can have components that still compose together that don't break as you bring them in? Travis Waith-Mair: And it was something like after being a React developer for as long as I have, I've learned that. But that was something I had to just kind of figure out. Where are those boundaries are? Where's that level of encapsulation? So, that's what I decided to do is focus more on how to think about layout composition from a React point of view. In fact, the first module spends just 100% about what I call encapsulated CSS, which is the rules I follow whenever I'm trying to build, use, write CSS in React. Travis Waith-Mair: And then from there, we then, the rest of the course spend just recreating BedRock Layouts. And just to learn what are those patterns? What are those low-level things that I used to achieve those patterns? So, maybe, yeah, you don't bring in BedRock, but you've now nailed these patterns that they're built on top of, so you can now use them in your own app. Kate Trahan: Awesome. That's great. Yeah. And we'll include the link to that course, in the Show Notes, for sure. And then yeah, I wanted to ask. You're working on BedRock, we were connected through the lunch.dev Discord, which you're very active in. You stream on Twitch. You come on podcast. You also have a full-time job. I'm just kind of wondering how do you have time for all this? And how do you not get tired of all this? Travis Waith-Mair: I don't get enough sleep. No, I'm just kidding. No, for lack of better terms, the lunch.dev is fantastic. I mean, we highly recommend it to everybody out there. Very highly supported, especially if you're a content creator, but not just for them. But there's a lot of really good content creators in there who are very willing to jump in and help. I got started on Twitch because Ben Myers over at some Antics Dev. He was already doing Twitch stream. Travis Waith-Mair: I needed to find a reason to jump in and force myself to get into BedRock. I was running into a situation where I was updating the dependencies and that's about all I was doing on BedRock. And I was as having a hard time and I was like, "Maybe what if I live stream me working on BedRock once a week? That will force me to actually go to BedRock at least once a week. And maybe some other people will help me. If not, I'll at least force, it's my responsibility partner. If I schedule it, I will go do it." Travis Waith-Mair: And he helped me kind of get started. And yeah, I do. That's what I do now. Every, once a week I'll live stream just whatever I'm happening to be working on with BedRock. Sometimes I've gone off on tangents and tried to recreate different layouts using BedRock. But for the most part, it's just like, "How can I make the site better? How can I fix a bug on the website or how can I?" Yeah, just whatever I just happen to be working on is whatever I stream. And gotten some great people come in, really helped me out. Travis Waith-Mair: Michael Chan came in there, also known as fantastic. He works for Chromatic. And he helped me get the Chromatic CI working with GitHub actions. So, that was a fun day because I was having a hard time on my own. And that's what the intention is. It's like I don't try to pretend I'm a CSS guru. I'm not. I'm not Jen Simmons or Rachel Andrews. These people who are on the CSS working group. Travis Waith-Mair: I'm just a dev who found something that made my life easier. And I hope that's what my Twitch stream projects. It's like I'm not smarter than anyone else just because I wrote the library. I wrote the library, because I would forget these things off and I kept having to Google on. So now, you don't have to remember it. Kate Trahan: That's awesome. Yeah, we'll include the links to your Twitch stream and lunch.dev Discord in the Show Notes. Is there anything else that you would to point our listeners to? Travis Waith-Mair: I do blog at it's non-traditional.dev. It's kind of not anything layout related, that specifically, unless it's something on my mind. I wrote that with the... because I came from a non traditional background. I was original, the compliance officer with the stock broker license and all that. And I've switched careers and now, I'm a developer. And I remember that especially when I was really new, and I'm still learning a lot of things. Even though I had a job, I was turning out things that was just like terms or just concepts that would get explained to me in a way that I just, I wasn't getting it because I come from a different background. Travis Waith-Mair: And so, I blog about whatever happens to be interesting to me, but I always try to focus on the fact that the audience that I'm intending to write are people coming from non-traditional backgrounds. And so, that's what I tried to do is whatever technically I happen to be interested in writing about, but it's always from that perspective. Kate Trahan: Awesome. Yeah. I was listening to the FS jam episode that you were on. And you're talking about, because you were a musician before working in Compliance. And Anthony was like, he's like, "Yeah, I can't relate to that at all. It's not that that exact path happening to me of being a musician, and then not wanting to be a band teacher, so then I got to check on development." Yeah, I got a chuckle. Travis Waith-Mair: As a dad, I try and tell my kids like, "Yeah, try to have a point of where you're good to go, but know that it's probably going to change on you. And it might change at least two more times in your life." Just from my own experience. Kate Trahan: Yeah, absolutely, absolutely. Awesome. Well, Travis, it's been great to have you on. Thank you so much for coming out and talk about BedRock and your background. And yeah, we'll see you around. Travis Waith-Mair: Thank you. Yeah. And it's a pleasure. I really appreciate you inviting me to come and talk to you. Kate Trahan: Yeah, of course. Anytime. Kate Trahan: Thanks for listening to PodRocket. You can find us at PodRocket Pod on Twitter. And don't forget to subscribe, rate, and review on Apple podcasts. Thanks.