RedwoodJS

Carl-Petter Bertell
Carl-Petter Bertell
March 21, 2020

A chip of the old block

RedwoodJS is a new Javascript framework which was released in March 2020, but this post really needs an introduction which discusses Ruby on Rails first.

Redwood

Ruby on Rails is the king of Rapid Prototyping

Ruby on Rails

I'm not a big Ruby fan but RoR was (or is) the most productive framework bar none. Since 2004 there was nothing that could match it if you wanted to throw together a full end-to-end CRUD webapp with a bunch of forms validating your data and persisting it into a database.

Then somewhere after 2012 single page apps (SPA) became popular, and the Rails core team down-played it as a fad and proposed turbolinks and so forth as good enough for rich UX.

A few years pass and eventually the Rails core team concedes that these SPAs might not go away, but by then the majority of the developer hive mind had already gone on to the next hot thing and Ruby (and Rails) wasn't shiny anymore.

SPA ├╝ber alles

No one could bridge the Backend - Frontend gap brought forth by the almighty SPA.

No one really ever came up with a Developer eXperience (DX) that matched Rails though. It wasn't possible because of the new strict Backend-Frontend separation that occured when SPAs became popular. The gap was too wide and technologies and standards with enough mindshare didn't exist. It also didn't help that developers kept changing frontend frameworks like underwear (i.e. every once or twice a year).

We were left with a vacuum; until now.

Closing the gap

Enter RedwoodJS. It is very Rails-like on the surface as it has a very similar DX, but under the covers what makes it tick is more revolutionary than evolutionary compared to Rails.

Except the language of course (Javascript, not Ruby) it builds upon the technologies born and nurtured in the JS ecosystem the last half decade. Mainly Serverless, GraphQL and React. There is no single monolithic backend, and the frontend is idiomatically served from a Content Delivery Network.

Redwood slaps together the current best libraries

Redwood slaps together the current best libraries in a "omakase" framework (they chose all the libraries for you), closes the database-backend-frontend gap using GraphQl, Prismic2, React, generators and standard conventions; then tops it off with the sort of delightful documentation which is very friendly to newcomers. All updated to the futuristic year of 2020 where the boundaries of frontend and backend finally start to fade away again.

Are we there yet?

Sort of. It all works. Many devs are still going to want Typescript support and Prisma2 is not super mature yet, but the core is there. It may take a year or two before it has big ecosystem which brings stuff like a wide array of cloud or auth providers and whatnot, but this is the first time I've seen an actual contender against Rails which can do the same stuff end-to-end, but basically better.

This is super exciting.

I don't want to be over-optimistic, but this is super exciting. I'm 95% sure this will be the stack which will be used in bootcamps to teach new devs how to build todo apps or blog engines going forward; and that will power the MVPs of the next generation of successful startups.

Welcome to the world RedwoodJS, we've been waiting for you quite a while.