Adopting Redwood for new projects

I’m an old school Python engineer (using Django for several projects) and have been spending the past few weeks playing with modern front-end approaches to make a switch for new projects (although I already use GraphQL for the APIs).

I have a side-project that I had just decided to start porting to Nextjs, but after going through your docs and vision for Redwoodjs, I’m tempted to use it instead. Great start, by the way!

I know you can’t answer that precisely, but being two months away from going to production, how risky would you feel it is to start writing code with Redwood Alpha right away?

It’s not a massive project, it currently generates low revenue, and I work on it almost as a hobby, although I have users all around the world. It has good chances of growing in size and audience in the next 12 months, so hence my question with the hope it can follow Redwoodjs and its growth. I will try and contribute as much as possible.

Thank you!

Something to consider is that not only is Redwood in alpha, but the DB library we’re relying on, Prisma2, is in alpha as well! They even have a site available to let you know it’s current production-ready status: https://www.isprisma2ready.com/

I’m pretty confident in saying that neither Redwood nor Prisma2 is going to be 1.0 in the next 2 months. We’ll be getting more stable all the time, but any release could break backwards compatibility at any moment, so even upgrading from say 0.1 to 0.2 could be a lot of manual work (update: 0.2.0 was a pretty minor update and was actually really easy!)

But if you don’t mind riding the bleeding edge and a little extra blood, sweat and tears, Redwood may be for you! :grinning:

3 Likes

I :heart: this question and want to fan the flame of your enthusiasm! (And a big fan of python myself.) But I also need to say you should proceed with slow, patient, cautious optimism. Agree with Rob here. Plus a few more thoughts.

There are going to be a lot of breaking changes in the near term. And, most importantly, the tool we use for db management, Prisma2, is not yet ready for production. You can follow current status here --> https://www.isprisma2ready.com

But that said, Redwood boils down to GraphQl and React at its core so there’s no reinvention of the wheel. We do handle a lot of boilerplate and painful config on the framework side, which means our React looks a little different (e.g. no import React from 'react' statements), leans heavily on hooks, and uses our own Redwood Router. So it’s not a one-to-one port, but porting would be possible.

How about your database? Right now we only support SQL and strongly suggest Postgres so will that be ok? And currently there are no serverless db options available, but there’s a great chance that will be an option by mid-year and highly likely by end of the year.

For scaling, Redwood deploys to CDN and Lambdas out of the box. That’s ready to go now.

Probably more I’m missing, but that’s the quick list to keep conversation started. Some other ideas:

  • Nothing answers questions better than diving in. If you’re learning React for the first time, Redwood could be a great place to get started. And you can take that skill anywhere.
  • Are there a few core features you could attempt to prototype in Redwood? That would be a quick way to confirm go/no-go
  • Have you thought in general about how you’ll port from current to a new app+technology? That might answer some questions about what to choose as well.
  • Lastly, how critical is it that you launch in 2 months? If you use new tech and it takes you 4 months, is that ok?

Hope this stuff helps!

2 Likes

Hey Rob, great point about Prisma, I wasn’t paying attention to that so will have to play with it to see how mature I think it is too. Thank you.

But if you don’t mind riding the bleeding edge and a little extra blood, sweat and tears, Redwood may be for you! :grinning:

This sounds exciting, actually. It might be a good way to keep iterating with my experiments (it’s a simple app) and being helpful to the Redwood community too, even if it’s as little as documenting upgrades instructions for each version. Thanks for taking the time!

That all makes a lot of sense, fair points. Thanks so much.

Basically, my main company is a wine subscription powered by machine learning. That what pays the bills and it’s a massive Django app that I don’t plan on changing the tech anytime soon.

On the other hand, I think this small side-project, called Duoflag. Currently, it has a simple screen for an immigration eligibility calculator (www.duoflag.com) and the paying customers are actually coming from subscribing to the premium newsletter (using Substack). So no risk on the software side, currently.

One of the most successful things so far on this project is sending a weekly list of job openings offering visa sponsorship around the world. So I would like to now build a small directory to list these companies on the website too.

There are at least other 3 or 4 needs I will need after that, but I think they’re all similarly simple enough for me to be able to start with a stack as new as Redwood and iterate and grow alongside you guys. I might even make myself helpful while documenting the journey and upgrades.

My plan now is to play with Nexjs and then Redwood. If I think I can accomplish my short-term goals with Redwood for Duoflag, then I might as well join you guys on this adventure.

As for the DB, that was super clear and it’s not a deal breaker at all, happy to keep my Postgres DB on AWS RDS for now.

Thanks again for you time, I will share my decision once I have played with this new dev approach. Excited for a change too and especially for the vision you guys have on how we will be deploying apps in the very near future.

I’m happy with Python, but this vision above is enough to convince me to start and try Node and join the modern approaches, finally haha :slight_smile:

@rob @thedavid Would it be possible to use rwjs without prisma? Or at least use prisma for what it’s ready for, but use other libraries (like knex.js) for the rest? Said differently, is prisma used only in the scaffolded services or are there other parts of redwood that are using it.

@betocmn Oh, I’m kinda jealous… sounds like a great project and experiment. :rocket: And no initial reactions otherwise as to how you might take steps forward. I think that’s a great plan. You’re going to learn the core things either way and can translate/move from one to the other the skills you learn.

And 100% agree it’s an exciting time to be an app developer! Still hard to get all the pieces to play nice with each other, but when you do it’s just :star_struck:

Let us know how it goes and hope to see your app in the “Show & Tell” someday.

1 Like

@phzbox Prisma2 is tightly integrated with Redwood. Conceptually, since at the core Redwood is GraphQL and React, it’s doable. But by no means is it plug’n play or pain free.

But the main point is probably to better explain our vision and why we are leaning into Prisma2 so you don’t have to handle a lot of the manual setup and boilerplate (plus migrations) currently required. Our dream is that you just need one API to serve all clients (and microservice integrations). And with one API you only need to focus on a simple schema with models, then Redwood helps you generate sdl, services, and does the resolvers behind the scenes. Prisma2 helps us do this (oh, and migrations!), and although it only supports SQL right now much more is coming, which won’t require Redwood devs to jump through hurdles to use SQL vs. noSQL or the future serverless dbs… or use multiple at a time.

That’s a big download of thoughts, but I hope it’s helpful to understand our vision for the future and why we have to make certain choices at the ground level.

1 Like