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.js file 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).

Related Links