Remix.run Logo
romanonthego 6 hours ago

I built Frond, a frontend runtime that makes your app's dependency graph explicit instead of leaving it scattered across provider order, enabled: user && api.ready guards, and logout teardown scripts.

The shape: your app is a graph of nodes — services, resources, screens. Each node declares its dependencies, how it's acquired, how it's cancelled, and how it's released, all in one place. The runtime resolves them in dependency order and tracks readiness, so React stays a renderer — it consumes a node that's already ready (useNode suspends until it is) instead of re-deriving that logic inside components.

Two engines run underneath. Effect handles the async work — execution guarantees, cleanup correctness, cancellation, and typed error channels. MobX handles state — granular observable state and live updates. You declare a node's dependencies, acquire, and release; Frond runs the rest on those two.

It's v0 and the API will still move.

eyelidlessness 2 hours ago | parent | next [-]

I worked on a project a couple years back that would have benefited greatly from this approach. I look forward to giving it a spin when I have an opportunity.

I’m curious how much is React-specific, or rendering-specific for that matter. Context: the use case I had previously was “headless”, in the sense that state lifecycle was completely decoupled from rendering (with a thin library-agnostic bridge for presentation layer integration). Obviously that’s not a typical use case, I’m mainly curious because that design was partly driven by the kinds of inherent complexity that would nudge me to look for something like this in the first place.

romanonthego an hour ago | parent [-]

[flagged]

charucharu 3 hours ago | parent | prev [-]

How opinionated is Frond? Could someone adopt it incrementally, or does it need to own the entire application's dependency graph?

romanonthego 3 hours ago | parent [-]

[flagged]