libmodulor
libmodulor is a TypeScript library to create platform-agnostic applications.
Welcome to libmodulor.
If you are interested in building applications differently, you have landed at the right place.
Inspired by the concept of the Modulor in building architecture, the main idea is to put back the Human at the center of application design and development.
That is why the smallest unit of work in libmodulor is the UseCase (a.k.a UC). It's not controllers, views, models, events or whatever.
As software engineers, we have gotten too bogged down in too many technical details.
Although these are important to build great and performant applications, we kind of lost our minds and entered an endless vortex of complexity.
To get started, I recommend reading the Philosophy. It gives the full picture of the goal we are trying to achieve.
Then, the Architecture is a good place to get a more concrete view of the thing.
At a glance
As described in the Architecture concept, libmodulor follows a 4-layer architecture with UseCase, App, Product, and Target.
There are endless ways to illustrate these layers, but this one is a great one. We clearly see that a software project, when structured correctly, can be thought as an integrated circuit, where components are conencted to each other in a clear way.

Now that we have the whole picture, let's get started :
# Create a project
pnpx libmodulor CreateProject --projectName my-super-project
cd my-super-project
# Create an app
pnpm libmodulor CreateApp --appName Banking
# Create a use case
pnpm libmodulor CreateUC --appName Banking --ucName CreateAccount
# Create a product
pnpm libmodulor CreateProduct --productName CustomerPortal
# Create a target
pnpm libmodulor CreateTarget --productName CustomerPortal --targetName node-core-http-server
pnpm libmodulor CreateTarget --productName CustomerPortal --targetName node-express-server
pnpm libmodulor CreateTarget --productName CustomerPortal --targetName node-hono-server
pnpm libmodulor CreateTarget --productName CustomerPortal --targetName node-core-cli
pnpm libmodulor CreateTarget --productName CustomerPortal --targetName node-mcp-server-stdio
For more params, checkout the help section : pnpm libmodulor --help.
And for more details on the code, follow the Guides in the documentation and check the Examples.