Settings

Theme

React Meta-Framework Feels Broken, Here's Why

rwsdk.com

22 points by dthyresson 7 months ago · 7 comments

Reader

pistoriusp 7 months ago

I'm the author of this article, and this is the second time I've built a framework. I co-created RedwoodJS with Tom Preston-Werner several years ago - and we came up with some novel ideas, but I had a nagging feeling that something wasn't right.

A failed-startup and a kid later... and I'm back. I couldn't let go of the original vision of RedwoodJS, but I wanted to start from scratch. So we built RedwoodSDK, which is a React framework for Cloudflare. It starts as a Vite Plugin that gives you server-side-rendering, RSC, streaming, and realtime capabilities.

Our standards based route feels invisible, with simple pattern matching, middleware and interrupters. You receive a request and return a response. You own every byte over the wire.

There's zero magic. Just TypeScript, modules, functions, values, and types.

dthyressonOP 7 months ago

A new blog post argues that today’s React meta-frameworks like Next.js and Remix are too abstract and “feel broken,” adding complexity through magic and indirection. It introduces RedwoodSDK as a simpler, more transparent alternative that prioritizes native web APIs and production-parity development.

  • codingdave 7 months ago

    You don't need to (and should not) add a Tl;dr comment when you post something. If you want to tell the story of how you came up with an idea, do a "Show HN". That is the correct way to self-promote on HN.

chipgap98 7 months ago

Aren't the "defineApp" and "route" methods in rwsdk also magic? It feels like rwsdk is just being more deliberate about when and where to introduce those magic functions.

I'm a big fan of rwsdk so far. Thanks for building!

  • gadfly361 7 months ago

    I think a notable difference is with one, you can read the code in the file and understand what it will return. With others, you need to read the code and then do a mental join of the framework's conventions to know what it'll return.

  • pistoriusp 7 months ago

    Nope! They just return standard JavaScript.

    A typical worker looks something like this:

        export default {
            fetch({ request }) {
              return new Response('ok')
            } 
        }
    
    
    DefineApp just wraps that initial entry point into something that allows us to run middleware, match the router, and render out the page or the response object.

    Love that you're a fan! Remember... No magicians allowed here.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection