Joist's mission is to bring ActiveRecord-level productivity to TypeScript/Node projects.
Joist's primary goals/differentiators are:
- Using code generation to move fast and remove boilerplate
- Avoiding N+1s through first-class dataloader integration
- Strict "load-safe" tracking of loaded vs. unloaded collections in the type system
- Robust domain modeling and bringing reactivity to the backend
- Great testing with built-in factories and other support