InversifyJS is a lightweight inversion of control (IoC) container for TypeScript and JavaScript apps. An IoC container uses a class constructor to identify and inject its dependencies. InversifyJS has a friendly API and encourages the usage of the best OOP and IoC practices. JavaScript now supports object-oriented programming with class-based inheritance. We need good object-oriented design to protect ourselves from potential threats, and thats where InversifyJS comes in. It helps JavaScript developers write code with good OO design. InversifyJS has been developed with 4 main goals: Allow JavaScript developers to write code that adheres to the SOLID principles, facilitate and encourage the adherence to the best OOP and IoC practices, add as little runtime overhead as possible, and provide a state-of-the-art development experience. Testimonies from authors such as Nate Kohari and Michel Weststrate praise the benefits of InversifyJS. Several companies, including Microsoft, Facebook, AWS, and more, are using InversifyJS in their projects. The installation of InversifyJS is straightforward and can be done using npm, yarn, or pnpm. InversifyJS requires TypeScript >= 4.4 and the experimentalDecorators, emitDecoratorMetadata, types, and lib options enabled. For a type-safe version of reflect-metadata, developers can try @abraham/reflection.