MonoScale is a NestJS modular monolith with strict module boundaries, so features stay decoupled and any module can be extracted into its own service later without a rewrite.
Built on the "Antigravity" model.
# 1. Clone
git clone https://github.com/Kimosabey/mono-scale.git
cd mono-scale
# 2. Install
# (see docs/GETTING_STARTED.md for the full setup)
# 3. Run
docker compose up- Strict module boundaries inside one deployable
- Clear seams for future service extraction
- Shared infra, isolated domains
- Faster iteration than premature microservices
%%{init: {'theme':'base','themeVariables':{'primaryColor':'#ffffff','lineColor':'#2563eb','mainBkg':'#ffffff'}}}%%
graph LR
A([Modules])
B([Module Boundaries])
C([Single Deployable])
D([Extractable Services])
A --> B
B --> C
C --> D
style A fill:#eff6ff,stroke:#2563eb,stroke-width:2px,color:#1e40af
style B fill:#eff6ff,stroke:#2563eb,stroke-width:2px,color:#1e40af
style C fill:#eff6ff,stroke:#2563eb,stroke-width:2px,color:#1e40af
style D fill:#eff6ff,stroke:#2563eb,stroke-width:2px,color:#1e40af
Enforcing boundaries in a monolith so it keeps the option of splitting without the cost of distributing early.
See docs/ARCHITECTURE.md for the full HLD/LLD and design decisions.
| Layer | Technology | Role |
|---|---|---|
| NestJS | NestJS |
Structured TypeScript backend |
| TypeScript | TypeScript |
Type-safe application code |
- Architecture — high- and low-level design, decision log
- Getting Started — prerequisites, setup, environment
- Failure Scenarios — fault analysis and recovery
- Interview Q&A — deep-dive walkthrough
- Module dependency linter
- Per-module metrics
- Extraction playbook
Released under the MIT License.
Harshan Aiyappa Senior Full-Stack Hybrid AI Engineer Voice AI • Distributed Systems • Infrastructure