| name | Angular Seed |
|---|---|
| description | High-level project overview for a reusable Angular-based template project for future development and experiments. |
| version | 0.1.0 |
| status | draft |
Angular Seed is a reusable, opinionated starter template for building modern web applications and coding experiments using the latest Angular ecosystem and adjacent technologies.
The primary purpose of this project is to:
- Provide a consistent, well-structured baseline for new Angular applications.
- Enable fast prototyping of features and architectural ideas.
- Encourage specification-driven, testable, and maintainable code.
- Serve as a reference implementation for modern front-end best practices.
This document provides a high-level, implementation-agnostic overview suitable as an input for spec-driven development and further refinement into detailed technical specifications.
The Angular Seed project aims to achieve the following objectives:
-
Rapid Project Bootstrap
Minimize setup time for new initiatives by providing a ready-to-use skeleton with preconfigured tooling and recommended defaults. -
Consistency Across Projects
Standardize project structure, coding conventions, and tooling to reduce cognitive overhead when moving between projects. -
Modern Technology Adoption
Provide a baseline that is aligned with the latest stable Angular version and complementary technologies (e.g., TypeScript, modern build tooling, testing frameworks), while remaining upgrade-friendly. -
Experiment-Friendly Environment
Make it straightforward to spin up feature prototypes, architectural spikes, and integration experiments without compromising core quality standards. -
Spec-Driven Development Alignment
Support workflows where features and changes are driven by written specifications (user stories, API contracts, acceptance criteria), with clear mapping from requirements to implementation. -
Aesthetic Excellence & Visual Polish
Demonstrate how to build high-fidelity, professional-grade user interfaces that "stand out" through refined typography, smooth transitions, and a modern aesthetic.
- A minimal, but opinionated Angular application structure suitable for:
- Single-page applications (SPA).
- Admin panels / internal tools.
- Prototyping UI features and components.
- Core tooling setup (examples, to be finalized in detailed specs):
- TypeScript configuration.
- Linting and formatting.
- Unit and component testing setup.
- Basic end-to-end (E2E) testing hooks.
- Build and bundling pipeline aligned with current Angular CLI capabilities.
- Baseline architecture patterns:
- Feature-based modularization.
- Clear separation of presentation and domain logic.
- Reactive data flow patterns where appropriate.
- Basic infrastructure concerns:
- Configuration management (environment-based).
- Simple logging hooks.
- Basic error handling strategy.
- Domain-specific business logic or UI design systems.
- Backend services or APIs (only client integration points and contracts).
- Production-grade deployment pipelines (can provide simple CI hooks, but no full DevOps stack).
- Non-web platforms (e.g., native mobile, desktop), beyond compatibility with standard web targets.
- Frontend engineers starting new Angular-based projects.
- Teams evaluating or prototyping new libraries, patterns, or architecture styles within the Angular ecosystem.
- Technical leads defining standards for multiple Angular projects.
- Individuals experimenting with modern web techniques in a controlled, repeatable environment.
- New Application Bootstrap: Clone Angular Seed, rename, and extend to serve as the foundation of a production application.
- Prototype / Spike: Quickly spin up experimental branches or forks to validate new ideas with minimal initial setup.
- Reference Implementation: Use as a canonical example for structure, configuration, and coding guidelines across the organization.
- Training / Onboarding: Use the template as a learning playground for new team members getting familiar with Angular and project standards.
Angular Seed adopts a modular, feature-oriented architecture focused on clarity, testability, and composability.
-
Feature Modularity Group code by domain feature (e.g.,
auth,dashboard,settings), rather than by technical layer only. -
Separation of Concerns Distinguish between:
- UI components (presentational components).
- Smart/feature components (container components).
- Services handling domain and integration logic.
-
Reactive and Declarative UIs Encourage the use of observable patterns and unidirectional data flow where appropriate.
-
Configuration over Convention Points Provide clear extension points (interfaces, tokens, configuration objects) where customization is expected.
This project follows modern Angular development standards. For detailed coding guidelines, see angular_guidelines.md.
Key principles:
- Standalone components (default in Angular 19+, no NgModules)
- Signals for state management (
signal(),computed()) - Modern control flow (
@if,@for,@switchinstead of structural directives) - OnPush change detection for all components
- Functional APIs (
input(),output(),inject()instead of decorators) - Strict TypeScript with type safety enforcement
- Accessibility first (WCAG AA compliance, AXE testing)
-
Presentation Layer
- Components, layouts, and routing.
- Styling, theming, and UI state.
-
Domain / Application Layer
- Services encapsulating business logic.
- Application-level state management (if used).
- Interactors/use-cases (optional, based on chosen pattern).
-
Infrastructure / Integration Layer
- HTTP clients and API gateways.
- Adapters for external services (e.g., logging, analytics).
- Environment-specific configuration providers.
Note: Concrete versions and tools are intentionally abstracted here and should be specified in a separate technical specification document.
- Angular (latest stable major version).
- TypeScript (aligned with Angular requirements).
- Angular CLI for project scaffolding, bundling, and configuration.
- Linting: TypeScript/Angular-compatible linter.
- Formatting: Common formatter (e.g., opinionated, enforced in CI).
- Unit Testing: Angular-compatible test runner and assertion library.
- E2E Testing: Headless browser-based or modern web testing framework.
- Package Management: Node-based package manager.
- State management (e.g., store/observable-based, if needed).
- UI component libraries or design system integrations.
- Internationalization and localization tooling.
- Accessibility testing integrations.
A conceptual directory layout (subject to refinement):
root/
src/
app/
core/ # Singleton services, configuration, global guards/interceptors
shared/ # Reusable components, directives, pipes, utilities
features/
feature-a/
feature-b/
app-routing/ # Routing configuration
app.component.* # Root component and shell
assets/
environments/ # Environment-specific configuration
tools/ # Custom scripts or tooling (optional)
config/ # Linting, formatting, build configs (optional)
Before using Angular Seed, ensure you have the following installed:
- Node.js: Version 18.x or higher (LTS recommended).
- npm or yarn: Package manager for dependency management.
- Git: Version control system.
-
Clone the repository:
git clone <repository-url> cd angular-seed
-
Install dependencies:
npm install # or yarn install -
Verify installation:
npm run verify # or yarn verify
Start the development server:
npm start
# or
yarn startThe application will be available at http://localhost:4200 by default.
Create a production build:
npm run build
# or
yarn buildProduction artifacts will be generated in the dist/ directory.
The project enforces code quality through:
- Linting: Automated code analysis using ESLint or similar.
- Formatting: Consistent code style via Prettier or similar.
- Type Checking: Strict TypeScript configuration.
- Pre-commit Hooks: Automated checks before commits (optional).
Run tests using the following commands:
# Unit tests
npm run test
# E2E tests
npm run e2e
# Test coverage
npm run test:coverageWhen adding new features:
- Create a feature branch from
main. - Follow the feature-based structure in
src/app/features/. - Write tests alongside implementation.
- Update documentation as needed.
- Submit a pull request for review.
This project strictly follows Spec-Driven Development (SDD) using the speckit toolset. The workflow ensures that implementation never precedes clear, documented intent.
Core Workflow:
- Specify: Use
/speckit.specifyto define requirements inspecs/. - Clarify: Use
/speckit.clarifyto resolve ambiguities. - Plan: Use
/speckit.planto generate technical strategy and architecture. - Task: Use
/speckit.tasksto break down the plan into actionable items. - Checklist: Use
/speckit.checklistto generate quality gates (UX, A11y, Security) before coding. - Implement: Use
/speckit.implementto execute tasks and generate code. - Verify: Ensure tests pass and update
CHANGELOG.mdwith new features/fixes. - Analyze: Use
/speckit.analyzefor cross-artifact consistency checks.
Environment-specific settings are managed through:
src/environments/environment.ts- Development defaults.src/environments/environment.prod.ts- Production overrides.
Build settings are configured in:
angular.json- Angular CLI workspace configuration.tsconfig.json- TypeScript compiler options.tsconfig.app.json- Application-specific TypeScript settings.
Code style is enforced via:
.eslintrc.jsonor similar - Linting rules..prettierrcor similar - Code formatting rules.- Editor configuration files (
.editorconfig,.vscode/settings.json).
Contributions are welcome! Please follow these guidelines:
- Fork and Branch: Create a feature branch from
main. - Follow Standards: Adhere to the project's coding standards and conventions.
- Write Tests: Include tests for new features and bug fixes.
- Update Documentation: Keep documentation current with code changes.
- Submit PR: Open a pull request with a clear description of changes.
All contributions require:
- Passing CI/CD checks.
- Code review approval.
- Compliance with project constitution principles.
- Updated documentation where applicable.
When reporting issues, please include:
- Clear description of the problem.
- Steps to reproduce.
- Expected vs. actual behavior.
- Environment details (OS, Node version, etc.).
- Relevant logs or error messages.
Additional documentation can be found in:
docs/- Detailed guides and references.angular_guidelines.md- Angular coding standards and best practices..specify/- Specification-driven development artifacts..cursor/rules/- Cursor AI agent rules and guidelines.
Generate API documentation:
npm run docs
# or
yarn docsSignificant architectural decisions are documented in:
docs/adr/- Architecture Decision Records (ADRs).
[License information to be specified]
- Built with Angular.
- Inspired by modern frontend development practices.
- Community contributions and feedback.
See CHANGELOG.md for a detailed list of changes, features, and bug fixes. The project follows the Accumulate Local, Publish Global strategy to ensure a granular history is preserved even in squash-merge workflows.
This project adheres to Semantic Versioning (SemVer). Versioning is managed via a custom local script to ensure all metadata (including the in-app version display) stays in sync. For detailed usage, refer to the Versioning Scripts & Options guide.
- Bump Version:
npm run version:bump [patch|minor|major] - In-App Display: The current version is automatically exposed to the Angular application via
src/app/version.ts.
For questions, issues, or contributions:
- Issues: Open an issue on the repository.
- Discussions: Use repository discussions for questions.
- Documentation: Check the
docs/directory for detailed guides.
Last Updated: 2026-01-25
Version: 0.1.0
Status: Draft
To ensure a seamless experience when switching between different AI agents (e.g., Gemini CLI, Cursor, Claude, etc.), this project employs a "State Snapshot" strategy.
The file GEMINI.md (or agent-specific variants like CLAUDE.md) serves as the Active Context Hub. Before switching agents:
- Ensure
docs/session-summaries/001-initial-app-bootstrap.md(or the active feature's session summary) is updated. - Update the "Task State" and "Active Constraints" in the agent-specific memory file.
Agents should always read these files upon initialization:
README.md&README.ng.md: Project and Tech Stack overview..specify/memory/constitution.md: Core governance principles.angular_guidelines.md: Coding standards and prohibited patterns.GEMINI.md: Current development state and active focus.docs/session-summaries/001-initial-app-bootstrap.md(for current feature context).
When a new agent takes over, the recommended first command is:
"Read the latest session summary in
docs/session-summaries/andGEMINI.mdto establish context, then check the active feature'stasks.mdfor the next pending item."