The problem
NestJS and Spring Boot make building structured applications feel easy — until you want to know what’s actually happening. I built an application framework in TypeScript with a manual IoC container, an adapter layer that decouples the framework core from any specific transport, and a trie-based router for efficient path matching. The goal was to understand how complex application frameworks work.
Technical highlights
- I went with the adapter pattern for decoupling. The application core has no knowledge of HTTP.
server-expressis one of the possible adapters. - Manual IoC container implementation. Uses TypeScript decorators and runtime reflection to register components in the container.
- Uses a trie-based router for requests. This helps match paths like
/users/:id/postsefficiently.