Redwood.js
RedwoodJS is a full-stack, open-source JavaScript framework for building web applications. It was launched in 2020 by Tom Preston-Werner, a GitHub co-founder. Redwood uses a unique combination of established technologies:
- The front-end is built with React, a popular JavaScript library for building user interfaces.
- For the back-end, Redwood uses GraphQL, a query language for APIs that allows you to request specific data and aggregate responses from multiple sources.
- It utilizes Prisma as an Object-Relational Mapping (ORM) solution to manage the database layer. Prisma helps developers build performant and safe database access.
- React Router. Redwood's router is declarative, built on the idea of "routes as a first-class concept."'
- TypeScript
- Jest
- Storybook
At a high level, RedwoodJS has two main parts:
- The Back-End. This is a GraphQL API built with Prisma and Apollo (GraphQL) Server. Prisma is used for database access, and Apollo Server is used to create the GraphQL server.
- The Front-End. This is a React application that's built with several libraries like Apollo Client (for fetching data from the GraphQL API), React Router (for routing), and Jest (for testing).
Some Discoveries
While I prefer PNPM over Yarn, due to the workspace support, I like to use Yarn for this.
Getting Started
yarn create redwood-app --ts ./redwoodblog
yarn redwood dev
yarn redwood generate page home /
yarn redwood generate page about
Generating Layouts
yarn redwood g layout blog
Using Prisma
Opening Prisma Studio
yarn rw prisma studio
Scaffolding Prisma Simple CRUD
yarn rw g scaffold post
Components
yarn rw g cell Articles
When having type errors
yarn rw g types
Setting up Auth
rw setup auth supabase
The table `...` does not exist in the current database.
You need to yarn rw prisma migrate dev
Set up Storybook
yarn rw storybook
Set up Jest
yarn rw test