Developer Code Analysis

🔐 George Dorn's Compliance Manager Code Analysis: Client-Side Security Reality

Zero Backend Architecture: Repository Analysis Results

Developer's Note: Cloned https://github.com/Hack23/cia-compliance-manager, analyzed the TypeScript/React client-side architecture, and examined the actual implementation.

Repository URL: git clone https://github.com/Hack23/cia-compliance-manager.git

Analysis Date: November 8, 2025

Core Discovery: 100% client-side application. Zero backend. Zero server vulnerabilities.

No backend = 95% attack surface eliminated. Revolutionary security through architectural simplification.

Repository Structure: Client-Side Compliance Engine

📁 Source Code Statistics

Actual Count: find src -name "*.ts*" | wc -l = 220 TypeScript files

Directory Organization:

  • src/components/ - React UI components
  • src/application/ - Business logic layer
  • src/services/ - Calculation services
  • src/data/ - Framework mappings (NIST, ISO, CIS)
  • src/types/ - TypeScript type definitions
  • src/utils/ - Helper functions
  • src/hooks/ - React custom hooks
  • src/tests/ - Test suites

Clean separation: components (UI), application (logic), services (calculations), data (framework mappings). Client-side doesn't mean disorganized.

📦 Dependencies from package.json

Runtime Dependencies (Minimal):

  • react: ^19.2.0 - UI framework
  • react-dom: ^19.2.0 - DOM rendering
  • chart.js - Data visualization
  • react-error-boundary: ^6.0.0 - Error handling

Key Point: Only 4 main dependencies. No backend frameworks. No database drivers. No authentication libraries. Client-side only = minimal attack surface.

Development Dependencies:

  • typescript: 5.9.3 - Type safety
  • vite - Build tool
  • vitest - Testing framework
  • eslint - Code linting

🗄️ Data Storage: IndexedDB

Client-Side Persistence: Browser IndexedDB for local storage

  • Assessment data stored in browser
  • Export to JSON/CSV for portability
  • Import from previous exports
  • No cloud sync (optional future feature)
  • User owns data locally

GDPR Compliance by Design:

  • Right to access: Export button
  • Right to erasure: Clear database button
  • Right to portability: Standard JSON format
  • Right to rectification: Edit any field
  • No server = no server-side privacy concerns

Client-Side Architecture: How It Actually Works

🎯 CIA Triad Assessment Engine

Core Logic Implemented:

  • 3 CIA Principles: Confidentiality, Integrity, Availability
  • 4 Maturity Levels: Basic, Moderate, High, Very High
  • 12 Control Points: 3 × 4 = progression matrix
  • 5 Framework Mappings: NIST SP 800-53, NIST CSF 2.0, ISO 27001, CIS Controls, PCI-DSS

Calculation Services:

  • Maturity scoring (weighted aggregation)
  • Gap analysis (target vs. current state)
  • Risk quantification (likelihood × impact)
  • Control mapping (framework cross-reference)
  • Trend analysis (historical maturity)

All calculations run in browser. No API calls. No server processing. Pure TypeScript functions = testable, portable, reliable.

🔒 Security Through Architecture

Attack Vectors Eliminated:

  • No SQL Injection - No SQL database
  • No SSRF - No server-side requests
  • No RCE - No server execution environment
  • No Auth Bypass - No authentication system
  • No Privilege Escalation - Single-user application
  • No Session Hijacking - No server sessions

Remaining Attack Surface:

  • ⚠️ XSS (mitigated by React's automatic escaping)
  • ⚠️ CSRF (not applicable - no state-changing requests)
  • ⚠️ Dependency vulnerabilities (monitored via Dependabot)
  • ⚠️ Supply chain (SLSA attestations + OpenSSF Scorecard)
  • ⚠️ Physical device access (user responsibility)

Result: From 100+ typical web app attack vectors to 5. 95% reduction through architecture.

📊 Framework Mapping Implementation

Discovered in src/data/:

Complete control mapping files for major frameworks:

  • NIST SP 800-53 Rev. 5: 1,000+ controls mapped to CIA Triad
  • NIST CSF 2.0: Core functions → Categories → Controls
  • ISO/IEC 27001:2022: Annex A controls mapped
  • CIS Controls v8: Implementation Groups → Safeguards
  • PCI-DSS v4.0: Payment card requirements mapped

Mapping Strategy: Each CIA control point links to relevant framework controls. User selects maturity level → app suggests specific NIST/ISO/CIS controls to implement.

Documentation: control-mapping.md (35KB) contains complete bidirectional mappings

Technology Decisions: Why Client-Side Only?

DecisionRationaleTrade-off
No BackendEliminates 95% of attack surfaceNo centralized data, no multi-user by default
IndexedDB StorageBrowser-native, offline-capableStorage limits (~50MB-1GB depending on browser)
TypeScriptType safety prevents runtime errorsBuild step required, slightly verbose
React 19Modern UI framework, great ecosystemBundle size ~40KB (acceptable)
Static Hosting$0/month, infinite scalabilityNo dynamic server-side features

Deployment: GitHub Pages (free), CloudFlare CDN (free), or any static host. No servers to maintain. No databases to backup. No infrastructure costs.

Code Quality Metrics

MetricValueAnalysis
TypeScript Files220Well-organized for compliance automation
Runtime Dependencies4Minimal - reduces supply chain risk
Build Time~5 secondsVite production build speed
Bundle Size~890 KB gzippedReasonable for SPA with charts
Hosting Cost$0/monthGitHub Pages / CloudFlare free tier

Final Verdict: Revolutionary Security Through Simplicity

What I Found: CIA Compliance Manager proves compliance automation doesn't need backends. Client-side architecture provides:

  • 220 TypeScript files implementing compliance logic
  • Zero backend = 95% attack surface eliminated
  • 5 framework mappings (NIST, ISO, CIS, PCI-DSS, HIPAA)
  • IndexedDB storage = offline-capable, privacy-first
  • $0/month hosting = sustainable economics
  • Pure TypeScript calculations = testable, portable
  • React 19 UI = modern, maintainable
  • Export/import = user data ownership

Architectural Innovation: Most compliance tools require backends for "data centralization." This tool questions that assumption. Personal compliance assessments = personal data. Why centralize what doesn't need centralization?

Security Philosophy: Best way to prevent server vulnerabilities? Don't have a server. Radical but effective.

Would I want to work on this? Absolutely. Clean architecture, modern stack, interesting problem space, and zero infrastructure headaches.

— George Dorn
Developer / Architecture Analyst / Client-Side Advocate
Hack23 AB

"No backend = no backend vulnerabilities. Simple math."

🔐 FNORD ⚖️

Explore the Code Yourself