# Technology Stack Document Generated: Tuesday, September 16, 2025 ## Frontend Technologies * **Framework:** **Angular**. The boilerplate is built on the latest stable version of the Angular framework, chosen for its robustness, component-based architecture, and suitability for large-scale, enterprise applications. * **Language:** **TypeScript**. As a superset of JavaScript, TypeScript is used for its strong typing, which improves code quality, maintainability, and developer productivity. * **Styling:** **SCSS**. SCSS is used for its advanced features over standard CSS, such as variables, nesting, and mixins, allowing for more organized and maintainable stylesheets. * **UI Framework:** **VMware Clarity Design System**. This comprehensive design system provides a set of accessible, high-quality UI components and a consistent visual language, which accelerates UI development. * **Core Libraries:** * **RxJS:** Used extensively throughout Angular for reactive programming and managing asynchronous operations. * **Zone.js:** A signaling mechanism that enables Angular's automatic change detection. ## Backend Technologies * **Backend Agnostic:** This is a frontend-only boilerplate and is not tied to any specific backend technology. It is designed to communicate with any backend that exposes a RESTful or GraphQL API. ## Database Technologies * **Not Applicable:** As a frontend project, the boilerplate does not include a database. ## Infrastructure & Deployment * **Web Server:** The built application consists of static files that can be served by any modern web server (e.g., **Nginx**, **Apache**, **Caddy**). * **Hosting:** The project can be deployed to any static site hosting provider, such as **Firebase Hosting**, **Netlify**, **Vercel**, **AWS S3**, or **GitHub Pages**. * **Containerization (Optional):** The application can be easily containerized using **Docker** for consistent deployment environments. ## Development & Build Tools * **Build Tool:** **Angular CLI**. The command-line interface for Angular is used for creating, building, testing, and deploying the application. * **Package Manager:** **npm**. The Node Package Manager is used for managing all project dependencies. * **Version Control:** **Git**. Git is the standard for version control and source code management. * **Testing:** * **Unit Testing:** **Jasmine** (framework) and **Karma** (test runner) are the default tools for unit testing in Angular. * **End-to-End (E2E) Testing:** The project can be configured to use **Protractor** or more modern alternatives like **Cypress** or **Playwright**. * **Code Formatting/Linting:** * **ESLint:** Used for identifying and reporting on patterns in ECMAScript/JavaScript code. * **Prettier:** An opinionated code formatter that enforces a consistent style. * **EditorConfig:** Helps maintain consistent coding styles for multiple developers working on the same project across various editors and IDEs.