Show HN: Frond – a frontend runtime for your app's dependency graph
1–10 of 21 posts
Re: Show HN: Frond – a frontend runtime for your app's dependency graph
#2The 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.
Re: Show HN: Frond – a frontend runtime for your app's dependency graph
#3Re: Show HN: Frond – a frontend runtime for your app's dependency graph
#4Re: Show HN: Frond – a frontend runtime for your app's dependency graph
#5Re: Show HN: Frond – a frontend runtime for your app's dependency graph
#6What's the advantage of this over Jotai / atomic state / computed signals, which seems to require 10× less code with mostly the same benefits?
Re: Show HN: Frond – a frontend runtime for your app's dependency graph
#7Interesting approach.The lifecycle management and teardown story seems to be the main differentiator rather than state itself.How does Frond compare to Effect's Layer system? Is it essentially bringing Layer-like dependency graphs into the React runtime?
Re: Show HN: Frond – a frontend runtime for your app's dependency graph
#8 type ProfileSpec = Frond.NodeSpec;
};
readonly result: Profile;
}>;
This begs to be its own DSL rather than TypeScript-type-meta-programming.Re: Show HN: Frond – a frontend runtime for your app's dependency graph
#9I 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 d…