Brian: PodRocket is sponsored by LogRocket, a front-end monitoring and product analytics solution. Which is to say it's not really sponsored by anyone, it's sponsored by us, LogRocket, and we're giving it away for free. The podcast is free, the product is not free. There's a free trial, we could split hairs about whether or not that's free to you, but anyway, that's it. There are no more ads. If you're interested and you want us to know that you came from the podcast, please go to LogRocket.com/PodRocket. If you don't care, LogRocket.com works just fine. Thanks. Brian: Hi, and welcome to PodRocket. Today, Ben and Kate interview David Price, a core member of RedwoodJS and developer-in-residence at Preston-Werner Ventures. And he talks about what it means to be fullstack JAMstack, which is a thing, how RedwoodJS gives you your time back, and what it takes to create a highly collaborative open source community. Let's get started. Ben: Well. Hey David, how are you doing today? David Price: I am good. It is good to be here. You're kicking off this podcast, correct? And in kicking it off with me or somewhere at the beginning, I'm excited. Ben: No, you're one of the first, one of the guinea pigs. So we appreciate your doing this with us and happy to have you. I want to jump right in and talk about Redwood. Maybe for our audience who may not be familiar with Redwood, could you give a brief introduction of what it is and why you should use it? David Price: Yeah, sure. Thank you. Excited to talk about Redwood and all kinds of things. And we're going to talk about LogRocket too, if you don't mind because I've got questions. But Redwood is a newer, it's been around for about a year now, actually it'll be a year in March. It's a fullstack JAMstack framework, and I can explain how we're using some marketing terms there, but what that means. And it's ready to deploy to the edge, so that means it's actually has built-in serverless support, and Redwood is using tools you know very well. So it's using GraphQL in the backend, it's got an API, we're using Apollo. And in the frontend, well, you can use Apollo, but you can swap out and use other GraphQL providers in the front, and we've got React. David Price: Another thing, the MVP of last year for sure is Prisma 2, and that allows us to do some really nice things with database control, so database access, managing your migrations, etc. So fullstack JAMstack framework is one way to say it, it's edge-ready deploy. Ben: Fullstack JAMstack. Can you that 10 times fast? David Price: No, I can't. And I actually don't know how long that term will be around because honestly, when we use the term Full-stack JAMstack, a lot of people naturally... there was a little bit of revolt because, "Wait, how could it be JAMstack and full-stack at the same time?" And we really wanted to capture the idea of a methodology that happens around JAMstack, which is really, it feels simple for a developer, and I just push my thing to a repo and then it deploys to the world. And that's the feeling we wanted to create around Redwood. But there's a lot of methodology and also the infrastructure of Jamstack that we leverage as well. And full-stack just means, "Hey, this thing has an API heavily integrated, built into the framework itself." But I can't say fullstack JAMstack 10 times. Too hard. Ben: For the hosting and serverless aspect, do you support a variety of different serverless platforms, or is there one that typically users go with? David Price: Yeah. I'm not sure what the specific stats are, but I can say that we... Well, let me tell you about some of the people that are part of Redwood, because Redwood has been around in development and really early idea stage for two years now. And Tom Preston-Werner, who people may know because he was a co-founder at GitHub, he also created Jekyll, which was one of the most well-known and early on static site generators, which eventually became GitHub Pages, so Tom has some experience here. And Tom's done several other things as well in the open source world. And he was working with Peter Pistorious, and they were working at another startup Tom co-founded, called Chatterbug. David Price: Chatterbug's actually great, if you haven't heard of it. It's a language learning, kind of a full suite of tools. But they were working together at Chatterbug and came to it with a Ruby on Rails, was going to be the framework they were using, really wanted to do all the cool things with a UI you can do with React, and found that there was just a lot of pain points there. So they started dreaming up this, "Hey, what if we took the best of all these worlds and created a framework to do it?" And also Tom had met the Netlify founders, Chris and Matt. So this is way back when. David Price: And Tom has always had this dream of a universal deployment machine, those are his words and I love to borrow them and other people are welcome to as well, where I want to build my application and I would like that to be enjoyable, and I would like to push my application somewhere, I would like to hit a little button in my command line and say, "It's ready." So push to GitHub, for example. And then I just want somebody else to take care of all the other things. I just want to deploy and I want the other things on the end of that deployment to be smart enough to know what to do with it when it comes to global support and CDNs. So serverless and CDNs and the things that Chris and Matt wanted to do at Netlify were really exciting for Tom, and so there's a relationship there. David Price: So Redwood was actually always built with the Netlify crew in the loop, and that allowed us to experiment really early on. Prisma came along and they were doing some really exciting things on the database level that allowed you to use it in that JAMstacky see now I'm just making up words, that JAMstacky kind of way, and give that feeling of just, "Hey, I want to push this to my repo and it's going to deploy." So the first deployment target that Redwood supported out of the box at the release of March 11th, 2020, pre-pandemic by the way. We nailed it. We got that thing right in at the buzzer, and then came COVID, which coincidentally made people pretty available to hang out online and talk about Redwood, but that's another story. David Price: We started with Netlify, we added Vercel support and now we currently have AWS serverless direct support as well. And effectively, it boils down to this, if you want to go serverless, you need a global CDN and some kind of serverless architecture to support things like Google Cloud Run, which is coming, which is a containerized version of Lambdas. Then we need it to be able to have more of like an express server. And so you can now run Redwood in a classic server sense, so run inside of a container, for example so it's persistent.We call that server-full hosting, because you know, more words we wanted to make up. And that's that's possible as well. And I actually know a lot of people that have deployed Redwood that way. David Price: So we made it really important that when we started, Redwood would not be any lock-in. If the idea is for people to be able to play anywhere, they're going to need to be able to deploy the way they want to. We'll see some hybrid solutions coming up soon as well, where there's parts of Redwood that are running serverless and others that are persistent. Ben: You mentioned Redwood, it builds or includes React, GraphQL, Apollo, Prisma. We actually recently had Nikolas Burk from the Prisma team on the show, so we got to talk a lot and learn a lot about Prisma- David Price: Oh, I like these guys. Ben: ... which was awesome. David Price: Yeah. It's a good product and they are good people, so hats off to them. And we've really enjoyed working with them. Ben: No, it's super exciting to learn about what they're up to. And I'm trying to wrap my head around Redwood, what is the unique aspects of Redwood or where is the glue between these tools? You have React , GraphQL, Prisma, etc? What is the core of Redwood? David Price: Yeah, sure. Well, let me talk a little bit of philosophy to start with. And the first thing is, this is actually contentious in the world of JavaScript. But JavaScript development should not be painful. Just take a minute, I want you absorb that for a second. Let me turn that into a question. What if JavaScript development was not painful? So there's just a thing we've put up with. Well, first off, do you agree? Actually, maybe here's a better question. On a scale of one to 10, and 10 being like you could take the iron spikes of JavaScript in your body. What is your personal pain threshold for JavaScript before you're like, "Oh, this is too much?" Mine was around a seven. Zero to 10? Ben: Yeah. I'd say React alone, just such a huge step forward for building web apps. So I feel like at the point where React and es6 became the norm, we took such a big step forward in ease of development of web applications. So I'd say I'm closer to a five, even with those base level of technologies. And then the past few years, maybe that happened, I don't know, four or five years ago, there's been so many new tools that have come out in the past few years. But one of the pain points is the fact that there's been so many new tools that have come out in the past few years and it's hard to know what to use, it's hard to know what is going to be here for the long haul or what's going to disappear in a year and then leave you without support. Ben: I think that's one of the biggest pain points, is just keeping up with everything and knowing what tools are safe to use or what will might be deprecated in a year. David Price: Yeah. So all those things. Here's the trap. You spin up Create React App. This is magic, this is working so great. Okay. Now, I need to tweak Babel. Wait, webpack, I need to do some stuff with webpack. Oh, I do need to talk to data, which client for GraphQL should I use? And you run into just doing the config, which is hard. And then you run into this just overwhelming sense, especially if you are new, overwhelming amount of options that you could have, and you don't really know how to evaluate them all. So we've had this wonderful explosion of the ecosystem of potential solutions, we've had this wonderful explosion of the ability to integrate those pieces together, and all of that has made it really challenging to do both, make a choice and then integrate it altogether. David Price: And in the meantime, there's been some resolution around some solutions that are working. React works really well, and it's not the only one, but React works really well and there's great tooling around it, etc. So one of the things that Redwood really wanted to do, and this is a really long way of getting around to the answer of here's the Catch-22, I'm telling you that there's too many tools in the JavaScript ecosystem that's causing pain. And I'm also telling you we created a tool that's going to make everything better. Ben: I'm sure you've seen the xkcd comic about, "We have all these competing standards. We need one universal standard." David Price: Oh yeah. That has been shared on our Slack. And so we get it, we point the fingers at ourselves. And in one sense, that's what's fun about development, is the opportunity creates some things new. So that's always going to happen, I think it's a sign of a healthy ecosystem. But you hit this maturity point where it's like, "Oh, the individual pieces are good enough. I don't know if we need to explore specifically anymore. And the gains, every time it feels really incremental, it's not these radical changes, it's incremental." And what we realized we needed was a well-integrated framework that took those pieces and made them play really nice together so that all the baseline config you needed out of the box was handled. David Price: So it was hidden, it was in the packages for the framework, you could override them when you needed to, so it would be extensible, but all the hard things to do that make it challenging to get up and get running are just done. That's the approach we took. So React, GraphQL, and Prisma. And then also, I think another thing that's important about Redwood and we could talk more about, is it had a dream of an experience, a developer experience you would have using this, that it would actually be pleasurable to use. That you might just enjoy getting to do all day business app product logic things, and not have to worry about other stuff. David Price: So there really was a dream of a developer experience. And I can talk about what influenced that and how we built that. So we started with a tutorial. We had a tutorial-driven development for that vision of what we wanted it to be like, feel like, look like including code. And then we integrated and did the configuration and added in the missing pieces so that you could have that kind of experience. So we did some things to make it work really well at Prisma using command line tools. And we built a workflow to work with your database so that it felt really natural and felt like you had super powers, especially if you've never worked with an API and database before. David Price: We did the same, just backend to frontend. So the GraphQL API really well integrated, and it just worked. And we did some really magical things around data loading on the frontend with React. So go to our website, RedwoodJS.com and check out cells. It's on the homepage. But look at the concept for cells. It's in React speak, it's a higher order component, but all you need to know is that it's one thing, it's one component, it queries, it gets the data, and it handles all the states you might need for a component. It handles the error, it handles success, it handles loading and everything in between, all in one component. David Price: And then you can use that component wherever you want within the levels or layers of rendering, and that's a cell. So we could only pull off a cell because everything else was really well integrated in the stack. So that's how we did it. We needed these things to not just be a part of the framework, but really play nice within a vision of how that flow would work. Ben: Yeah. That's super helpful. And it's a bit hard to talk about code sometimes on the podcast because it's really abstract without actually seeing it. David Price: Sure. Sure. Ben: But I think definitely that makes sense at a high level. And I'd be curious to hear a bit more about the CLI you mentioned. Correct me if I'm wrong, but you can use the CLI to quickly scaffold an app and save some of the time of writing lots of boilerplate files and functions. David Price: Yeah. So one of the visions around the developer experience... This is a Rails for JavaScript, for example, that's where that comes in. And what that does not mean is that we have done a one-to-one clone of Ruby on Rails in RedwoodJS, that is not true, but there are things about using Rails that are really nice and make it a real pleasure to use, and that was what we were going for. So to really be specific, we wanted to make sure that when you fire it up a Redwood app and you did the things we wanted you to do, and we'll talk about our tutorial here in a minute, that you had a golden path that would just lead you in the right direction. So you would have to try really hard to get outside that golden path to do things differently. It's just, by conventions, you would just go with the flow and things would work. David Price: And we wanted that experience. And then also, this idea of command line generators and really using the CLI commands. So Redwood has its own CLI to just get up and running really quickly. So we have these command line generators. So your command line, you've spun up a Redwood app, you would run yarn, Redwood, generate page, and you could give the page a name. But it creates everything in the framework you need to have a home page, for example, or an about page. And it gives you all that boilerplate code, which is really nice. Running that generator shows you, if you look at the code, how Redwood integrates together. David Price: This is where it feels just magic. So when you integrate well and you have a very low tolerance for pain, you can do things like, okay, you go into your... For people that are afraid of database, I promise this is very painless. There is a Prisma.schema file, and that's where you tell Prisma what you want your database structure to be, your tables. So you're modeling your database. And there's a Prisma syntax for that, which is really nice. You create a model which effectively becomes a table in your database, and you just tell it what you want there. It's going to be an author of a blog post, for example. David Price: So you want to have a name, maybe first name, last name. You would want to have day created, unique ID and that's it. You just need a few fields. And then with the command line, you would say, yarn, Redwood, generate, scaffold, whatever the name that says author. And you have all the CRUD, so front end components, you need to create, delete, update that author. You can create authors now, you get all the UI you need, and it talks directly to your database with one command at CLI. Boom, it's all up and running. And that's where people do that for the first time and they go, "Okay, that's pretty sweet." David Price: All the React components, I didn't have to create and all the database... It's just done in one command, plus, because this is a part of long-term maintainability, that's another thing we're going achieve, you get Jest test files, you get Storybook files along with running a generator because it turns out, everybody tells you to do tests, but you know what's hard? Setting up tests and integrating tests. It took us over six months to get Jest to run across our API and web client. It was hard. But now, you go through our tutorial online, you get to the end of it and you can spin up all your Jest tests. David Price: You could see that the boilerplate ones you get all pass. Some of them have instructions about how to improve those boilerplate tests. But you get mock files, you can mock your API and your database data, and you can do the same for Storybook, and all of that happens at the command line. So that's what we mean by like, wouldn't it be nice if we just had Storybook working? Wouldn't it be nice if we just had unit tests? And then a lot of people don't ever do those things, because if you're a sole proprietor shop, just you building an app, you just don't have time. But with Redwood, we give you your time back. David Price: That was a lot of things, but I'm excited because it's really fun, and getting to demo these things to people and just watch them go like, "Oh." We had someone who was one of the founders that started Storybook and we showed him how cells, so all of our data loading with our React component works with Storybook. And so you can actually use Storybook, fire it up, and it's already mocked out and shows you all those states of your cell component. And he was like, "I've never seen that before." And that's one of the guys that created a Storybook. Ben: Was that a Zoltan or Tom? David Price: No, that was Arunoda. Ben: I was going to say we had Zoltan on the podcast, and he's from Chroma and they work on Storybook. David Price: Yeah. He was one of the early authors of Next.js as well. He's wonderful. He would actually be a great addition to the podcast and we'd love to make an introduction. Kate: So if he's listening right now. No, I'm just kidding. David Price: If he's listening right now. I met him recently, but I knew him from the MeteorJS days. That feels like 40 years ago, that MeteorJS, but there was a wonderful community of people that got their start with the MetetorJS community early on. Kate: It's funny. I was just telling Ben that I don't think we've gotten a single podcast episode without talking about Meteor. David Price: Right. They really kicked off some things and everybody's wanted that experience. And also we're still trying to figure out what happened in Meteor. It's still a great tool, but like it was a rocket ship and then it kind of stalled. I'm like, "Why? What happened?" Anyway.. Ben: Yeah, They were so ahead of their time on so many of these ideas and really foresaw the modern single-page, full-stack, JAMstack, whatever you want to call it. They had built so much of this, but yeah, I'm not sure what happened over the past few years. I guess maybe with the rise of React, the best-of-breed tools for every part of the tool chain, the idea of using an all-in-one framework, it was just impossible for them to keep up with the speed of development of all these individual tools. I like that with Redwood, you're leveraging Prisma, React, and GraphQL and all the best-of-breed individual tools, and just building the glue and some of the developer tooling to speed up the overall process. David Price: Yeah. With the intention that people can swap things out if they need to. We don't want to have lock-in. But that comes down the road. We don't want you to have to think about, "Hey, which GraphQL should I use to start out?" Because that's a long process. And as long as you can make the change down the road when you need to, we'll start you off with a good one, then that's okay. And the same with all those things, they need to be swapable, but not to start. To start, you need to be able to get in and feel comfortable. Which, by the way, would be a great place for me to say, another thing we did really well and not me... So I say we a lot and there's a core team, there were four of us. David Price: So I mentioned Tom and Peter, Rob Cameron, who's been a Rails developer for a long time. So expert in Rails. And so his pain threshold was really low and he influenced a lot of the Rails feel, and he wrote our tutorials, and then myself. And that was the first four on the core team. And our core team is now 12 people, men and women from all over the world, which is really fun. And by the way, we want anyone and everyone who wants to be a part of our community at some level, contributors and becoming a core team, we want to make that happen. We could talk more about that, but I'm a person who loves helping people become a part of a core team. So reach me on that. David Price: But Rob created a tutorial, getting back to my point, that was as important as the code. So if you go to RedwoodJS.com, the place to start is the Redwood tutorial. And we just launched the Redwood, Part II: Redwood's Revenge, because every tutorial part two clearly needs a good subtitle. So Redwood, Part II: Redwood's Revenge covers that missing pieces of the DX. It is going to be a part of the Redwood version one release. And we're expecting that to come out in the next two to three months, but we just realized we hadn't quite gone through in the first tutorial, first part one, we hadn't really taken people through the full experience of Redwood. David Price: You got to create an app, you understood the tools, the command line, there's also an IDE for Redwood that's really helpful. So we've really focused on tooling. You got to see how Redwood integrates, experience a full stack, front end to back, and experience the tools and learn how those things go, but then it didn't take you into Storybook, some advanced things you can do with the database in Prisma. And that's what happens in the tutorial part too. Ben: You're in 0. currently, but as you mentioned, you're launching 1.0, what's missing today that you have to ship before you're ready to hit that 1.0 and call it production ready? David Price: Yeah. Courage is probably one of those things. I've spent a lot of years shipping products and, oh man, it is amazing how you start to get toward any milestone and emotionally you just want more, you want to make it better, you want to make it perfect, your vision expands in a really beautiful way. So we wrote the tutorial part two to actually limit that scope a little bit and say, "Okay, we used the tutorial to start this, let's take our own medicine and let's write the second part of the tutorial, and the back end to it. So what you'll find that was missing is we hadn't finished our JS suite, that is done. David Price: There are some integration things and some things around the GraphQL client we wanted to finish and that is done, but there's some really cool things coming up. One of them being pre-render. So we have had a lot of conversations internally about Redwood at scale. And there's so much conversation happening right now around, and honestly it all boils down to like, "What's your lighthouse score? You want to see mine? It's all 100." Helpful to an extent, but the bigger question is, how do you scale your application in a way that fits all this serverless dream or the JAMstack dream has to do a lot with caching. David Price: And we've had some extensive conversations over months of where we want Redwood to be able to go for all the things that means when you need to scale. And it's not just surprise, incremental rendering. It's not just server-side rendering, it's not just rendering a build time, it's all those things and a little bit more. And then for a developer to be able to control those things with code. So that's where we want to go some day, but we're starting with pre-render because you do want to have high performance pages when you have data loading or marketing pages, you want to be able to render those at build time, and the PR is open now, and it's amazing. David Price: Danny's been crushing on that one, so go check and you could actually chime in if there's other things you want to see, but Redwood pre-render will be included. Full TypeScript support is another thing that's coming. Because Redwood started about two years ago, believe it or not, two years ago TypeScript was not in the full hype that it is now, and I love consuming TypeScript. Don't get me wrong, I really don't like writing TypeScript. Maybe that's again, because of the time I started developing, but we're going to have full front to backend TypeScript support for the app specifically, but you'd be able to start your Redwood app, which is yarn create redwood-app, and then the name of the director you want to put it in and it will default to TypeScript. David Price: So your new installation of Redwood, everything would be in TypeScript, or you could start with the JavaScript and solution. Those are two major ones. We have some things we're going to do around securing GraphQL end points, just because that's always interesting, and it gets even more interesting when it comes to serverless functions and running GraphQL API on serverless. So we'll be securing your end points. Those are the highlights off the top of my head. We have a whole roadmap. If you go to GitHub and look at the RedwoodJS Project, in our project boards and on our website as well, there's a roadmap that talks through everything we're trying to hit by version one. And we're at a really good place. David Price: So that'll be coming really quite soon. But pre-render and TypeScript support, those will be the things that a lot of people get really excited about when they come out in v1. Ben: Yeah, and the TypeScript is particularly exciting when we spoke to Nicholas from Prisma, we talked a lot about how nicely Prisma TypeScript and GraphQL work together to give the end-to-end type safety and stuff like that. So I'm sure that'll be big for Redwood developers. David Price: Yes, absolutely. Ben: And I'm curious, Prisma, they're like a commercial entity, venture backed, what are the long-term plans for Redwood in terms of, I'm not sure, are you guys a nonprofit currently or is there a goal to build a company around Redwood? David Price: I don't know. We are a Tom-sponsored project at this point in time. So Tom has been a family friend. I first met Tom at a climbing gym in San Francisco when I moved there with my young family, we have children the same age, we live five blocks away from each other, which isn't that the way things work, there's a lot of serendipity and just being friends. So Tom and I have had a lot of beers and a lot of pizza in a wonderful little neighborhood spot over a lot of years in San Francisco. And that's where we talked about all these kinds of things. And there was an exit that happened with GitHub, it got purchased by this large entity and Tom has some resources that he wants to deploy to the world of open source. David Price: He is passionate about open source, he is passionate open source communities, which let's make sure we talk about that before we go, because man, we are putting so much intention and effort in creating the best open source community possible. And I spend 80% of my days just on the community side of things, but that's what Tom wanted to do. He wanted to create something that didn't exist that was open source, that also was a leverage point for an amazing community to take hold and form and grow and scale over time. So that's what we've done, but there are startups on Redwood now, there are funded startups on Redwood. David Price: There are people who are getting hired as Redwood developers, and that's also a place where we can support, Tom's invested in some of those, and we brought some startups and Tom had invested in the Redwood ecosystem to help out. So those are some perhaps business opportunities there, but right now there's no plans to turn it into a commercial product. We don't know what that might be. We take ideas, we're not looking for venture capital investment right now. We've gotten those emails, but we just want to build something awesome and give it to the world right now and see what people do with it. Kate: Great. Let's talk about the RedwoodJS community. You mentioned that during Covid, it allowed for a few people to be online, but it's more than a few people, it is like a full force community. So let's unpack that. Also, it's interesting because talking about collaborative community, you could also talk about it from the aspect of keeping Netlify in the loop, keeping everyone in the loop, keeping contributors in the loop, that sort of stuff. So tell us more about that. David Price: Yeah. Our community is not just the one you see public at large, but we talked to the Netlify crew, founders included. We talked to the Vercel crew, which are all wonderful and Prisma. So it's fun to get to be in the center. And I've been doing these things for a long time, but to be at some central point in an ecosystem that's forming has been really exciting, and there's community happening at every level. And I think that's a real exciting thing about open source, it's not just the external, it's internal. And as I mentioned too, there's other startups that have been in existence and they want to help out and they've jumped in as well. David Price: That's been a blast and it's a joy, because I tell you what, the thing that will last and a lot of people could tell that you stories, from any project you do, especially in open source is 10 years down the road, I'm not sure how things are going to sort out. I'm not sure if it'll be Redwood or something that evolve from Redwood or Prisma or something that evolve from Prisma, but what I do know is that these relationships will all carry forward. And that's a really exciting reason to be a part of open source. But we started out with a vision for what we wanted the community to be like, feel like, we love building things with other people and that's everyone that was on the core team. David Price: And also, we just had an intuitive feel for what that needed to be like. I myself has spent a lot of time thinking, learning about teams and team performance, and it all boils down to this, if you trust the people you're collaborating with, if you communicate well with them, you take more risks and those risks end up leading you to better solutions. And because you can take risks, you're also willing to let mistakes get made, that's a part of risk-taking, but you trust the people on your team to have your back and also not ruin you if a mistake happens. So those are the ingredients you need to have a team. David Price: And then you're happy. Everybody has teams they've experienced like that they just love being a part of. So that's what we wanted to take to the world. And we just had to be really intentional to start giving people permission and invitation to come be a part of the thing. It turns out it's really hard to hang out with people you've never met, and you need to be really right and it's awkward. And especially when it comes to submitting it, we've had so many people submit their first PR ever for open source to Redwood. And that's a nerve wracking experience because you don't want to screw up. David Price: I have eight-year-old twin daughters and most of their life and engaging with their peers is, I just want them to like me. And it turns out that carries on to adulthood, you really at the end, you want people to like you and you don't want to do something wrong. And that's experience we all have. So we wanted to make sure the invitation was out there. We welcome you to be a part of this project and contribute, not just code, but docs, not just docs, but support. And we wanted to set a culture and instill and cultivate the right values and behavior. And we just started with generosity and gratitude. David Price: We knew that had to lead the way because that would plant the seeds of all the things we wanted. So that means we help people on our community forums, in our chat, a ton. You'll see core team members spend an hour doing diagnosis on problems with Redwood. You'll see a team gather around someone building a new product on Redwood that otherwise would be a solo founder, but gets to the end of the product and launches, this is Danny story at Tape.sh, which is a wonderful screen recording app. He built it all by himself, because it's a GraphQL API, it's got a CLI client, it's got electron, it's got a web app, it runs next JS for some screen-sharing. David Price: And Danny, he built it all himself, but he would never tell you he did it alone. And that's because of the community that we have. So it boils down to this. Our mantra is, we help each other be successful with Redwood so that Redwood will be successful. And then we just distill that down into everyday behavior and things we do. So we are running some challenges, building community is hard, but the size and the scale of the community it's growing and it's been amazing to see. And we have all kinds of people from just out of bootcamp or in bootcamp devs that are part of the core and the inner group and people that have been decades developer experience that are part of it. David Price: And everybody's at the end of the day, having some level of fun being a part of this community. So I said a lot of words there, but I could say more because you know what, we love the people that are a part of this project and then will be. And again, we put a ton of time into making sure that it's an enjoyable place to be on the internet, which is harder than it sounds some days. Internets can be a very unfriendly place. Kate: Right. We talked a little bit about, in December, you tweeted out that you had 150 contributors, and now it's probably closer to 160 in pretty short time, that's very impressive. And I was doing some research before this podcast and there's meetups and forums and you're pretty active in all of them. And I think that's been a huge part of growing that community. Was that intentional that you're going to spend all this time in meetups or was it built along the way? David Price: It was built along the way, but once we kicked it off and people were talking about Redwood and we'd reach out to them and say, "Hey, are you excited about it? How can we help you dive in if you want to.?" And then we had this initial group of people that we thought, "We need to hang out with them and we're not going to be able to do it in person because this whole global pandemic, but let's run a virtual meetup." And now we run, well in 2021, we're going to have two contributor group meetups a month and two RedwoodJS meetups a month. And the reason we do that is because people love it. David Price: And when we find someone that's a little bit excited about Redwood, invite them, so community at large and just say, "Hey, how can we help you get plugged in, because we'd love to? Do you want to get plugged in? How can we make that work?" They do. And maybe they start helping people on the forums or in our chat, or they jump in our GitHub issues. And then we say, "Oh, you're excited about Redwood, would you like to come to our contributors group meetups?" And that's a loosely held invite only, we want to keep it a little bit of a smaller group, but it's about 15 people twice a month that get together that get to know each other and talk about the things they like about Redwood and want to help out with. David Price: And then you know what happens when you hang out with those people and say like, we'd love to have your help? They help. They're like, "Really? I can help you? I would love to. You guys seem like friendly, nice people, let's do this." And then they jump in. So you get this wonderful feedback loop of as the people there it's like it's painful to run all those and organize. And it's me, I'm organizing all those, and I'm like, "Oh my gosh, I'm going to manually... I got 20 invites this week." And then they show up and like, "Oh, you guys are amazing. This is so much fun." And then they jump in on the GitHub issues next week and I'm like, "I'm going to do it again. I'm going to invite people back." David Price: And so that's the experience of everyone on the team. And I do want to talk about, here's what's missing, these things tend to grow organically, which means it's about relationships, which is a good thing until it's not. My network turns out to be highly North American white males, because guess what? I'm a North American white male, and I know a lot of people in elementary school because my kids are at elementary school. But that's my network and the people that I know. So we have people who say, "This is the most exciting, welcoming, inclusive community I've ever experienced." David Price: But from the outside looking in, it doesn't look that way yet, and it's because there's just something not working in the world of technology, because it's a global thing too, access take time. Access to have the right time zone, to do these things. Those things are all barriers that we're figuring out how to overcome, but we just need to spend more time. And we are, and I've been very intentionally reaching out and creating relationships that don't exist and wouldn't happen unless we're intentional about it. And then making sure we invite people in that might not be represented group already to get that diversity we want, because it turns out, things are better when there's people from all over and all kinds of people that participate. David Price: And we've laid the foundation culturally, that I know, but oh man, it didn't happen naturally. We thought it would, but that's been hard. And I think that's true to open source at large. And Kate, I'm sure you could tell some more stories of your experience in that world too. And honestly, I should have left some time to hear those stories because that's the other thing I need to do is we're just trying to listen really well to understand. Kate: Yeah. It really starts with conscious decisions every day, and sounds like Redwood's really putting that as a priority. David Price: Yeah. And then the right ones and learning, and being willing to make mistakes. Again, people don't like to do that, but it turns out, I'm getting more comfortable with that. So we’re out there and hopefully, the same generosity and gratitude that we're extending, hopefully that's reciprocal because, oh my, I know there's times when I've needed it as well and I've received it. So thank you to those people. Kate: David, what are you excited about in web development maybe outside of RedwoodJS? David Price: A theme I've brought up several times here, Tom's words, Thomas Preston-Werner, this idea of a universal deployment machine. And I've been an entrepreneur for a while and spent a lot of time building things, and we've come a long way in DevOps and infrastructure and methodology and all these things around continuous deployment. It turns out continuous deployment is the measure of things. If you can drive continuous deployment, then you drive a whole lot of other things in your product and your company, but we're really not there yet. David Price: And one of the surprises I had this last year with Redwood and being edge ready, so serverless deploy out of the box is how quickly we hit some limitations in that infrastructure. And there's some awesome things in serverless, but you run in the same problem that we did with Redwood, which is integration and configuration. So okay, we're not there yet, but I think there is a future coming and I've seen it. I've actually seen some of these demos, but it's the crazy research software world, but there's a future coming where everything that we think of now as a separate entity of DevOps and infrastructure, which is distinct from the code and the application we write, that gap, the distance between those two things is going to get smaller and smaller and smaller until they touch and until they get integrated into one thing. David Price: So, it's not going to be next year or three years, maybe five years with somewhere in the next five to 10 years. The way you think about infrastructure and DevOps is going to fundamentally change, I believe. And it will all be in code and in your IDE and the ways you'll get to think about the performance of your application will be just a part of the code itself. And that gets me excited. So that'll be fun. And that's not Redwood, Redwood is pushing into that boundary, but I think there's some exciting things beyond that and hopefully Redwood evolves to absorb and take in. Anyway, that gets me excited, but it's because I spent time dealing with those things and those problems, but that's something I'm looking forward to. Kate: Yeah. I actually did a code bootcamp and it was like week one, day one, you're learning about bundlers and what pack and you just want to make stuff. This goes back to your point earlier is, even just as very beginner level, it's really interesting. David Price: What if your experience of just getting to make the thing and build the app? Redwood, we really try to do that. We have these things called serverlesses, and that's where you write your logic code, your business logic, and everything's integrated. So I'm thinking about it, but what if even more and more that feeling of, I just want to create the functionality, not have to worry about everything else. And how many apps have I created and just didn't want to do all the deploys stuff, so they just sat. It's so funny. Yeah, it's going to be fun. David Price: And what that leads to because that's really driving continuous deployment, you drive all these other opportunities and performance and opportunities for businesses, but both like what it takes to have the team and all that stuff starts to change and shift. So you get new opportunities beyond that too. So we'll see. We're going to see it. Kate: David, it has been great. We may have to have you on for part two because we have so much more to talk about. David Price: You can tell I love talking about these things and I would love to make some friends. It turns out I've met a lot of really cool people and I would love to wrangle more than maybe one or more to come and join me if we did this again. Kate: That'd be great. Yeah. Is there anything you'd like to tell our listeners? David Price: Oh, I have things. One thing that's coming in Redwood version one that I didn't mention yet, we'll be logging, so built-in logging and handling so that you could plug in. The built-in support for logging is coming in version one, and there's some opportunities for other people to jump in and make that even more extensible for certain services. So that's one thing. I am the David Price on the internet because there's a lot of David Prices. I am not the wealthy ones nor the famous ones. I am just the David. Find me, find me on the internet. And then lastly, and Kate, this is the most important thing, we will send you Redwood stickers anywhere in the world, free of charge. David Price: So you're welcome to try, it's RedwoodJS.com/stickers, because who doesn't love stickers? Go to the website, fill out the form. It is not a trap, we will not use your address for anything other than it ends up on a spreadsheet somewhere, and then we will mail you stickers. It may take four weeks or so, depending on where you live, but we promise, stickers will arrive in your mailbox sometime in the future. And we'd love to send them your way. Kate: If you're missing all those conference stickers that you get, come home with bags of them, nows your chance. David Price: Exactly. Redwood, yes, it's a beautiful little pine cone and it can go wherever stickers go these days, you will have them in hand. Kate: Cool. Awesome. Well, thank you so much, David. It's been a pleasure. David Price: Okay. Same here. Thank you, Ben. Thank you, Kate. Really exciting. And for anyone who wants to jump in and try out Redwood, start with these tutorial and jump into the community, we would love to say hi. Brian: Hey, it's Brian again. It turns out that running a podcast is maybe harder than we thought, and so, I want to hear from you. I'm genuinely interested in your feedback. We have to think about new topics, new guests, we have to find them. And don't get me wrong, we can do it, but it's a lot easier if everyone else who's listening helps. So if you'd like to suggest the topic or volunteer to be on PodRocket, we'd like to hear from you. So you can do that by going to podrocket.logrocket.com/contact-us. The hyphen is next to the Delete key, if you're curious. Brian: If all of that is too long, you can just email me directly, Brian@LogRocket.com. That'd be great. Also, if you're feeling magnanimous, be sure to like and subscribe to PodRocket. Thank you.