Dev.to
5/11/2026

I was sick of InversifyJS after 3 years in production, so I built a better DI container
Short summary
After 3 years struggling with InversifyJS—merge conflicts on binding files, forgotten bindings caught only at runtime, dangerous token/type mismatches—a developer built lazy-di, a zero-ceremony DI container for TypeScript that uses constructor types as tokens, eliminating manual registration entirely. In production use but early-stage with limitations around interface tokens.
- •InversifyJS required manual binding files that caused recurring merge conflicts and runtime errors from forgotten bindings
- •lazy-di eliminates ceremony by using TypeScript constructor types as tokens—no binding files, no @inject decorators required
- •Tool is production-ready but early-stage; cannot yet support interface tokens due to TypeScript runtime constraints
Generated with AI, which can make mistakes.
Is this a good recommendation for you?



