The Jamstack Goes Full-Stack: RedwoodJS Framework TutorialMay 21, 2020
I can hear it already, screams through my screen, coming from heated dev-focused threads all over the web:
But trust us, we wouldn’t be talking about it if we didn’t think it was innovative and potentially special.
Time to meet RedwoodJS: a new Jamstack framework for full-stack web applications.
Don’t worry; I’ll clear up these concepts to understand what Redwood is all about. I’ll then follow with a step-by-step tutorial and live demo to see it in action.
Here’s what the tutorial covers:
- Creating a RedwoodJS app
- Generating the scaffolding for CRUD operations
- Deploying the Redwood project
- Securing the app with Netlify Identify & Redwood auth
- Securing a GraphQL endpoint
Let’s get into it!
What is RedwoodJS?
Redwood is the brainchild of great dev minds, including Tom Preston-Werner, whom you might know best as the co-founder of GitHub and Jekyll creator.
In the words of its official GitHub repo: “Redwood is an opinionated, full-stack, serverless web application framework that will allow you to build and deploy JAMstack applications with ease.”
Lot of concepts crammed into a single sentence. Let’s deconstruct this a little bit.
It’s important to note that Redwood is still in the alpha phase of development. While it's not recommended to go live with Redwood applications yet, all early input are useful.. Head to the Redwood community forum if you want to help!
→ Highly opinionated—Getting started with the Jamstack can be overwhelming because there are so many tools to choose from. It can take a while before assembling the necessary pieces for a new project, from static site generators to serverless functions and third-party APIs.
Redwood cuts to the chase in terms of decision-making by picking these pieces for you. With technologies such as React, GraphQL, and AWS Lambda, you’re in good hands, though.
→ Brings full-stack to the Jamstack—Redwood generates applications that have the necessary configurations to let your frontend talk to a database and all the parts in between.
→ Leverages serverless functions—They're front and center in Redwood’s philosophy. It opens up many opportunities for devs when it comes to scaling up projects without worrying about infrastructure maintenance. You can read our take on serverless functions right here.
→ Built on React—For developers with a strong React background (like me) learning Redwood isn’t such a stretch. Same thing for technologies such as GraphQL, Prisma, or AWS Lambda.
Why another framework for the Jamstack ecosystem?
Tools like React, which we’re used to calling “frameworks”, often act more as libraries. Redwood is a proper framework, deciding which technologies you should use, how to organize your code, how to name things, etc.
One of the issues many developers have with the Jamstack, and the JS ecosystem at large, is the lack of conventions.