Avec le framework open source Redwood, les développeurs à l'origine du projet, dont le co-fondateur de GitHub, Tom Preston-Werner, proposent un framework d'application web sans serveur, à la fois full-stack et opiniâtre, pour créer des applications JAMStack.

Redwood utilise JavaScript en front-end et en back-end d'une application, ce qui permet de simplifier certains aspects en termes de réutilisation de code et de recrutement de développeurs. Dans sa présentation de Redwood, appelé aussi Redwood.js, l'équipe du projet propose aux développeurs d’imaginer une bibliothèque React JavaScript en front-end livrée statiquement à partir d’un CDN, communiquant, via le langage de requête GraphQL, avec un back-end mondial fonctionnant sur AWS Lambda, déployable simplement avec un git push.

Un couplage efficace

De nombreuses décisions opérationnelles ayant déjà été prises via Redwood lui-même, les développeurs peuvent se concentrer sur la spécificité de leurs applications au lieu de se focaliser sur les configurations et autres. JAMStack s'appuie sur les principes fondamentaux de pré-rendu et de découplage. Son architecture est destinée à rendre le web plus rapide, plus sûr et plus évolutif. JAMStack combine les philosophies de développement DevOps modernes avec les pages HTML statiques.

Accessible depuis GitHub, Redwood se trouve actuellement au stade de la version .20, une version 1.0 stable étant prévue pour la fin de l’année 2020. Dans la liste des technologies à utiliser par une application Redwood standard, on trouve :

- React

- GraphQL

- La boîte à outils de base de données Prisma

- Le framework de test Jest JavaScript (bientôt disponible)

- L’outil Storybook pour développer des applications UI (bientôt disponible)

- Le compilateur JavaScript Babel

- Le bundler Webpack

Redwood proposera des valeurs par défaut de formatage et son propre routeur pour mettre à jour de manière dynamique le chemin d’une route sans rompre les liens. Le fractionnement automatique des pages fait également parti des capacités. L'un des principaux objectifs du projet est la suppression du code boilerplate. Il est prévu que les applications Redwood utilisent le langage TypeScript par défaut. On trouve dans GitHub des exemples d'applications utilisant Redwood, notamment une app todo, un blog et une app de facturation.