Skip to content

Commit d414581

Browse files
author
aligneddev
committed
constitution improvements, to Aurelia 2
1 parent 8d041ad commit d414581

2 files changed

Lines changed: 80 additions & 48 deletions

File tree

.specify/memory/DECISIONS.md

Lines changed: 36 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -54,21 +54,47 @@ Trade-offs: Docker/Podman required; slight learning curve. Simplifies DevOps and
5454

5555
Data integrity is non-negotiable for financial data (savings calculations):
5656

57-
1. **Client-side (Blazor)**: Immediate feedback; better UX responsiveness
57+
1. **Client-side (Aurelia 2)**: Immediate feedback; better UX responsiveness
5858
2. **Server-side (API)**: Prevents bypass attacks; enforces business rules
5959
3. **Database layer**: Last-line defense; constraints prevent corrupted data from entering event store
6060

6161
If any layer is missing, data corruption risk rises. All three required.
6262

63-
### Why Fluent UI Blazor (latest version)?
63+
### Why Aurelia 2?
6464

65-
Fluent UI provides:
66-
- **Design tokens**: Centralized color, spacing, typography; enforces brand consistency
67-
- **Accessibility**: Built-in WCAG 2.1 AA compliance; keyboard navigation, screen reader support
68-
- **Responsive components**: Mobile-first design; components adapt to breakpoints
69-
- **Microsoft ecosystem**: Native C# integration; no JavaScript bridging complexity
65+
Aurelia 2 provides a lightweight, modern TypeScript-based frontend with:
7066

71-
Trade-offs: Tied to Blazor version; updates require testing. Lock version to v4.13.x and higher as new versions are released for stability but also keeping up to date.
67+
- **Strong composability**: Components are simple, reusable, and testable; no framework lock-in
68+
- **Standards-based**: Built on modern web standards (ES modules, Web Components patterns); minimal runtime overhead
69+
- **Flexible deployment**: Static site hosting for local-first development; compiles to plain HTML/CSS/JavaScript with no server dependency
70+
- **TypeScript support**: Full type safety; integrates seamlessly with modern build tooling
71+
- **Validation patterns**: Native browser constraints + Aurelia validation library; official docs at https://docs.aurelia.io/
72+
73+
Trade-offs: Smaller ecosystem than Blazor; requires JavaScript/TypeScript familiarity. Justified for high portability and low deployment friction (static site hosting) in local-first architecture.
74+
75+
### Amendment: Why Switched from Blazor WebAssembly to Aurelia 2 (v1.9)?
76+
77+
**Decision Date**: 2026-03-11
78+
**Trigger**: User evaluation of frontend technology alternatives for local-first deployment
79+
**Rationale**:
80+
- Blazor WASM introduces browser download overhead (initial 2–6MB load) and requires .NET runtime download, which conflicts with mobile-first design goals
81+
- Aurelia 2 compiles to lightweight static assets suitable for both local and cloud-static hosting (Azure Static Web Apps)
82+
- TypeScript ecosystem provides strong tooling, clear separation of frontend/backend concerns, and simpler local development (no ASP.NET integration needed for frontend build)
83+
- Aurelia's official docs (https://docs.aurelia.io/) provide canonical implementation guidance
84+
85+
**Changes**:
86+
- Constitution v1.9: All frontend references updated from Blazor WASM to Aurelia 2
87+
- Principle V: UI built with Aurelia 2 components + centralized theme tokens
88+
- Principle VII: Client-side validation switched to Aurelia 2 validation patterns
89+
- Frontend stack: Framework = Aurelia 2 v2.x; Authentication = MSAL.js; Hosting = static assets
90+
- Infrastructure: Local deployment frontend built as Aurelia app; cloud deployment as static assets in Azure Static Web Apps or Blob Storage
91+
92+
**Impact**:
93+
- No C# required for frontend; backend remains .NET 10/C# (Aspire, Minimal API, EF Core)
94+
- Clear technology boundary: backend (C#/.NET) handles business logic + API; frontend (TypeScript/Aurelia) handles UI
95+
- Simpler local onboarding: no Blazor build pipeline; TypeScript tooling familiar to web developers
96+
97+
**Affected Specs**: Any new specs referencing frontend must target Aurelia 2; all Blazor-specific validation examples in specs are obsolete
7298

7399
---
74100

@@ -90,5 +116,5 @@ These topics are under consideration for future constitution amendments (not yet
90116

91117
---
92118

93-
**Last Review**: 2026-03-03
94-
**Next Review**: 2026-04-03
119+
**Last Review**: 2026-03-11
120+
**Next Review**: 2026-04-11

0 commit comments

Comments
 (0)