Tom Preston-Werner (co-founder of GitHub, board member at Netlify) joins the party and brings his new, opinionated, full-stack, serverless web app framework with him. Will Redwood help usher in the future Tom predicted back in 2018? We discuss that and a whole lot more on this must-listen episode.
Matched from the episode's transcript 👇
Tom Preston-Werner: My hope is that people never have to eject from RedwoodJS. I see it the same way as saying like “Would you ever eject from Rails?” It’s not a question that you would ask. And I know that that’s how Create React App is. But Create React App is very unopinionated. It’s a very base level of what you get. If you want anything on top of that very basic thing, you’re back to choosing technologies and trying to integrate them; and everyone does it in a different way, and then you’re like “I can’t do this one thing I really wanted to do, so now I’m gonna eject… And now I don’t get the benefit of being on top of a framework as such.”
We see RedwoodJS as a proper framework; something that is always with you, and that you always want with you, because it’s providing improvements forever. I think people will always need to be able to change the parameters a bit in how they deal with a framework. If it’s too rigid, then no one will use it, because they know that it can’t scale. That would be killer for a framework; people start using it, and then they build something and it gets popular and they’re like “We had to bail from RedwoodJS because it was too inflexible”, that’s very bad.
I think it’s also bad for a framework to be too flexible, where you’re like “Yeah, you can have any frontend. You can use React, or Vue, or Svelte, or whatever you want”, and you’re trying to cram everything together. Then the question is “What is this, and why is it helping me?” and can you really maintain a high level of integration with so many options? I don’t see it happening; it’s certainly not our intention for RedwoodJS to be super-flexible. We want it to be flexible in the ways that matter. So on the database side I want it to be very flexible.
[20:29] If at some point you want to CDN-deliver your React client, but run your own servers for your GraphQL API and all your business logic, then I think that’s fine, and RedwoodJS will be very amenable to that. So that’s a level of flexibility where you go away from serverless. You run the whole thing custom; you run it on your own CDN, you run it on your own hardware for your business logic to run your GraphQL API, you run your own database however you want… I want it to be able to run in that environment, but it’s also important to me that you can just deploy it to Netlify. It’s like “Oh, I had this idea, I coded it up, I pushed to Netlify, and it’s live. I had to set up my database right now.” I think over time that will become easier, too.
I’ve talked with the Netlify folks to hopefully make it easy to spin up simple databases through Heroku, or DigitalOcean, or something, so that you could do it without having to leave Netlify. It’d just be like “I need a database” and Netlify can be like “Cool. We’ve got it.” In the same way that they provision Lambda, they could provision – or AWS Aurora, or something. It’s like, “Give me an Aurora database, Postgres on this type of performance characteristics”, and it’s just like “Okay, here you go.” And if you need to change that later on, that’s a hassle… But companies go through that kind of migration all the time, where you need to change the capabilities of your storage layer.