Angular Clean Architecture CLI

January 4, 2026 ยท View on GitHub

npm version License: MIT

๐Ÿš€ Scaffold Angular features following Clean Architecture principles with NgRx SignalStore.

A powerful CLI that generates production-ready Angular features structured into Domain, Infrastructure, Application, and UI layers โ€” keeping your codebase maintainable, testable, and scalable.


๐Ÿ“ฆ Installation

# Global installation (recommended)
npm install -g @devmed555/angular-clean-architecture-cli

# Verify installation
aca --version

Prerequisites

  • Node.js v20+
  • Angular 21+ project
  • @ngrx/signals installed: npm install @ngrx/signals

โšก Quick Start

# 1. Generate all features defined in feature-schema.json
aca g feature

# 2. Generate a single feature with attributes
aca g feature product --attributes="name:string,price:number"

# 3. Generate ALL core assets (Auth, Navbar, Menu, etc.)
aca g core

# 4. Generate ALL shared components
aca g shared

๐Ÿ› ๏ธ Generators

CommandDescription
aca g featureGenerates Clean Architecture features (4 layers)
aca g coreGenerates core system assets (Auth, Guards, Services)
aca g sharedGenerates shared UI components & utilities

๐Ÿ“ Feature Generator

Creates a structure with Domain, Infrastructure, Application, and UI layers.

Usage

# Interactive mode
aca g feature

# With inline attributes
aca g feature product --attributes="name:string,price:number,active:boolean"

# From blueprint file
aca g feature --blueprint=./order.json

๐Ÿ”ง Core Generator

Running aca g core without arguments automatically generates ALL core assets:

  • Auth: Service with login/logout logic
  • Navbar: Top navigation component
  • Menu: Side navigation component
  • Theme Selector: Dark/Light mode toggle
  • Language Selector: i18n switcher
  • Translate: Translation setup

Generated Assets

AssetDescription
navbarTop navigation bar
menuSide navigation menu
theme-selectorDark/light theme toggle
language-selectorLanguage switcher component
translatei18n translation setup
authAuthentication service with login/logout

๐ŸŽจ Shared Generator

Running aca g shared without arguments automatically generates standard shared components:

  • Confirm Dialog: Reusable confirmation modal

Generated Components

  • Confirm Dialog: Reusable confirmation modal

๐Ÿ“‹ Blueprint Mode

For complex features with multiple models, use a JSON blueprint:

{
  "name": "shop",
  "models": [
    {
      "name": "Product",
      "attributes": [{ "name": "price", "type": "number" }]
    },
    {
      "name": "Cart",
      "attributes": [{ "name": "total", "type": "number" }]
    }
  ]
}
aca g feature --blueprint=./shop.json

๐Ÿ”ฎ Coming Soon

  • Unit Test Templates: Comprehensive tests for all layers
  • Custom Types (UML): Generate features from UML/PlantUML models
  • MCP Server: AI integration for smarter code generation

๐Ÿ›๏ธ Architecture Overview

Generated features follow Clean Architecture (Hexagonal Architecture) principles:

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                         UI Layer                         โ”‚
โ”‚              (Components, Templates, Styles)             โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚                    Application Layer                     โ”‚
โ”‚              (NgRx SignalStore, Selectors)               โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚                  Infrastructure Layer                    โ”‚
โ”‚              (HTTP Services, API Clients)                โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚                      Domain Layer                        โ”‚
โ”‚          (Interfaces, Types, Business Rules)             โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
  • Domain: Pure TypeScript, zero dependencies
  • Infrastructure: Depends on Domain
  • Application: Depends on Infrastructure + Domain
  • UI: Depends on Application

๐Ÿ”— Nx Workspace Integration

When using within an Nx monorepo:

# Generate feature using Nx
nx g cli:feature product

# Generate core assets
nx g cli:core

# Generate shared components
nx g cli:shared

๐Ÿ“š Resources


๐Ÿ“ License

MIT ยฉ Mohamed Bouattour