Log in to GraphQL Editor
RedwoodJS - bring full-stack to your JAMstack
Tomek

Tomek Poniatowicz

11/23/2020

RedwoodJS - bring full-stack to your JAMstack

Jamstack is a new architectural approach with the core principle of pre-rendering aiming to make web applications to:

  • run faster,
  • be more secure,
  • be easier to scale.

All that achieved with the use of many modern tools to bring productivity to the maximum. Sounds interesting right? This approach is gaining a lot of popularity which makes a market for new tooling supporting the Jamstack approach. RedwoodsJS is one of the new shining stars, its team believes that JAMstack is a huge leap forward in web development and they are doing their best to make it even more pleasant to work with.

RedwoodJS

Redwood is an open-source project initiated by Tom Preston-Werner, the co-founder of GitHub & creator of Jekyll - one of the first static site generators. So what is Redwood?

Imagine a React frontend, statically delivered by CDN, that talks via GraphQL to your backend running on AWS Lambdas around the world, all deployable with just a git push—that's Redwood.

RedwoodJS is a highly opinionated, full-stack, serverless web application framework that aims to make building and deploying JAMstack apps as easy as possible.

The stack

RedwoodJS uses some of the most popular cutting-edge technologies and by giving up the freedom of choosing your tech stack, you are gaining a significant reduction of the level of complexity of setting up all services to make your infrastructure work as intended:

  • Frontend - this part is covered by React supported by Apollo and it has a lot of code generators involved which let you create everything i.e. routes, pages, cells (even with already pre-configured tests) out of the box.

  • Backend - it's becoming difficult to talk about cutting-edge technologies without putting GraphQL into the equation. Redwood uses Prisma for its GraphQL backend, enabling quick creation of backends with graphical interfaces.

  • Deployment - Redwood's development team has support for several deployment targets on their roadmap with a top-priority to make deployment strategies in a way that makes it easy for additional targets to be added, as well as to make it easy to adjust to user's own deployment strategy. Right now it offers out of the box deployment to Netlify and Vercel, with AWS and Google Cloud Run high on their road map.

Diagram presenting RedwoodJS structure

Source: redwoodjs.com

Concepts & features

Redwood features a lot of new interesting concepts as well as brings a breath of fresh air to well-known ones. One of the most interesting ones are definitely:

  • Cells - they are one of the signature modes of abstraction in Redwood. Cells represent a declarative approach to data fetching which creates space (by providing conventions around data fetching) in between the request and the response which Redwood can utilize to perform its optimizations. All of this without writing a line of imperative code.

RedwoodJS cells concept

Source: redwoodjs.com
  • Redwood Router - Redwood features its own router that took inspiration from React Router, Ruby on Rails and Reach Router. It brings some awesome innovation to this crucial part of your app.

Router in RedwoodJS

Source: redwoodjs.com

If you interested in more detailed information about Redwood's concepts and its implementation make sure to visit the official docs.

Not a 1.0 version

RedwoodJS software has not reached a stable version 1.0 yet. Its team put Redwood in the later stages of the "make it work" phase in the "make it work; make it right; make it fast" paradigm. Although this makes it not suitable for production use, Redwood is a concept that is definitely worth following.

Check out our other blogposts

GraphQL Resources - beginner tools, extensions & tutorials
Tomek Poniatowicz
Tomek Poniatowicz
GraphQL Resources - beginner tools, extensions & tutorials
2 min read
about 5 years ago
Visualise your graphql schema
Artur Czemiel
Artur Czemiel
Visualise your graphql schema
1 min read
over 5 years ago
Zustand - react state management made easy
Michał Tyszkiewicz
Michał Tyszkiewicz
Zustand - react state management made easy
5 min read
about 1 year ago

Ready for take-off?

Elevate your work with our editor that combines world-class visual graph, documentation and API console

Get Started with GraphQL Editor