Show HN: Fate, a new data framework for React and tRPC, inspired by Relay

A new tool vows faster apps with fewer data trips — fans cheer, skeptics yell “reinventing the wheel”

TLDR: Fate brings Relay-style data fetching to React+tRPC without GraphQL, promising fewer requests and smarter caching. The crowd split between excitement for cleaner screens and claims it’s just another complex cache; “AI-ready” drew skepticism while pagination and optimistic updates earned real applause.

Show HN lit up when Nakazawa Tech unveiled Fate, a React data tool that borrows the best parts of Facebook’s Relay—like smart caching and bundling requests—without using GraphQL’s query language. Translation: it promises fewer app hiccups and smoother screens, while still keeping things type-safe via tRPC (a way to call your backend with built‑in correctness). Supporters raved that Fate’s “views” let components say exactly what data they need, then combine everything into one request per page. Critics clapped back: isn’t this GraphQL without the GraphQL? One camp shouted “Finally, Relay vibes without rewriting the backend,” while the other resurfaced the eternal HN feud: just use React Query (a popular data-fetching library) and keep it simple. The “AI‑ready” pitch triggered eye‑rolls, with comments joking it’s the new “blockchain‑powered,” while fans countered that explicit selections make code easy for humans and robots alike. Jokes flew—“Fate/stay code,” “choose your destiny,” and “Cache Me Outside”—but real questions lingered: will strict data masking hide fields developers expect, and who’s ready to debug another normalized cache? Still, features like cursor‑based pagination and optimistic updates got love. Curious devs grabbed the template and began stress‑testing whether Fate’s promise is destiny or just… fate.

Key Points

  • Fate is a new data client for React and tRPC inspired by Relay and GraphQL.
  • It offers view composition into single requests, normalized caching, and strict data masking to reduce overfetching and stale data.
  • Fate integrates Async React features (Actions, Suspense, use) to enable concurrent rendering and improved UX.
  • Built-in support includes connection-style lists with cursor-based pagination and declarative optimistic updates with rollback.
  • A ready-made fate-template provides a tRPC backend and React frontend, with commands via npx, pnpx, or yarn to get started.

Hottest takes

“Cool idea, but you just rebuilt GraphQL without the query language” — compile_boi
“If this kills my loading spinners, I’m in” — spinner_hater
“‘AI‑ready’ is the new ‘blockchain‑powered’” — trend_skeptic
Made with <3 by @siedrix and @shesho from CDMX. Powered by Forge&Hive.