Description
A lightweight, opinionated, and highly flexible Node.js backend framework built on top of Express.js. XRohrJS is designed to streamline the development of resilient, live-service APIs by enforcing a centralized configuration structure and providing a modular, event-driven architecture.
Problems
- Struggled with repetitive boilerplate (like cors, body-parser) for every new Express project, leading to inconsistent setups and wasted development time.
- Lacked a standardized project structure in vanilla Express, resulting in disorganized, hard-to-maintain codebases as applications scaled.
- Faced the "all-or-nothing" dilemma between vanilla Express (often too minimal) and heavy, complex frameworks (often overkill for medium-sized projects).
Solutions
- Automated all common boilerplate via aconfig-driven architecture, making a single
xrohr.config.jsfile the "single source of truth" for server setup. - Enforced a clean, opinionated project structure by automatically loading routes, middleware, and events from their designated directories.
- Provided "batteries-included" optional modules(like
SparkLite,Rheos,Memoria) that can be enabled or disabled, creating the perfect middle-ground framework.
Tech Stack
TypeScript
Express
Node.js
Git
NPM
Key Learnings
- Mastered advanced design patterns (like Factory, Singleton) to solve complex asynchronous initialization problems and manage application state.
- Learned to prioritize Developer Experience (DX) by designing a clean, intuitive public API and abstracting complex internal logic via encapsulation.
- Gained deep experience inframework-level architecture, understanding the trade-offs between flexibility (like vanilla Express) and opinionated design (like NestJS).