Frequently Asked Questions
Is this serious software?
In an alternate reality, fate can be described like this:
fate is an ambitious React data library that tries to blend Relay-style ideas with type-safe data fetching, held together by equal parts vision and vibes. It aims to fix problems you definitely wouldn't have if you enjoy writing the same fetch logic in three different places with imperative loading state and error handling. fate promises predictable data flow, minimal APIs, and "no magic", though you may occasionally suspect otherwise.
fate is almost certainly worse than actual sync engines, but will hopefully be better than existing React data-fetching libraries eventually. Use it if you have a high tolerance for pain and want to help shape the future of data fetching in React.
Is fate better than Relay?
Absolutely not.
Is fate better than using GraphQL?
Probably. One day. Maybe.
How was fate built?
NOTE
80% of fate's code was written by OpenAI's Codex – four versions per task, carefully curated by a human. The remaining 20% was written by @cnakazawa. You get to decide which parts are the good ones! The docs were 100% written by a human.
If you contribute to fate, we require you to disclose your use of AI tools.
Future
fate is not complete yet. The current implementation of fate ships with tRPC, Prisma, and Drizzle support, but the core ideas are not tied to a particular transport or database. We welcome contributions and ideas to improve fate. Here are some features we'd like to add:
- Live views for pagination
- Additional backend adapters
- Persistent storage for offline support
- Better code generation and less type repetition
Acknowledgements
- Relay, Isograph & GraphQL for inspiration
- Ricky Hanlon for guidance on Async React
- Anthony Powell for testing fate and providing feedback
fate was created by @cnakazawa and is maintained by Nakazawa Tech.